8月5日docker实战常用测试平台搭建1-2

课程价值

学习如何使用docker搭建常见的测试服务(grid,普罗米修斯)

课程大纲

  1. 使用docker selenium 搭建分布式UI自动化实践(基于grid的解决方案)
  2. 使用docker搭建基于普罗米修斯的监控体系。

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
docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome-debug:3.7.1-beryllium

selenide 代码

WebDriverContainer webDriverContainer = new WebDriverThreadLocalContainer();
        Configuration.screenshots = false;
        webDriverContainer.clearBrowserCache();

        Configuration.browser = "chrome";
        Configuration.remote = "http://k8s.testing-studio.com:5001/wd/hub";

        String baseURL = "http://k8s.testing-studio.com:8999/";

        com.codeborne.selenide.Selenide.open(baseURL);

        $(byText("Welcome Gaofei!")).should(Condition.visible);

普罗米修斯配置文件:

global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'node_exporter'
    static_configs:
    - targets: ['k8s.testing-studio.com:9100']
  - job_name: 'mysql'
    static_configs:
    - targets: ['k8s.testing-studio.com:9104']
  - job_name: 'cadvisor'
    static_configs:
    - targets: ['k8s.testing-studio.com:8091']

普罗米修斯的命令:

docker run --name prometheus -d -p 9090:9090 -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml -v `pwd`/rules/:/etc/prometheus/ prom/prometheus --config.file=/etc/prometheus/prometheus.yml


docker run --name grafana -d -p 8000:3000 grafana/grafana


docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="root:1qaz9ol.@(172.17.56.102:8888)/mysql" prom/mysqld-exporter

课程时长

1.5h

PPT

ppt跳转

作业

  1. 使用docker搭建grid和普罗米修斯

课后评价

老师,你们有没有用专门的代码脚本用来管理测试的docker环境,管理配置啊,启动啊,之类这些??

我看这些docker命令都挺长的,好像不是很好懂

hub在服务器a(172.16.207.19)上,服务器a 同时有一个node
服务器b上也有一个node
启动这个node 运行命令
docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_BUS_ADDRESS=/dev/null -v /dev/shm:/dev/shm -e HUB_PORT_4444_TCP_ADDR=172.16.207.19 -e HUB_PORT_4444_TCP_PORT=5001 -d selenium/node-chrome-debug:3.141.59

但是在http://172.16.207.19:5001/grid/console 上看不到服务器b 的node 节点
上面的命令错了吗?

老师, 我启动了hub, 启动了node, 但是看不到node节点
docker run -p 5001:4444 --net grid --name hub -d selenium/hub:latest
docker run --name chrome-debug -p 5902:5900 -e NODE_MAX_INDTANCES=6 -e NODE_MAX_SESSION=6 --link hub -v /dev/shm:/dev/shm --net grid -d selenium/node-chrome-debug:latest

Grid/node:

Prometheus/grafana:

关闭