在 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 只在这个节点上执行。
问题虽然解决了,但感觉应该会有其他简单点的解决方法,希望有这方面的大神看到可以给点指点!