背景

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

设计方案

方案一:

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

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

Robot Framework测试用例并行执行相关推荐

  1. Robot Framework自动化测试教程-通过RIDE创建工程、测试套、测试用例、测试资源、变量文件,引入测试库

    1. 创建测试工程 RIDE工具中有Project概念,实际上Robot Framework中是没有工程的概念,可以理解为最顶层的测试套. 1.1. 新建测试工程 点击 File–>New Pr ...

  2. 【Android自动化测试】Robot Framework+adb框架(五)——L1层测试用例

    前言 Robot Framework是一款用Python编写的通用型测试框架,具有良好的可扩展性,支持关键字驱动,可以同时测试多种类型客户端(Web,PC,移动端)或者接口,也可以进行分布式测试执行. ...

  3. Robot Framework用户指南

    Robot Framework用户指南 版本2.8.6 版权所有©诺基亚解决方案和网络2008-2014 根据知识共享署名3.0 Unported许可授权 目录 1开始 1.1简介 1.2版权和许可 ...

  4. Robot Framework(十八) 支持工具

    5支持工具 5.1库文档工具(libdoc) libdoc是一种用于为HTML和XML格式的测试库和资源文件生成关键字文档的工具.前一种格式适用于人类,后者适用于RIDE和其他工具.Libdoc也没有 ...

  5. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  6. Robot Framework简介及在汽车电子测试中的应用

    前言 汽车电子软件扮演着越来越重要的角色,为适应市场变化,车载软件和功能的开发需要快速迭代.敏捷开发.持续测试.CI/CT/CD实现和DevOps等成了汽车电子行业的高频词,也正在帮助OEM和零部件供 ...

  7. Robot Framework + Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试

    最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具软件的研发工作,积累了一些经验,在此与大家做一下分享,也算是做 ...

  8. 使用Robot Framework实现多平台自动化测试

    本文章出自[码同学软件测试] 码同学公众号:自动化软件测试 码同学抖音号:小码哥聊软件测试 基于Robot Framework.Jenkins.Appium.Selenium.Requests.Aut ...

  9. 8s 接口压力测试_Python Locust 基于Robot Framework实现关键字驱动接口性能测试

    上一篇文章Python Locust 基于Robot Framework实现关键字驱动接口性能测试中,我们分享了如何利用Locust库结合Robot Framework实现接口的性能指标的持续性比较, ...

最新文章

  1. linux的dns的转发域,Linux DNS服务器子域授权、转发器和转发域配置实例(三)
  2. golang interface传结构体
  3. python 内存溢出能捕获吗_从0基础学习Python (19)[面向对象开发过程中的异常(捕获异常~相关)]...
  4. chapter 15 运算符详解
  5. android 安装第三方app,Android识别预装的第三方App方法实例
  6. 软件测试课程学习总结
  7. Windows获取系统版本号
  8. android 10闪退如何解决,安卓Activity启动在10.0下闪退
  9. 大数据基础概念思维导图
  10. 面试笔试杂项积累-Unity
  11. java快速开发项目_GitHub - Johnnyzhoutq/X-SpringBoot: X-SpringBoot是一个轻量级的Java快速开发平台,能快速开发项目并交付【接私活利器】...
  12. iOS framework动态库重签名
  13. Socket的超时时间
  14. html canvas粒子线条组合动画背景特效
  15. 【笔记】linux文件权限与目录配置
  16. 绿灰配色的微信营销PPT模板-优页文档
  17. python批量添加经纬度照片水印,照片水印,坐标转换
  18. ZEGO即构科技荣获36氪【WISE2020中国新经济之王最具影响力企业】
  19. submit()和execute()区别
  20. android 开发纸牌游戏,Windows自带游戏《纸牌》的秘密:全球流行,开发者却没拿到一分钱...

热门文章

  1. 转载:【opencv入门教程之三】:图片的载入|显示|输出
  2. spring autowired idea都匹配上了_你清楚这几个Spring常用注解吗?
  3. Spring4 MVC + REST + List + Bootstrap 简单示例
  4. sqlite3 表里插入系统时间(时间戳)
  5. java中的servlet是线程安全的嘛_Java面试题:Servlet是线程安全的吗?(转)
  6. C++ 标准库类型 queue
  7. Tensorflow2.6更新cuda11.2
  8. 【Python】强烈建议你学这 3 个 Python AutoEDA 工具包!
  9. 【学术相关】如何避免博士延期毕业?
  10. 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM