Android 帕博特、阿皮姆和报告

Android 帕博特、阿皮姆和报告,android,jenkins,appium,robotframework,Android,Jenkins,Appium,Robotframework,我在使用appium和pabot运行Robot框架测试套件时遇到一些问题 我正在多台android设备上运行一些测试套件,如下所示: pabot --pabotlib --argumentfile1 phone1.dat --argumentfile2 phone2.dat -v LANG:fr --outputdir output --output basics.xml JustBasics_tests.robot pabot --pabotlib --argumentfile1 phone

我在使用appium和pabot运行Robot框架测试套件时遇到一些问题

我正在多台android设备上运行一些测试套件,如下所示:

pabot --pabotlib --argumentfile1 phone1.dat --argumentfile2 phone2.dat -v LANG:fr --outputdir output --output basics.xml JustBasics_tests.robot 
pabot --pabotlib --argumentfile1 phone1.dat --argumentfile2 phone2.dat -v LANG:fr --outputdir output --output another.xml LetsRunAnother_test.robot 
我不会在一条pabot指令中执行所有套件,因为如果我这样做的话,我会遇到一些应用程序错误。。。错误如下:
WebDriverException:Message:会话已终止或未启动pabot
WebDriverException:Message:无法创建新会话。详细信息:获取驱动程序类型AndroidDriver的会话数据时出现问题;它是否实现了“获取驱动数据”?

我想从另一个.xml和basics.xml生成一个类似log.html和report.html的报告(之后与Jenkins一起使用)

我的第一个问题是basics.xml和另一个.xml文件只包含两个设备中的一个测试执行。如果我想要一个测试用例执行的两个设备的数据,我需要获取output.xml文件,该文件包含两个测试用例执行。。。当然,output.xml在每个pabot命令之后都会被覆盖

所以我想复制每个output.xml并重命名为outputX.xml,最后生成一个

rebot output1.xml output2.xml output3.xml .... 
但是rebot并不像我预期的那样工作:rebot只是在报告上复制X次第一次移动测试,所以我的log.html上有这样的内容:

JustBasics
电话1的测试结果
电话1的测试结果

LetsRunAnother
电话1的测试结果
电话1的测试结果

我做错了什么

我的第二个问题是,当测试执行失败(例如应用程序出错或崩溃)时,我的日志文件中没有截图。它们都指向log.html中的根目录,但图像的路径类似于pabots_results/X/TestSuiteName/appium-screenshot-X.png 再说一遍,怎么了?我必须对图像做些什么,还是pabot应该单独做(在文件末尾的pabot.py中,有一个函数名为_copy_screenshots…)

这个故事令人不安的是,关于pabot的文档并不多。我不知道我是做错了什么,还是帕博特有错误

谢谢你读我的书,再见


更新:为了避免所有这些问题,我写了这个小工具:

对于你的截图问题,我假设你使用的是Jenkins的机器人框架插件。这里发生的事情是,在测试执行后,插件会将您的输出、报告和日志移动到当前构建的工作区,以在构建的仪表板中显示它。另一方面,默认情况下,屏幕截图不会移动

在作业配置中,在
生成后操作
下,应该有
发布机器人框架测试结果
。单击“高级”按钮查看所有选项,您应该有一个标记为“要复制的其他文件”

在此字段中,添加与selenium屏幕截图匹配的路径(可能只是
*.png

现在,在您执行测试之后,插件应该将您的屏幕截图移动到与log.html相同的位置,它们将能够显示在日志中


您可以在插件的

中找到这一点,以及可能与您相关的更多信息,我想您会想使用

rebot --merge output1.xml output2.xml output3.xml .... 


来自同一测试套件的“合并输出”。如果两个输出文件不是关于同一测试套件的,则合并参数无法合并它们。Pabot不检查结果()的任何子文件夹中是否有屏幕截图。两个屏幕截图都不是从pabot_结果文件夹复制的。我在pabot上写了一篇小文章来拷贝截图。我不想依赖jenkin的团队来正确生成我的报告。谢谢你的建议。下次我做这个小工具来解决我的问题时,我会按照你告诉我的去做
rebot --help

(...)
Options
=======

 -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
(...)