测试人社区

selenium grid和docker的几个疑问

1、grid的hub负责调度用例给节点,这个调度是随机的吗,还是说可以设置指定的用例?如果是随机的,那么我有些有关联的用例怎么办?

2、jenkins也可以实现分布式执行用例,和grid相比,有啥区别,假如我有1000条UI用例,想分布式执行,提升执行速度,两者该怎么选择?或者说两者可以共存?

3、为什么运行容器的时候要加-e添加环境变量,目的是什么?

比如启动grid容器的时候:docker run --name=hub -p 5001:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:3.7.1-beryllium

设置这些环境变量的作用是什么,不设置会怎样?

4、为什么不同机器上的容器可以通过设置环境变量之后就能进行通信了?

  1. grid是优先按照参数去执行,其次是按照自己的算法规则去执行

3.环境变量就是传递给容器的参数,因为有些参数是不能直接写死在镜像里的,但是镜像本身制作后就不能更改了,所以这些参数的部分,就需要通过参数传入进去进行设置。

那问题是,我怎么知道某个容器有哪些参数,我需要传什么参数呢?

这个是在制作容器的时候设置的 一般可以在docker hub 里面镜像的介绍页面中写的有,或者是从对应的github介绍页面找到,这个就要看镜像的制作者有没有写说明文档了

镜像官方文档有写的