• 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上

  • 相关阅读:
    P2016 战略游戏(没有上司的舞会变式)
    P2014 [CTSC1997]选课(树上背包)
    P2015 二叉苹果树(树上背包)
    P1122 最大子树和(简单树形DP)
    P1505 [国家集训队]旅游(树链剖分)
    linux下的几个网络流量监控工具使用
    大数据场景下数据异构之 Mysql实时写入HBase(借助canal kafka SparkStreaming)
    基于Spark Streaming + Canal + Kafka对Mysql增量数据实时进行监测分析
    sqoop安装与使用
    MongoDB各系统上安装
  • 原文地址:https://www.cnblogs.com/qiancaofengling/p/11497621.html
Copyright © 2020-2023  润新知