RobotFramework编写用例,在Jenkins上如何实现用例的并发运行?

我们了解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个用例),那么用例少的套件则会早早执行完,资源空置无法合理利用。这个时候就需要我们拆分用例套件或均匀化用例,提高执行效率和资源使用率。此外,用例并发更加关键的一点是要去除用例之间的耦合和相互依赖性,避免因为用例之间的顺序依赖导致用例运行失败。


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JFrog Artifactory二进制文件管理工具部署使用

1.简介 JFrog Artifactory二进制文件管理工具,目前已经在使用的公司有很多,足见他的方便好用。 2.下载安装包 点击下载地址 这里我下载的是7.9.2版本 3. 安装 (1)在安装JFrog Artifactory之前需要安装好jdk(需…

9_企业架构队列缓存中间件分布式Redis

企业架构队列缓存中间件分布式Redis 学习目标和内容 1、能够描述Redis作用及其业务适用场景 2、能够安装配置启动Redis 3、能够使用命令行客户端简单操作Redis 4、能够实现操作基本数据类型 5、能够理解描述Redis数据持久化机制 6、能够操作安装php的Redis扩展 7、能够操作实现…

AWS 日志分析工具

当您的网络资源托管在 AWS 中时,需要定期监控您的 AWS CloudTrail 日志、Amazon S3 服务器日志和 AWS ELB 日志等云日志,以降低任何潜在的安全风险、识别严重错误并确保满足所有合规性法规。 什么是 Amazon S3 Amazon Simple Storage Service&#xff…

苹果ios的系统app应用WebClip免签应用开源及方式原理

在移动设备上,为了方便访问我们经常使用的网站或服务,我们经常会希望将其添加到主屏幕上,以便快速启动。虽然我们可以通过使用浏览器书签实现这一目标,但添加一个图标到主屏幕上,使得它看起来与原生App无异&#xff0c…

为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模?

1.2为何开展数据清洗、特征工程和数据可视化、数据挖掘与建模 视频为《Python数据科学应用从入门到精通》张甜 杨维忠 清华大学出版社一书的随书赠送视频讲解1.2节内容。本书已正式出版上市,当当、京东、淘宝等平台热销中,搜索书名即可。内容涵盖数据科学…

一个最新国内可用的免费GPT4,Midjourney绘画网站+使用教程

一、前言 ChatGPT GPT4.0,Midjourney绘画,相信对大家应该不感到陌生吧?简单来说,GPT-4技术比之前的GPT-3.5相对来说更加智能,会根据用户的要求生成多种内容甚至也可以和用户进行创作交流。 然而,GPT-4对普…

MAC 系统在vs code中,如何实现自动换行

目录 问题描述: 问题解决: 问题描述: 在vscode中,有些时候,一行内容过多,如果不能自动换行,就需要拖动页面,才能看到完整的内容。如下图两行所示: 问题解决&#xff1a…

基于opencv和tensorflow实现人脸识别项目源码+可执行文件,采用python中的tkinter库做可视化

项目名称: 基于OpenCv和tensorflow的人脸识别 完整代码下载地址:基于OpenCv和tensorflow的人脸识别 环境配置: Pythontensorflow2OpenCv categories: 人工智能 description: Opencv是一个开源的的跨平台计算机视觉库,内部实现了图像处理和计算机视觉方…

2023 IoTDB 用户大会成功举办,深入洞察工业互联网数据价值

2023 年 12 月 3 日,中国通信学会作为指导单位,Apache IoTDB Community、清华大学软件学院、中国通信学会开源技术委员会联合主办,“科创中国”开源产业科技服务团和天谋科技(北京)有限公司承办的 2023 IoTDB 用户大会…

基于 Stereo R-CNN 的自动驾驶 3D 目标检测

论文地址:https://openaccess.thecvf.com/content_CVPR_2019/papers/Li_Stereo_R-CNN_Based_3D_Object_Detection_for_Autonomous_Driving_CVPR_2019_paper.pdf 论文代码:https://github.com/HKUST-Aerial-Robotics/Stereo-RCNN 论文背景 大多数 3D 物…

【开源】基于JAVA的APK检测管理系统

项目编号: S 038 ,文末获取源码。 \color{red}{项目编号:S038,文末获取源码。} 项目编号:S038,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软…

MA营销自动化如何助力商家实现精准营销?

惟客数据 MAP 是一个跨渠道和设备的自动化营销平台,允许接触点编排个性化旅程,通过短信、社交推送等方式为您的客户创建无缝的个性化体验,加强客户关系并赢得忠诚度。可与惟客数据CDP 产品无缝配合使用,通过数据驱动做出更实时&am…

【android开发-16】android中文件和sharedpreferences数据存储详解

1,文件读写方式的数据存储 下面是一个简单的示例,演示如何在Android中使用内部存储来保存和读取文件: 保存文件: try { String data "这是要保存的数据"; FileOutputStream fos openFileOutput("myFile"…

亚马逊云科技Serverless视频内容摘要提取方案

概述 随着GenAI的普及,视频内容摘要生成成为一个备受关注的领域。通过将视频内容转化为文本,可以探索到更广泛的应用场景,其中包括: 视频搜索与索引:将视频内容转化为文本形式,可以方便地进行搜索和索引操作…

MATLAB——二维小波的多层重构

%% 学习目标:二维小波的多层重构 %% 案例1 clear all; close all; load woman.mat; Xind2gray(X,map); [C,S]wavedec2(X,3,db4); %二维小波的多层分解 S C(1:38*38)0; %将小波的近似系数设置为0 Ywaverec2(C,S,db4); %二维小波的多层…

Docker+jenkins+gitlab实现持续集成

1.安装环境 服务器ip虚拟机版本192.168.5.132centos7.6192.168.5.152centos7.6 2. 安装docker 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息,要确保centos7能上外网 yum-config-manager --add-repo http:…

windows如何解决端口冲突(实用篇)

在项目设计中,环境配置成功点击运行瞬间,一大堆红爆出,8080端口占用,这个是很烦人的。。。 解决方式: 笨方法:一、查看所有端口实用情况(挨个扫) 按住【WINR】快捷键打开运行输入…

处理实时视频流:第三方美颜SDK的实时图像处理策略

为了提高用户体验,许多应用和平台开始采用第三方美颜SDK,通过先进的图像处理技术实时改善视频中的面部外观。本文将深入探讨这些第三方美颜SDK在实时视频流处理中所采用的图像处理策略,揭示其背后的技术原理和创新。 一、引言 实时视频流处理…

P6 Linux 系统中的文件类型

目录 前言 ​编辑 01 linux系统查看文件类型 02 普通文件 - 03 目录文件 d 04 字符设备文件 c 和块设备文件 b 05 符号链接文件 l 06 管道文件 p 07 套接字文件 s 总结 前言 🎬 个人…

在cmd下查看当前python的版本

在cmd窗口下运行python --version或者py --version,可以查看当前python的版本。例如: