zoukankan      html  css  js  c++  java
  • UI自动化使用docker做并行执行

      在做UI自动化的时候,大部分人会遇到脚本执行过长的问题,这个一般通过并行处理。使用selenium grid做分发。

      但是传统的方案需要多个node节点,一般小公司无法提供如此多的服务器。改用VM虚拟机之后,虽然可以解决硬件的限制问题,VM搭建复杂,消耗资源过多,也是有其缺点。

    在docker普及的如今,使用docker代替VM,已经十分成熟。这边就记录下,本人使用docker的一些实践。

      操作完全参考大神 https://testerhome.com/topics/8450

    (一·)这边记录一些遇到的问题

    1.开始下载的官方的hub和node,搭建之后,跑不通,node注册不成功

    2.好不容易注册成功了,各种提示无session等信息

    3.浏览器打开之后,无后续动作

    ->最后通过使用大神的镜像,一次性就可以调通

    ->所以可能官方镜像有一点小问题,不建议使用,可以自行制作镜像

    (二)脚本要点

    1.原来是调用本地浏览器的,现在需要修改为调用远端

     ChromeOptions cap = new ChromeOptions();
     cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR,UnexpectedAlertBehaviour.IGNORE);
     WebDriver driver = new RemoteWebDriver(new URL("http://172.23.176.1:4444/wd/hub"), cap);
    

     最初使用的

    DesiredCapabilities chromeDC = DesiredCapabilities.chrome();
    ChromeOptions chromeDC = new ChromeOptions();
    WebDriver driver = new RemoteWebDriver(new URL("http://172.23.176.1:4444/wd/hub"), chromeDC);
    

      会提示,使用 ChromeOptions()替代 DesiredCapabilities.chrome()

    2.http://172.23.176.1:4444/wd/hub 地址就是hub的ip,而非node的ip

    可以通过http://localhost:4444/grid/console 显示正常,来判断ip

     3.需要实时查看容器的话,需要使用VNC

    本地安装VNC,且NODE也安装了VNC,官方镜像只有debug会自带VNC,所以还是建议自己做镜像,定制更强

    4.testng框架自带并发功能,只需要在xml中修改部分参数

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
    <suite name="All Test Suite" parallel="methods" thread-count="3">
    <test verbose="2" preserve-order="true" name="D:/testcases/testDocker">
        <classes>
            <class name="testDocker">
                <methods>
                    <include name="testChrome"/>
                    <include name="testChrome2"/>
                </methods>
            </class>
        </classes>
    </test>
    </suite>
    

      parallel也可以设置其他值,按照不同的维度并发,thread-count 线程也可以随意设置

    (三)执行

    1.可以在本地执行

    2.也可以尝试搭建到jenkins上

  • 相关阅读:
    深入浅出Vue.js(四) 整体流程
    深入浅出Vue.js(三) 模板编译
    实现strStr()--indexOf()方法
    Z字形变换
    最长回文子串
    删除数组中不符合条件的值
    整数反转
    寻找两个正序数组的中位数
    gorm 关系一对一,一对多,多对多查询
    gorm 如何对字段进行comment注释?
  • 原文地址:https://www.cnblogs.com/qiancaofengling/p/11497621.html
Copyright © 2011-2022 走看看