zoukankan      html  css  js  c++  java
  • 使用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进行拆分,这样也能开启多个进程。

     

  • 相关阅读:
    第十一课:容器监控和Prometheus介绍
    第五课:单机编排利器:Docker Compose
    第四课:企业级镜像仓库Harbor
    第三课:快速部署LNMP平台
    负载均衡
    中间系统到中间系统IS-IS
    ansble 常识
    centos 的两种密码破解方式
    git在windos下使用
    git 本地仓库和远程仓库搭建
  • 原文地址:https://www.cnblogs.com/sunshine-blog/p/10069442.html
Copyright © 2011-2022 走看看