BAT大厂都在用的Docker。学会这三招,面试、工作轻松hold住

原文链接

上期我们以Jenkins为例,一边实战一边了解Docker的基础命令。这期,我们将带大家使用Docker搭建三个平时测试工作中非常有用的小工具。学会这三个实战之后,你就可以说对Docker不是浅尝即止在理论阶段,而是真正有一定了解,也能为你的工作,真正的解决一部分问题。
使用Docker搭建prometheus+grafana的服务器监控
<br mpa-from-tpl="t"/>

使用Docker搭建prometheus+grafana的服务器监控。让你的服务器监控页面有颜有料且让人一目了然。让数据分析不再局限于数字和曲线图,能够多方位进行对比。

1.Docker启动prometheus

官网下载node_exporter 。地址:https://prometheus.io/
2.启动下载好的node_exporter文件
3.填写prometheus.yml配置文件内容
4.使用命令启动prometheus

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

5.输入ip和端口号进入prometheus的前端界面,然后进入Targets页面
[图片上传失败...(image-55d283-1650785493644)]
[图片上传失败...(image-bffdfb-1650785493644)]
6.在首页输入命令,然后点击execute,命令有

cpu使用率:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)
内存使用率:100*(node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes
磁盘使用:100.0 - 100 * ((node_filesystem_avail_bytes{mountpoint=~"/", device!="rootfs"} / 1000 / 1000 ) / (node_filesystem_size_bytes{mountpoint=~"/", device!="rootfs"} / 1024 / 1024))

[图片上传失败...(image-3e3785-1650785493644)]
7.启动grafana

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

进入grafana界面,初始账号密码为admin/admin
进入Add data sourcs->选择prometheus
配置prometheus
<tr style="box-sizing: border-box;border-width: 1px 0px 0px;border-right-style: initial;border-bottom-style: initial;border-left-style: initial;border-right-color: initial;border-bottom-color: initial;border-left-color: initial;border-top-style: solid;border-top-color: rgb(221, 221, 221);"><th style="box-sizing: border-box;border-top-width: 1px;border-top-color: rgb(221, 221, 221);padding: 8px;font-size: 14px;color: rgb(79, 79, 79);line-height: 22px;vertical-align: middle;background-color: rgb(239, 243, 245);word-break: normal !important;">字段名</th><th style="box-sizing: border-box;border-top-width: 1px;border-top-color: rgb(221, 221, 221);padding: 8px;font-size: 14px;color: rgb(79, 79, 79);line-height: 22px;vertical-align: middle;background-color: rgb(239, 243, 245);word-break: normal !important;">含义</th></tr>|------
[图片上传失败...(image-ecc8f6-1650785493644)]
注意,前方有坑
1.如果被监控的node_exporter是mac的话,要去prometheus官网下载mac版本的node_exporter执行,且mac需要修改一些配置参数。
2.如果修改了prometheus.yml 需要重启镜像
使用Docker搭建Prometheus监控MySQL
<br mpa-from-tpl="t"/>
1.下载prom/mysqld-exporter镜像

docker pull prom/mysqld-exporter

2.启动mysql服务

docker run --name some-mysql -v /home/ubuntu/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1qaz9ol. -p 8888:3306  -d mysql:5.5

3.启动mysqld-exporter镜像

docker run --name some-mysql -v /home/ubuntu/mysql/:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=1qaz9ol. -p 8888:3306  -d mysql:5.5
docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="root:1qaz9ol.@(47.95.238.18:8888)/mysql" prom/mysqld-exporter

注意:-e 之后的参数要填对,分别对应 用户名/密码@(ip:端口号)/mysql
4.在prometheus.yml的配置文件中添加mysql的配置,并docker restart prometheus ,重新加载prometheus的配置(可以参考上面的步骤2
[图片上传失败...(image-347f09-1650785493644)]
6.按照上面的docker启动prometheus过程,配置好之后进去grafana页码,然后选择data source,进入prometheus,输入prometheus的url,选择“Save&Test”
[图片上传失败...(image-7c2639-1650785493644)]
7.导入mysql模板到grafana,mysql的模板id为6239,其他步骤和前面搭建服务器监控是一样的哦。
[图片上传失败...(image-8ab207-1650785493644)]
使用Docker搭建分布式UI自动化环境

如果我们的Web UI自动化测试用例有上千条,执行时间常常需要1~2天,我们用什么方法可以节省这个执行时间呢?
接下来我们就通过分布式UI自动化,即启动多个浏览器执行UI自动化测试用例,且每个浏览器执行的UI自动化测试用例都是不同的。这样子,就可以大大提升我们的UI自动化测试的效率。

<br mpa-from-tpl="t"/>

UITest层会将测试请求发送到GridHub层,而GridHub则会将这些测试请求转换为测试任务下发到每一个Node节点(在每台机器上面我们可以装一个或多个Node节点。),随后Node节点驱动浏览器进行自动化测试。测试完成后,Node节点将测试结果发送到GridHub上面,GridHub再将结果转发回我们的测试程序UITest中
[图片上传失败...(image-4ed395-1650785493644)]
(如下图所示)
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 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

[图片上传失败...(image-8d97e9-1650785493644)]
docker启动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 --link hub -d selenium/node-chrome-debug:3.7.1-beryllium

准备一个自动化测试脚本,以Python为例
推荐学习
推荐霍格沃兹测试学院出品的 《测试开发从入门到高级实战》系统进阶班课程。
4 个月由浅入深,强化集训,测试大咖通过 8+ 企业级项目实战演练,带你一站式掌握 BAT 测试开发工程师必备核心技能(对标阿里巴巴P6+,挑战年薪50W+)!
往期推荐
测试必会 Docker 实战(一):掌握高频命令,夯实内功基础
干货 | 测试老鸟总结的 16 个测试改进 Tips ,让你少走弯路!
面试 | 你会使用哪些测试设计方法?
一文搞定 Postman 接口自动化测试

https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=jianshu&timestamp=1650767384

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容