场景: 在 A 服务器部署了 pytest 方式组织的接口测试用例,现在需要从Jenkins中构建,并通过 allure 插件生成报告。
遇到问题:添加一个 job ,并配置 ssh 到 A 服务器上,执行相关脚本。
但在 job 执行过程中,可以成功调用 A 服务器上的脚本并执行,但在生成 allure 报告时始终报:allure-results does not exists。
解决思路:一开始的时候解决的思路错了,一直以为是Jenkins的配置问题(刚好网上搜到说Jenkins 在配置allure 的时候有个bug ,所以一直在这个方向折腾) 后来认真看log 发现以下问题:
也就是说,job 在 A 服务器上执行并生成了 allure 的test result 之后就断开了连接, 所以在生成报告的时候是不可能获取到这些 test result的。 认真想一下后明白了:
job 执行的脚本生成的 result 是在 A 服务器上, 而生成报表的时候是从 Jenkins 的服务器上获取对应文件,所以找不到。
解决方法:将A 服务器添加为 Jenkins 的其中一个 node 节点,并指定 这个 job 只在这个节点上执行。
后话:问题虽然解决了,但感觉应该会有其他简单点的解决方法,希望有这方面的大神看到可以给点指点!
|