您还未登录! 登录| 注册| 帮助

您的位置: 首页 > 软件测试技术 > 测试用例 > 正文

Robot Framework测试用例并行执行

发表于:2017-08-06 作者:wywincl 来源: 点击数:

  背景
  在实际的测试业务中,我们往往会遇到测试用例执行时间比较长,大量的测试用例串行执行的话,会使的整个测试周期变长,导致不能及时的反馈自动化测试的结果。因此我们会想出几种解决方案,来并行的执行测试用例,加快自动化测试时间。做到能够及时的反馈测试结果。
  设计方案
  方案一:

  测试用例分布式执行,通过策略,将不同的测试用例,分发到不同的测试机上进行执行,然后收集测试结果,合并测试报告。
  这里我们以web测试为例:

  通过Hub节点中心,将不同的测试请求分发到合适的测试节点中去,实现测试的分布式执行。
  方案二:
  在同一台测试机上,启动不同的进程,来分别执行不同的测试用例,根据测试机的CPU核数确定启动的进程数,实现真正的并行执行。
  这里我们主要用到了开源工具pabot来实现robot测试用例的并行执行。

  样例
  执行下面这个简单的用例,了解并行执行过程。
  pip install -U robotframework-pabot==0.35
  git clone https://github.com/wywincl/example-for-pabot.git
  cd example-for-robot && pabot --processes 5 topsuite
  输出
ubuntu2@ubuntu2-PowerEdge-R410:~/tmp/example-for-pabot$ pabot --processes 5 topsuite
2017-01-05 15:48:13.683078 [PID:30072] [3] EXECUTING Topsuite.Testsuite2-测试2
2017-01-05 15:48:13.690442 [PID:30075] [4] EXECUTING Topsuite.Testsuite3
2017-01-05 15:48:13.689776 [PID:30073] [1] EXECUTING Topsuite.2Suite.Testsuite5-测试5
2017-01-05 15:48:13.696798 [PID:30079] [0] EXECUTING Topsuite.2Suite.Testsuite4
2017-01-05 15:48:13.978538 [PID:30077] [2] EXECUTING Topsuite.Testsuite1
2017-01-05 15:48:14.079019 [PID:30077] [2] PASSED Topsuite.Testsuite1 in 0.1 seconds
2017-01-05 15:48:14.089794 [PID:30072] [3] PASSED Topsuite.Testsuite2-测试2 in 0.4 seconds
2017-01-05 15:48:14.091765 [PID:30075] [4] PASSED Topsuite.Testsuite3 in 0.4 seconds
2017-01-05 15:48:14.094498 [PID:30073] [1] PASSED Topsuite.2Suite.Testsuite5-测试5 in 0.4 seconds
2017-01-05 15:48:14.098067 [PID:30079] [0] PASSED Topsuite.2Suite.Testsuite4 in 0.4 seconds
Output:  /home/ubuntu2/tmp/example-for-pabot/output.xml
Log:     /home/ubuntu2/tmp/example-for-pabot/log.html
Report:  /home/ubuntu2/tmp/example-for-pabot/report.html
Elapsed time: 0 minutes 0.664 seconds
  小结
  结合Jenkins+docker技术,我们可以很方便的基于上面的两套方案,打造分布式并行自动化测试集群。
  备注
  Does not Support Other Unicode Character Like Chinese Character. 中文支持问题已经解决了。
  转自:http://www.jianshu.com/p/eecb9b2a22de