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

使用pabot并行执行robotframework用例的更多相关文章

  1. RobotFramework 用例出错后继续操作

    出错后退出 在默认情况下,当一个测试用例中的某个关键字返回错误时,这个测试用例就停止执行剩余的关键字.RF会继续执行下一个用例.这么做的好处是节省时间--反正这里出问题要返回来看了,再继续执行剩下的关 ...

  2. robotframework用例标签的使用

    *** Settings ***Force Tags req-42Default Tags owner-john smoke *** Variables ***${HOST} 10.0.1.42 ** ...

  3. 第一天:学会如何在pycharm上编写第一条robotframework用例

    ---恢复内容开始--- 1.python环境的安装和依赖包的下载

  4. 自动化测试框架Cucumber和RobotFramework的实战对比

    转自: http://www.infoq.com/cn/articles/cucumber-robotframework-comparison   一.摘要 自动化测试可以快速自动完成大量测试用例,节 ...

  5. robotframework框架 - 在Pycharm当中编写RobotFramework测试用例

    众所周知,pycharm是个写python极好用的编辑器.也可以装很多的插件来完成各种骚操作. 某一天,心血来潮在pycharm的插件库里,搜索了一下robot,恩,发现有支持robotframewo ...

  6. Robot Framework 环境安装(一)

    1.安装python:https://www.python.org/2.安装python的第三方库:robotframework (1)检查是否支持pip命令. (2)robotframework安装 ...

  7. 自动化测试框架Cucumber和Robot Framework的实战对比

    自动化测试框架Cucumber和RobotFramework的实战对比 一.摘要 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本:同时它需要拥有专业开发技能的人才能完成开发,且需要大量 ...

  8. jenkins multijob 插件使用

    如果你想要停止对下游/上游工作链定义的混乱 当您想要添加具有层次结构的任务时,按顺序执行或并行执行 安装multijob插件可以让jenkins任务按照分组.顺序执行 jenkins版本:2.80 1 ...

  9. 章节十六、6-xml参数化and并行case

    一.读取xml文件中参数 1.案例演示--->创建一个需要读取数据的类 package testclasses; import org.testng.annotations.Test; impo ...

随机推荐

  1. 开源项目SwipeBackLayout的问题处理

    在安卓系统4.4会出现滑动时底层没有之前的activity界面?解决:在主界面设置如下: <item name="android:windowIsTranslucent"&g ...

  2. Hibernate学习笔记(三)

    我是从b站视频上学习的hibernate框架,其中有很多和当前版本不符合之处,我在笔记中进行了修改以下是b站视频地址:https://www.bilibili.com/video/av14626440 ...

  3. canvas跟随页面滑动后准确定位到真实坐标

    先来了解一个属性: getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left.top.right和bottom.分别表示元素各边与页面上边和左边的距离. var ...

  4. 从壹开始前后端分离【重要】║最全的部署方案 & 最丰富的错误分析

    缘起 哈喽大家好!今天是周一了,这几天趁着午休的时间又读了一本书<偷影子的人>,可以看看

  5. java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称而且未指定默认驱动程序解决方法

    开发程序须要登录功能 .就不想用大数据库.直接用java连接access.     在自己机器上一切正常,  url直连 和配置数据源都没有问题.  公布到windows server2008 上 , ...

  6. 用Visual Studio高版本号打开低版本号的project,转换时出现错误:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

    解决方法是: 在电脑里面搜索发现   C:\Program Files\Microsoft Visual Studio 10.0\VC\bin   C:\Windows\winsxs\x86_netf ...

  7. quick-cocos2d-x教程10:实现血条效果。

    血条是常见功能.能够通过一个血条背景和一个不断改变的血条宽度.来实现少血. 在MainScence.lua中,先改代码: function MainScene:ctor()     local bg ...

  8. [Sciter] 1. 创建最简单的Sciter项目

    一些函数 sciter::debug_output_console _; 程序运行时自动启动一个控制台窗口,通过在_tiscript_中调用stdout.println来输出调试信息 SciterSe ...

  9. 我要开启vue2新征程。

    最近我们Team接到一个新项目,给财务部开发一个内部用的结算系统. 我想了想,心里这个兴奋啊(内部系统诶,可以大胆一点的用vue2了...) 又多了一个能练手的项目,之前的卡爷就是太坑爹了...明明v ...

  10. C# 敏感词过滤

    public class BadWordFilter { #region 变量 private HashSet<string> hash = new HashSet<string&g ...