Jenkins中的空手道API测试调试

时间:2020-03-09 15:59:12

标签: jenkins karate

这是一个开放式的问题/请求(允许的希望)。

在我们的团队中,我们正在为我们喜欢的项目使用Karate API测试。这些测试易于编写,对于没有编码背景的人们来说是相当容易理解的。我们面临的最大问题是这些API测试具有固有的脆弱性(因为我们正在测试的代码会调用其他系统)。在本机上本地运行测试时,很容易看到测试失败的地方。但是,我们也使用了Jenkins管道,当在Jenkins中测试失败时,很难知道为什么/如何失败。默认情况下,我们会收到如下消息:


com.company.api.OurKarateTests > [crossdock] Find Crossdock Location.[1:7] LPN is invalid FAILED

    com.intuit.karate.exception.KarateException

基本上,所有这些告诉我们的是失败方案的文件名和起始行。我们确实已经建立了管道,以便我们可以传递debug标志并获取更多信息。但是,这有两个问题。一个是您必须记住在要查看信息的每个提交中都放入此标志;另一个是我们从信息不足到信息过多(读取整个版本的24MB文件)。

我正在寻找有关如何改进此过程的建议,最好不要更改Jenkins管道(另一个团队来管理这个过程,这可能需要很长时间)。尽管如果更改管道是唯一的方法,但我想知道这一点。我愿意“跳出框框思考”并接受非传统的解决方案(例如发布到松弛的集成中)。

我们目前正在使用空手道版本0.9.3,但是作为此工作的一部分,我可能计划升级到0.9.5。我已经阅读了一些有关更改的信息。 “ ExecutionHook”是执行此操作的好方法吗?我将自己尝试一下。

其他团队/开发人员是否遇到过此问题?您有什么解决方案?同样,我们真的很喜欢空手道,只是努力将其与Jenkins集成在一起。

1 个答案:

答案 0 :(得分:1)

您不是按此处所述使用Cucumber Reporting库:https://github.com/intuit/karate/tree/master/karate-demo#example-report

如果这样做-您将获得一份HTML报告,其中包含所有流量(以及您print的所有内容)与测试步骤和过程中的错误跟踪的一致性,大多数团队认为这足以进行构建进行故障排除,无需浏览日志。

也请尝试升级,因为我们一直在努力提高日志的实用性,如果您在JS块或karate-config.js中失败,则可能会看到改进。

否则,ExecutionHook是一个很好的探索-但是,如果HTML报告没有提供您所需的内容,我会感到非常惊讶。