性能测试工具 Jenkins job 获取远程服务器数据问题

Jerry li · 2018年10月26日 · 最后由 Jerry li 回复于 2018年10月27日 · 2708 次阅读

场景:

在 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 只在这个节点上执行。

后话:

问题虽然解决了,但感觉应该会有其他简单点的解决方法,希望有这方面的大神看到可以给点指点!

共收到 2 条回复 时间 点赞

按照楼主的场景,我觉得 node 这个方式是正解了。现在是还有什么问题吗?

陈恒捷 回复

没有问题了,已经可以完整跑起来。
其实不用 allure 插件的话,不添加 node 也是可以的,所以想是不是 allure 有其他方式解决这种场景

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册