软件测试 / 测试开发 / BAT 大厂都在用的 Docker。学会这三招,面试、工作轻松 hold 住
获取更多相关知识
上期我们以 Jenkins 为例,一边实战一边了解 Docker 的基础命令。这期,我们将带大家使用 Docker 搭建三个平时测试工作中非常有用的小工具。学会这三个实战之后,你就可以说对 Docker 不是浅尝即止在理论阶段,而是真正有一定了解,也能为你的工作,真正的解决一部分问题。
使用 Docker 搭建 prometheus+grafana 的服务器监控
使用 Docker 搭建 prometheus+grafana 的服务器监控。让你的服务器监控页面有颜有料且让人一目了然。让数据分析不再局限于数字和曲线图,能够多方位进行对比。
1.Docker 启动 prometheus 官网下载 node_exporter 。地址:prometheus.io/
2.启动下载好的 node_exporter 文件
3.填写 prometheus.yml 配置文件内容
4.使用命令启动 prometheus
5.输入 ip 和端口号进入 prometheus 的前端界面,然后进入 Targets 页面
6.在首页输入命令,然后点击 execute,命令有
不过这个展示界面不够友好,而且不好保存。所以在业内,我们常常将 prometheus+grafana 配合使用
7.启动 grafana
进入 grafana 界面,初始账号密码为 admin/admin 进入 Add data sourcs->选择 prometheus 配置 prometheus
8.import 模板
grafana dashboard 内填写grafana.com/grafana/das…Prometheus Data Source 字段选择 prometheus 点击 Import,就搭建成功了
注意,前方有坑:1.如果被监控的 node_exporter 是 mac 的话,要去 prometheus 官网下载 mac 版本的 node_exporter 执行,且 mac 需要修改一些配置参数。2.如果修改了 prometheus.yml 需要重启镜像
使用 Docker 搭建 Prometheus 监控 MySQL
1.下载 prom/mysqld-exporter 镜像
2.启动 mysql 服务
3.启动 mysqld-exporter 镜像
注意:-e 之后的参数要填对,分别对应 用户名/密码 @(ip:端口号)/mysql
4.在 prometheus.yml 的配置文件中添加 mysql 的配置,并 docker restart prometheus ,重新加载 prometheus 的配置(可以参考上面的步骤 2)
5.进入 prometheus 页面,查看 Targets 中 mysql 是否启动成功
6.按照上面的 docker 启动 prometheus 过程,配置好之后进去 grafana 页码,然后选择 data source,进入 prometheus,输入 prometheus 的 url,选择“Save&Test”
7.导入 mysql 模板到 grafana,mysql 的模板 id 为 6239,其他步骤和前面搭建服务器监控是一样的哦。
下面是 mysql 的监控效果
使用 Docker 搭建分布式 UI 自动化环境
如果我们的 Web UI 自动化测试用例有上千条,执行时间常常需要 1~2 天,我们用什么方法可以节省这个执行时间呢?
接下来我们就通过分布式 UI 自动化,即启动多个浏览器执行 UI 自动化测试用例,且每个浏览器执行的 UI 自动化测试用例都是不同的。这样子,就可以大大提升我们的 UI 自动化测试的效率。
分布式 UI 自动化架构
UITest 层会将测试请求发送到 GridHub 层,而 GridHub 则会将这些测试请求转换为测试任务下发到每一个 Node 节点(在每台机器上面我们可以装一个或多个 Node 节点。),随后 Node 节点驱动浏览器进行自动化测试。测试完成后,Node 节点将测试结果发送到 GridHub 上面,GridHub 再将结果转发回我们的测试程序 UITest 中
Selenium 镜像介绍
Selenium 镜像网上有很多,官网下载即可。也可以定制化。而且还有非可视化的镜像。具有调试作用的远程 UI 服务的可视化镜像,还有轻量级简易版镜像版本。
1.底层镜像,可以做定制化
selenium/base: Base image which includes Java runtime and Selenium Server JAR file
selenium/node-base: Base image for Grid Nodes which includes a virtual desktop environment
selenium/hub: Image for running a Grid Hub
2.谷歌、火狐浏览器的非可视化镜像
selenium/node-chrome: Grid Node with Chrome installed, needs to be connected to a Grid Hub
selenium/node-firefox: Grid Node with Firefox installed, needs to be connected to a Grid Hub
3.具有远程 UI 服务的可视化镜像(调试作用):
selenium/node-chrome-debug: Grid Node with Chrome installed and runs a VNC server, needs to be connected to a Grid Hub
selenium/node-firefox-debug: Grid Node with Firefox installed and runs a VNC server, needs to be connected to a Grid Hub
4.简易版镜像,不需要 GridHub 和 Node 架构:
selenium/standalone-chrome: Selenium Standalone with Chrome installed
selenium/standalone-firefox: Selenium Standalone with Firefox installed
selenium/standalone-chrome-debug: Selenium Standalone with Chrome installed and runs a VNC server
selenium/standalone-firefox-debug: Selenium Standalone with Firefox installed and runs a VNC server
文档链接:
https://github.com/SeleniumHQ/docker-selenium
实战演示
使用 docker 启动 GridHub
docker 启动 Node
如果想启动多个 Node,可以重新修改一下端口映射比如,将 5902:5900 修改为 5903:5900 这时候我们就可以发现图片中又显示了一个 Node 信息。
如果想在一个 Node 中启动多个浏览器,我们可以更改这两个字段的数量,比如我们将 6 修改为 7NODE_MAX_INSTANCES=7;NODE_MAX_SESSION=7
,这时候我们可以看到有 7 个谷歌浏览器的 logo
准备一个自动化测试脚本,以 Python 为例
运行脚本查看运行结果,成功!
注意:如果服务器系统不支持可视化不加这条会启动失败chrome_options.add_argument('--headless')
获取更多相关知识
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/8058e08c04e8b02c16830a026】。文章转载请联系作者。
评论