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


    ⬇️ 点击“下方链接”,提升测试核心竞争力!

    >>更多技术文章分享和免费资料领取原文链接 上期我们以Jenkins为例,一边实战一边了解Docker的基础命令。这期,我们将带大家使用Docker搭建三个平时测试工作中非常有用的小工具。学会这三个实战之后,你就可以说对Docker不是浅尝即止在理论阶段,而是真正有一定了解,也能为你的工作,真正的解决一部分问题。\n\

    使用Docker搭建prometheus+grafana的服务器监控

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

    1.Docker启动prometheus

    官网下载node_exporter。地址:https://prometheus.io/\n### 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页面


    6.在首页输入命令,然后点击execute,命令有

    内存使用率: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))
    

    不过这个展示界面不够友好,而且不好保存。所以在业内,我们常常将prometheus+grafana配合使用

    7.启动grafana

    docker run --name grafana -d -p 8011:3000 grafana/grafana
    进入grafana界面,初始账号密码为admin/admin
    进入Adddatasourcs->选择prometheus
    配置prometheus
    字段名含义NameprometheusURL启动的prometheus的地址(localhost可能会报错)

    8.import模板grafanadashboard内填写https://grafana.com/grafana/dashboards/8919PrometheusDataSource

    字段选择prometheus点击Import,就搭建成功了

    注意,前方有坑:
    1.如果被监控的node_exporter是mac的话,要去prometheus官网下载mac版本的node_exporter执行,且mac需要修改一些配置参数。
    2.如果修改了prometheus.yml需要重启镜像

    使用Docker搭建Prometheus监控MySQL

    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.5docker 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的配置,并dockerrestartprometheus,重新加载prometheus的配置(可以参考上面的步骤2)

    5.进入prometheus页面,查看Targets中mysql是否启动成功\n

    6.按照上面的docker启动prometheus过程,配置好之后进去grafana页码,然后选择datasource,进入prometheus,输入prometheus的url,选择“Save&Test”

    7.导入mysql模板到grafana,mysql的模板id为6239,其他步骤和前面搭建服务器监控是一样的哦。

    下面是mysql的监控效果

    使用Docker搭建分布式UI自动化环境

    如果我们的WebUI自动化测试用例有上千条,执行时间常常需要1~2天,我们用什么方法可以节省这个执行时间呢?接下来我们就通过分布式UI自动化,即启动多个浏览器执行UI自动化测试用例,且每个浏览器执行的UI自动化测试用例都是不同的。这样子,就可以大大提升我们的UI自动化测试的效率。
    分布式UI自动化架构
    UITest层会将测试请求发送到GridHub层,而GridHub则会将这些测试请求转换为测试任务下发到每一个Node节点(在每台机器上面我们可以装一个或多个Node节点。),随后Node节点驱动浏览器进行自动化测试。测试完成后,Node节点将测试结果发送到GridHub上面,GridHub再将结果转发回我们的测试程序UITest中

    (如下图所示)
    Selenium镜像介绍
    Selenium镜像网上有很多,官网下载即可。也可以定制化。而且还有非可视化的镜像。具有调试作用的远程UI服务的可视化镜像,还有轻量级简易版镜像版本。

    1.底层镜像,可以做定制化

    selenium/base:BaseimagewhichincludesJavaruntimeandSeleniumServerJARfile selenium/node-base:BaseimageforGridNodeswhichincludesavirtualdesktopenvironment selenium/hub:ImageforrunningaGridHub

    2.谷歌、火狐浏览器的非可视化镜像

    selenium/node-chrome:GridNodewithChromeinstalled,needstobeconnectedtoaGridHub selenium/node-firefox:GridNodewithFirefoxinstalled,needstobeconnectedtoaGridHub

    3.具有远程UI服务的可视化镜像(调试作用):

    selenium/node-chrome-debug:GridNodewithChromeinstalledandrunsaVNCserver,needstobeconnectedtoaGridHub selenium/node-firefox-debug:GridNodewithFirefoxinstalledandrunsaVNCserver,needstobeconnectedtoaGridHub

    4.简易版镜像,不需要GridHub和Node架构:

    selenium/standalone-chrome:SeleniumStandalonewithChromeinstalled selenium/standalone-firefox:SeleniumStandalonewithFirefoxinstalled\nselenium/standalone-chrome-debug:SeleniumStandalonewithChromeinstalledandrunsaVNCserver selenium/standalone-firefox-debug:SeleniumStandalonewithFirefoxinstalledandrunsaVNCserver 文档链接: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

    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
    如果想启动多个Node,可以重新修改一下端口映射比如,将5902:5900修改为5903:5900这时候我们就可以发现图片中又显示了一个Node信息。

    如果想在一个Node中启动多个浏览器,我们可以更改这两个字段的数量,比如我们将6修改为7NODE_MAX_INSTANCES=7;NODE_MAX_SESSION=7,这时候我们可以看到有7个谷歌浏览器的logo

    准备一个自动化测试脚本,以Python为例\n
    运行脚本查看运行结果,成功!注意:如果服务器系统不支持可视化不加这条会启动失败chrome_options.add_argument("--headless")
    ### ⬇️ 点击“下方链接”,提升测试核心竞争力!
    >>更多技术文章分享和免费资料领取
    img

  • 相关阅读:
    用SQL SERVER取分组数据第一条:查出每个班级的成绩第一名
    [转]spring beans.xml
    [转]为什么要使用框架
    MySQL 5.6 for Windows 解压缩版配置安装
    [转]hql 语法与详细解释
    [转]slf4j + log4j原理实现及源码分析
    [转]最详细的Log4j使用教程
    yii2 checkbox 的使用实例
    Magento Order 状态详解
    yii2 设置多个入口文件
  • 原文地址:https://www.cnblogs.com/hogwarts/p/16148039.html
Copyright © 2020-2023  润新知