引入
在脚本执行过程中,经常会出现这种情况,由于网络等客观因素而并非真正的错误,导致脚本运行出错。这种情况会干扰我们的分析判断。本着这个问题,我上网找了一些帖子,发现大部分都是修改Ride代码实现重跑,然而我使用的Ride是由他人修改好的支持Python3的版本,那些方法并不适用。终于发现了另一个种方法,直接调用pybot命令,三条命令直接搞定~
第一条命令
Pybot.bat --outputdir D:\log\round1 C:\python35\PoC17A_AutoTest\PocAutoTest\POC1.5SelfTest.txt
打开cmd,输入上面的命令并执行,意思是用pybot.bat执行测试脚本。这条命令的意思可以分为三部分,第一部分是调用Pybot.bat脚本;第二部分是传入的参数outputdir(输入报告的位置),这里输出的报告的位置是D盘下的log中的round1文件夹(文件夹不存在会自动创建);第三部分是执行测试脚本的位置,这里是C下的POC1.5SelftTest.txt测试套件。
第二条命令
Pybot.bat -R D:\log\round1\output.xml --outputdir D:\log\round2 C:\python35\PoC17A_AutoTest\PocAutoTest\POC1.5SelfTest.txt
输入上面的命令并执行,意思是将第一次执行失败的用例再次执行一遍。这条命令可以分为四部分,第一部分依然是调用Pybot.bat脚本;第二部分是传入参数 R (从前面的输出文件中选择先前执行的失败测试用例),这里的参数是 D:\log\round1\output.xml,也就是我们第一次执行产生的output.xml文件;第三部分是参数outputdir,之前说过是测试报告的位置;第四部分是执行的测试脚本的位置,依然是C下的POC1.5SelftTest.txt测试套件。但是打开你会发现,这次执行的不再是测试套件的全部,而是第一次执行失败的用例。
第三条命令
rebot.bat -o D:\log\Last\output.xml -l D:\log\Last\log -r D:\log\Last\report -R D:\log\round1\output.xml D:\log\round2\output.xml
输入上面命令并执行,意思是将两次执行的结果合并为一个,用例在其中一次执行中通过就算通过。这条命令可以分为五部分,第一部分是调用rebot.bat脚本;第二部分是传入的参数 o (合并后的output.xml的位置),这里是Last文件中;第三部分是传入的参数 l (合并后的log.html的位置),这里是Last文件中;第四部分是参数 r (合并后的report.html的位置),这里也是Last文件中;第五部分是参数 R(要合并的两个xml文件),这里分别是第一次和第二次执行输出的output文件。
组合成.bat脚本执行
如果我们依次输入命令等待结果,再输入吓一条命令,是不是很不方便。我们可以将三条命令组成一个.bat脚本,这样点击便可依次执行命令,我们等待结果就好啦~
call Pybot.bat --outputdir D:\log\round1 C:\python35\PoC17A_AutoTest\PocAutoTest\POC1.5SelfTest.txt
call Pybot.bat -R D:\log\round1\output.xml --outputdir D:\log\round2 C:\python35\PoC17A_AutoTest\PocAutoTest\POC1.5SelfTest.txt
call rebot.bat -o D:\log\Last\output.xml -l D:\log\Last\log -r D:\log\Last\report -R D:\log\round1\output.xml D:\log\round2\output.xml
pause
前三条命令就是我们刚刚讲的三条命令。需要说明的是,我们在每条命令前面都添加了 Call 。Call命令在bat中用来在一个批处理脚本中调用另一个批处理脚本。最后我们加了一个 pause ,是为了使我们的bat脚本在执行结束后不自动关闭cmd窗口,便于我们执行信息。这么做的缺点是不灵活,执行不同的用例或套件,需要修改命令。
参考:
https://blog.csdn.net/be_x_man/article/details/83863116 (感谢作者)