当先锋百科网

首页 1 2 3 4 5 6 7

我们了解RobotFramework编写自动化测试用例的方法,了解如何将用例在Jenkins上运行。

但是,随着用例的增多,传统的pybot/robot命令运行测试用例会耗费大量的时间,这就慢慢成为了一个苦恼的问题。

那么,在Jenkins上如何实现用例的并发运行呢?!

我们需要认识的是Jenkins只是一个持续集成的自动化工具,在Jenkins服务里,我们可以通过调用shell脚本或python脚本等的方式实现我们的用例运行。

通过RobotFramework要实现用例的并发运行,不得不提一下pabot库——RobotFramework测试并行执行器,可以将一个执行拆分为多个执行并节约测试执行时间。

pabot安装方法

在线安装方法:使用pip install -U robotframework-pabot 命令即可。

离线安装方法:通过https://github.com/mkorpela/pabot地址下载,安装压缩包,解压后,使用setup.py install命令即可。

pabot使用方法

1、参数列表

2、使用方法

基本使用方法,如:pabot --processsess 2 /home/robotframwork-test,使用2个并行执行/home/robotframework-test目录下的测试用例。

pabot使用场景模拟

1、如何多并发执行测试用例

这是我们选择使用pabot的最原始和基本需求,使用--processess参数即可满足,参考上述”基本使用方法”。

2、如何重复测试失败测试用例

在没有选择使用pabot之前,我们使用pybot运行用例时,可以使用--rerunfailed参数读取output.xml文件中失败的用例重新执行。命令如:pybot --rerunfailed ./output.xml。

当我们使用pabot并发运行之后,我们同样可以调用pybot的--rerunfailed参数,重新运行失败用例。参考命令如:pabot --processesses 2 pybot --rerunfailed /home/robotframework-test。

3)如何控制执行顺序

pabot默认通过pabotsuitenames文件控制执行序.pabotsuitenames文件结果如下图1所示。前4行为pabot运行时生成的相关信息,其后为运行的用例套件顺序。如果我们想控制用例执行顺序,可通过--odering [文件名]参数来控制,例如:pabot --ordering file,file为文件名。file里的内容前4行为空,从第5行开始编辑,格式如.pabotsuitenames。

图1 pabotsuitenames文件内容

图2 编辑的file文件内容

通过pabot –ordering file运行用例,可看到执行顺序如下图3所示(ID号表明执行顺序)。由下图可见,执行顺序于图2中指定的顺序一致。

图3 指定file文件控制执行顺序

此外,还可以并添加#WAIT标志,等待前面的用例执行完后再执行#WAIT后的用例,参考格式如下图所示。

图4 #WAIT参数使用方法

4)如何使用非默认的pybot/robot启动命令

有的测试环境可能存在不止一个pybot/robot命令,例如:python2和 python3并存,且都安装了robotframework。环境默认使用python2语言。当使用pabot pybot/robot….时,默认使用的时python2的pybot/robot。那么如何使用python3的pybot/robot呢?

这个时候,使用--command [自定义 pybot/robot 命令] –end-command 即可满足我们的要求。例如:pabot --command python3 -m robot --end-command --processes 2。

4.总结

本文简单介绍了pabot的使用方法和一些使用场景。使用pabot可以提高我们robotframework测试用例的执行效率,但是指的注意的是:pabot是以测试套件为单位并行运行的。因此可能存在如果用例套件的用例分布不均(比如A套件100个用例,B套件10个用例),那么用例少的套件则会早早执行完,资源空置无法合理利用。这个时候就需要我们拆分用例套件或均匀化用例,提高执行效率和资源使用率。此外,用例并发更加关键的一点是要去除用例之间的耦合和相互依赖性,避免因为用例之间的顺序依赖导致用例运行失败。

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!