使用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进行拆分,这样也能开启多个进程。

 

posted @ 2018-12-05 10:25  小嘉欣  阅读(5824)  评论(0编辑  收藏  举报