Robot Framework测试用例并行执行

背景

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

设计方案

方案一:

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

这里我们以web测试为例:

test-arch-robot.png

通过Hub节点中心,将不同的测试请求分发到合适的测试节点中去,实现测试的分布式执行。

方案二:

在同一台测试机上,启动不同的进程,来分别执行不同的测试用例,根据测试机的CPU核数确定启动的进程数,实现真正的并行执行。

这里我们主要用到了开源工具pabot来实现robot测试用例的并行执行。

robot_pabot.jpg

样例

执行下面这个简单的用例,了解并行执行过程。

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. 中文支持问题已经解决了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    宇文臭臭阅读 6,751评论 5 100
  • 1.测试与软件模型 软件开发生命周期模型指的是软件开发全过程、活动和任务的结构性框架。软件项目的开发包括:需求、设...
    Mr希灵阅读 21,987评论 7 278
  • 文章来自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鹏阅读 9,215评论 2 126
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,973评论 19 139
  • 指数分析 大盘再次破位下杀,到目前为止,没有出现60分钟的止跌效应,所以,我们的策略依旧是坚决不抄底。我想这是我最...
    牛呼呼阅读 337评论 0 2