• 使用pabot并行执行robotframework用例


    主要观点:使用pabot并行运行robotframework,可以解决:robotframework执行案例时间长的问题

    解决执行案例时间长的方案:

    目的:

    缩短案例的运行时间

    两种方法:  

    1. 将大的项目分成几个子模块,测试案例也是分为几个子模块,这样进行分布式测试
    2. 在一台机子上开启多个进程进行测试

    解决方案:

    使用pabot类库:

    pabot 通过开启多个进程以Suite为单位并行运行robotframework测试案例,并且对于进程之间资源共享的问题也有锁机制。

    安装:

    pip install robotframework-pabot

    pabot命令行参数:

    • --processes [NUMBER OF PROCESSES] ——> 并行的线程数(最大是机器CPU的数目)
    • --pabotlib启动PabotLib远程服务器。这支持在并行测试执行之间进行锁定和资源分配。
    • --pabotlibhost [HOSTNAME] ——> 远程服务器的主机名(默认是127.0.0.1)
    • --pabotlibport [PORT] ——> PabotLib远程服务器端口号(默认为8270)
    • --resourcefile [FILEPATH]可以包含用于分配资源的共享变量的文件的指示符。这需要与pabotlib选项一起使用。

    实际测试:

    这里新建一个pabotdemo文件夹,下面包含有3个测试用例文件(即:3个Suite),每个文件中包含有3个Test(即:3个测试用例)。每个测试用例都是执行相同的步骤sleep 10s。如果在RF中运行9个Test,每个Test耗时10s,那就需要90s。

    下图为在RF中运行的测试结果:

    使用pabot开启2个进程:pabot --processes 2 PabotDemo,耗时:63s

     

    使用pabot开启3个进程:pabot --processes 2 PabotDemo,耗时:32s

     

    上面简单测试,没有进程间的资源共享,所以没加锁,具体使用可以参考:https://github.com/mkorpela/pabot

    注意:Pabot并行运行是以Suite为单位运行的,因为项目的案例结构有的Suite中案例个数100多个,有的只有几个,这样就导致案例少的Suite几个可能已经运行完了,案例多的Suite可能才刚开始,并不能发挥并行运行的最大效果,分布不均,所以需要对案例进行调整,将案例多的Suite进行拆分,这样也能开启多个进程。

     

  • 相关阅读:
    DELPHI 各版本下载
    一个好的网站,学习前端
    没那么难,谈CSS的设计模式
    一个前端的自我修养
    如何学习Javascript
    jQuery WeUI V0.4.2 发布
    微信官方开源UI库-WeUI
    js与php传递参数
    ?js调用PHP里的变量,怎么弄?
    Liferay7 BPM门户开发之23: 了解内置工作流(Kaleo Workflow)
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/10069442.html
Copyright © 2020-2023  润新知