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

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

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

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

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

相关文章

Linux_进程概念_冯诺依曼_进程概念_查看进程_获取进程pid_创建进程_进程状态_进程优先级_环境变量_获取环境变量三种方式_3

文章目录 一、硬件-冯诺依曼体系结构二、软件-操作系统-进程概念0.操作系统做什么的1.什么叫做进程2.查看进程3.系统接口 获取进程pid- getpid4.系统接口 获取父进程pid - getppid5.系统接口 创建子进程 - fork1、手册2、返回值3、fork做了什么4、基本用法 6.进程的状态1、进程…

探索Python人工智能在气象监测中的创新应用

Python是功能强大、免费、开源,实现面向对象的编程语言,在数据处理、科学计算、数学建模、数据挖掘和数据可视化方面具备优异的性能,这些优势使得Python在气象、海洋、地理、气候、水文和生态等地学领域的科研和工程项目中得到广泛应用。可以…

修改nuxtjs项目中的浏览器图标步骤

处理步骤: 打开配置页面 使用el-upload 上传图片到后台 后台把图片转为ico,返回图标路径 配置页面修改本页面预览图,点击保存,修改的数据库。 通知nuxt布局页面,修改head节点中的图标属性,…

Vscode与Cmake搭配配置opencv使用

vscode与Cmake基本使用 下载插件 CtrlShiftp打开VSCode的指令面板,然后输入cmake:q,VSCode会根据输入自动提示,然后选择CMake: Quick Start选择编译器根据提示输入项目名称选择可执行文件编译项目 方式一:执行命令cd build cmake…

[密码学] 密码学基础

目录 一 为什么要加密? 二 常见的密码算法 三 密钥 四 密码学常识 五 密码信息威胁 六 凯撒密码 一 为什么要加密? 在互联网的通信中,数据是通过很多计算机或者通信设备相互转发,才能够到达目的地,所以在这个转发的过程中,如果通信包…

数据库-索引快速学

索引 当表中数据量庞大时,往往搜索一条数据就会耗费很长的时间等待 索引是帮助数据库高效获取数据的数据结构 create index 索引名 on 数据表名(字段名);为该表下的某一字段创建索引,检索耗时会大大的减小 索引的优缺点 优点&…

盏燕生物科技将出席2024第七届燕窝天然滋补品博览会

参展企业介绍 深圳市盏燕生物科技有限公司,办公室地址位于中国第一个经济特区,鹏城深圳,深圳市龙岗区平湖街道禾花社区富安大道18号亚钢工贸大楼1栋1017A,我公司主要提供一般经营项目是:初级农产品、海产品、化妆品、…

使用Python抓取抖音直播间数据的简易指南【第152篇—抓取数据】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python抓取抖音直播间数据的简易指南 说明:本文已脱敏,隐去地址…

上海:6月1日起取消企业复工复产白名单制

财经新闻5月29日消息:上海市人民政府关于印发《上海市加快经济恢复振兴行动计划》的通知。 《方案》包括千方百计缓解各类市场主体困难,全面有序推进复工复产和市场复工复产,多措并举稳外资稳外贸,大力促进消费加速复苏&#xff0…

【Ubuntu】Ubuntu LTS 稳定版更新策略

1、确保下载环境 sudo apt update && sudo apt upgrade -y sudo apt autoremove 2、安装更新管理器 sudo apt install update-manager-core -y 3、设置只更新稳定版 sudo vim /etc/update-manager/release-upgrades 4、开始更新,耐心等待 sudo do-re…

Spring05 SpringIOC DI

名词解释 今天我们来介绍Spring框架的最重要的part之一 SpringIOC 和 DI 这里的SpringIOC 其实是容器的意思,Spring是一个包含了很多工具方法的IOC容器 什么是IOC呢? IOC其实是Spring的核心思想 Inversion of Control (控制反转) 可能这里你还是不理解这个是啥意思 其实就…

MySQL数据库高级语句

文章目录 MySQL高级语句older by 排序区间判断查询或与且(or 与and)嵌套查询(多条件)查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询(子查询)同表不同表嵌套查询还能用于删除…

ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…

Python爬虫如何快速入门

写了几篇网络爬虫的博文后&#xff0c;有网友留言问Python爬虫如何入门&#xff1f;今天就来了解一下什么是爬虫&#xff0c;如何快速的上手Python爬虫。 一、什么是网络爬虫 网络爬虫&#xff0c;英文名称为Web Crawler或Spider&#xff0c;是一种通过程序在互联网上自动获取…

linux编程--文件系统处理常用函数

文件系统 这一个课程的笔记 文件存储相关的概念 文件描述主要有两个inode和dentry inode 是一个结构体, 里面有这一个文件的权限, 类型, 大小, 时间, 用户, 盘块位置之类的信息, 这一个是文件属性的管理结构 文件名是单独存储的, 可以使用inode的编号找到这一个结构体 创建一…

应急响应实战笔记04Windows实战篇(1)

第1篇&#xff1a;FTP暴力破解 0x00 前言 ​ FTP是一个文件传输协议&#xff0c;用户通过FTP可从客户机程序向远程主机上传或下载文件&#xff0c;常用于网站代码维护、日常源码备份等。如果攻击者通过FTP匿名访问或者弱口令获取FTP权限&#xff0c;可直接上传webshell&#…

ida调试技巧-通过修改zf寄存器的值绕过简单反调试

参考本篇->OllyDbg笔记-对标志寄存器中ZF的理解&#xff08;逆向方面&#xff09;_零标志位zf怎么判断-CSDN博客 不想看也没关系&#xff0c;蒟蒻博主概述一下&#xff0c;总之&#xff0c;在机器执行汇编指令时&#xff0c;标志&#xff08;flag&#xff09;寄存器中的一个…

大模型新王诞生!Claude 3首次超越GPT4

一觉醒来&#xff0c;大模型世界迎来了“新王登基”&#xff01; 当地时间周三&#xff0c;聊天机器人竞技场Chatbot Arena更新对战排行榜&#xff0c;Claude 3反超GPT-4&#xff0c;一举摘得“最强王者”桂冠。 这次登顶榜首的是Claude 3系列的超大杯Opus&#xff0c;它以2分…

如何通过idea搭建一个SpringBoot的Web项目(最基础版)

通过idea搭建一个SpringBoot的Web项目 文章目录 通过idea搭建一个SpringBoot的Web项目一、打开idea&#xff0c;找到 create new project二、创建方式三、配置项目依赖四、新建项目模块五、总结 一、打开idea&#xff0c;找到 create new project 方式1 方式2 二、创建方式 新…

elasticsearch 6.8.x 索引别名、动态索引扩展、滚动索引

文章目录 引言索引别名&#xff08;alias&#xff09;创建索引别名查询索引别名删除索引别名重命名索引别名 动态索引&#xff08;index template&#xff0c;动态匹配生成索引&#xff09;新建索引模板新建索引并插入数据索引sys-log-202402索引sys-log-202403索引sys-log-202…