博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Robot Framework --rerunfailed 的使用
阅读量:5920 次
发布时间:2019-06-19

本文共 1284 字,大约阅读时间需要 4 分钟。

hot3.png

RF --rerunfailed 功能是非常实用的,利用它可以在大量case第一次跑过后,从中筛选出失败的案例重新执行;结合rebot的 --merge 功能,可以重新输出output.xml,在Jenkins上展示出最后的测试结果,从而减轻自动化测试维护人员排查问题的工作量。

特别是在交易系统的服务端自动化测试中,极度依赖柜台系统和撮合工具,也会受网络延迟影响,难免在某一个时间环境各种不稳定,那么利用失败案例重跑机制能有效验证功能是否有效,一定几率的排除环境干扰。

pybot

-R --rerunfailed output Select failed tests from an earlier output file to be re-executed. Equivalent to selecting same tests individually using --test option.

rebot

-R --merge When combining results, merge outputs together instead of putting them under a new top level suite. Example: rebot --merge orig.xml rerun.xml

与Jenkins结合使用

Execute Windows batch command

1

2

3

call pybot.bat ...

if %ERRORLEVEL% EQU 0 (exit 0) else (call pybot.bat --outputdir output --rerunfailed .\output\output.xml --output rerun.xml ...&call rebot.bat --merge .\output\output.xml .\output\rerun.xml ...)

exit 0

2个关键点

这个内容看似简单,其实有一个大坑,需要注意到我们在batch脚本中调用 pybot 或者 rebot的方式,是采用 call 的方式!如果直接采用 pybot 方式执行案例,那么pybot退出后,整个batch的进程就结束了,后续所有命令就不执行了。

另外还有一点要注意的是,在第一个调用pybot的时候不能用参数 --nostatusrc,该参数会在命令行执行完成后强制把errorlevel的值会置为0,那么后续就无法根据errorlevel来进行判断是否重新执行失败案例。如果不利用errorlevel来做判断条件,而是无条件直接执行 --rerunfailed 当第一次执行全部成功后,此命令行会直接抛错,导致整个任务以失败结束。

前后两次案例执行结果分析对照

通过log日志,可以看到对于第一次失败的案例,有2条message显示,也能看到为什么第一次失败,具体失败在哪个断言。

 

转载于:https://my.oschina.net/qingfengxulai/blog/801028

你可能感兴趣的文章
centos 6.8中的iptables设置
查看>>
ajax传递数组问题
查看>>
从PHP源代码中提取出来的md5 - md5.h
查看>>
MySQL存储引擎介绍
查看>>
详解应对平台高并发的分布式调度框架TBSchedule
查看>>
SQL进阶二: join详解
查看>>
mysql 配置文件中常用的参数
查看>>
通知结果
查看>>
微信收费门:究竟抄了谁的底
查看>>
解密FFmpeg播放track mode控制
查看>>
第一节、汉诺塔与栈
查看>>
实时检查Linux系统负载情况
查看>>
我的技术我做主
查看>>
C语言:标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。行号不能有限制...
查看>>
关于LINUX的初步学习笔记
查看>>
对IOMMU 和 vIOMMU 的理解
查看>>
聊聊flink DataStream的window coGroup操作
查看>>
linux驱动
查看>>
w3cschool juery代码摘记
查看>>
lr目录规范
查看>>