【问题标题】:Pabot, Appium and reportsPabot、Appium 和报告
【发布时间】:2018-02-27 06:33:00
【问题描述】:

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

我正在多个 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 指令中执行所有套件,因为如果我这样做的话,我会遇到一些 appium 错误...错误,例如:WebDriverException: Message: A session is either terminated or not started pabotWebDriverException: Message: A new session could not be created. Details: Problem getting session data for driver type AndroidDriver; does it implement 'get driverData'?

我想从 another.xml 和 basics.xml 生成一个类似 log.html 和 report.html 的报告(之后与 Jenkins 一起工作)。

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

所以我想只是复制每个 output.xml 并重命名为 outputX.xml 最后制作一个

rebot output1.xml output2.xml output3.xml .... 

但是 rebot 并没有像我预期的那样工作:rebot 只是复制 X 次报告上的第一个移动测试,所以我的 log.html 上有类似的东西:

JustBasics
Test_Results_for_phone1
Test_Results_for_phone1

LetsRunAnother
Test_Results_for_phone1
Test_Results_for_phone1

我做错了什么?

我的第二个问题是,当测试执行失败时(例如应用程序的错误或崩溃),我的日志文件中没有屏幕截图。它们都指向 log.html 的根目录,但图像位于类似 pabots_results/X/TestSuiteName/appium-screenshoot-x.png 的路径中 这里又出了什么问题?我是否必须对图像做一些事情,或者 pabot 应该单独做(在 pabot.py 几乎然后文件末尾,有一个名为 _copy_screenshots ....)的函数

这个故事令人不安的是,关于 pabot 的文档并不多。而且我不知道是我做错了什么还是pabot有一些错误!

感谢您阅读我的文章,再见;)!

更新:为了避免所有这些问题,我编写了这个小工具:https://github.com/bastienjalbert/aptr

【问题讨论】:

标签: android jenkins appium robotframework


【解决方案1】:

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

在您的工作配置中,在post-build actions 下,您应该有publish Robot Framework test results。点击高级按钮,查看所有选项,您应该有一个标记为other files to copy的字段

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

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

您实际上可以在插件的page 中找到此内容以及可能与您相关的更多信息

【讨论】:

  • Pabot 不检查结果的任何子文件夹中是否有屏幕截图 (github.com/mkorpela/pabot/blob/…)。两个屏幕截图都不是从 pabot_results 文件夹中复制的。我在 pabot 中写了一个小技巧来复制屏幕截图。我不想依赖 jenkin 来正确生成我的报告。
【解决方案2】:

我想你会想要使用

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

来自

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

【讨论】:

  • “合并输出”来自同一个测试套件。如果两个输出文件不是同一个测试套件,则 Merge 参数无法合并它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2018-11-21
相关资源
最近更新 更多