allure报告多设备用例集成

学习背景

公司需求搭建多设备平台,在此基础上需要对多设备进行兼容性测试,在pytest的框架下,allure报告不支持多设备相同用例展示,于是对allure报告数据进行改造

使用方式

多设备兼容,使用pytest,生成allure报告,并行执行测试用例

allure报告改造思路

pytest在运行测试用例指定的报告生成路径,会生成对应的用例的json数据,allure前端报告读取该文件下json数据生成报告,于是对该文件下的json数据修改来达到多设备用例的展示集成。

用例报告数据格式说明

需要改造的数据字段

多设备并行执行用例集的时候,生成的json数据会被覆盖,其中被覆盖的原因是用例集执行生成的UUID以及historyId、testCaseId是一致的。生成的UUID逻辑是在用例收集到就开始生成,所以多设备在并行执行过程中,报告数据json会被覆盖。

改造数据方法

遍历json数据的文件,读取文件夹下所有的文件,返回所有的json格式文件的文件名列表,.attach文件是allure报告中的附加信息文件,比如错误截图,报错文本信息等,.jpg文件是错误截图,或者测试步骤图片

遍历修改获取到的json文件里面字段,修改后的json文件保存至另外一个文件夹

把该文件夹下面保存的.jpg,.atta文件也移至新保存的用例报告文件夹,后续allure报告生成指定文件夹就指定新的文件夹,我命名为allure2文件夹


该方法放在测试用例集后面执行,run函数后面执行就可,然后就可以执行allure生成报告命令来生成allure报告

改造后数据报告展示



注意事项:json数据格式对应其位置修改,字段展示数据是根据用例参数描述排列展示,需要修改其字段下标

个人建议

  • 在多设备执行下函数名为唯一,报告展示的美观性以及可读性,建议一个用例一个用例集,及一个用例一个文件或者为一个class类。当然也可以修改对类的数据改造,需要对class类的用例名称改造

后续思考

  • UI录制脚本获取点击效果思路?getevent 获取坐标,atx2录制脚本可实施性,Qpython方案效果如何
  • 兼容多机型的特殊权限监控?
1 个赞