如何使用邮递员测试获得代码覆盖率

Posted

技术标签:

【中文标题】如何使用邮递员测试获得代码覆盖率【英文标题】:How to get code coverage using postman test 【发布时间】:2017-02-13 14:49:08 【问题描述】:

我们在 RestEasy 中创建了 REST 服务并在 Wildfly 服务器中运行。我们正在运行 Postman 测试用例来测试 Rest URL。

当我们执行 postman 测试套件时,有没有办法获得服务的代码覆盖率?

我们使用 SonarQube 来分析代码覆盖率。

【问题讨论】:

您是否设法获得了代码覆盖率?我发现自己处于同样的境地。我设法使用 co.poynt.postman.runner 1.0.9 版执行测试,但无法获得代码覆盖率 @aurelius 我发布了一个答案,但如果它不适合您的情况,我们深表歉意。 感谢@PeterThomas,但如果我们想朝这个方向发展,我想我们最终会使用放心... @aurelius 不要说我没有警告你:P docs.google.com/document/d/… 【参考方案1】:

我认为没有,这里也有人问过类似的问题: Generate Sonar code coverage report from Postman tests

原发帖人进一步评论:

事实上,经过一番谷歌搜索,作为一种变通方法,我们可以使用远程 Jacoco 代理挂在 java 应用服务器中。我们将尝试运行 jacoco maven 在测试执行之前和之后的目标,以便 生成 jacoco 覆盖率报告。见:link 如果我们更新帖子,我会更新 有一些进展。

此外,纽曼似乎对此有异议: https://github.com/postmanlabs/newman/issues/408

虽然这可能会有所帮助

【讨论】:

是的,我读过那篇文章,我使用 jacoco-maven-plugin 来获取覆盖率,但是邮递员测试所覆盖的代码不会进入生成的统计信息【参考方案2】:

Karate 是您问题的答案,前提是您愿意切换到另一个测试框架。

这里是具有代码覆盖工作的演示示例的链接:https://github.com/intuit/karate/tree/master/karate-demo#code-coverage-using-jacoco。由于空手道是一个 JVM 实现,它很简单,我建议您将空手道测试保留在同一个 Maven 模块(或等效模块)中,以获得最简单的选择。否则它是可能的,但更难 - 你将需要摆弄 Maven 配置文件等或做一些仪器同步体操。

我想如果您已经在 Postman 中进行了很多测试,那么这里的建议可能并不实用。但我发布这个答案是为了让将来遇到这个问题的其他人受益。

如果幸运的话,您可以使用 UI 中内置的实验转换器快速将您的测试移植到空手道:https://github.com/intuit/karate/wiki/Karate-UI#postman-import

也许您可以为使该功能做好准备做出贡献。

【讨论】:

【参考方案3】:

没有任何东西可以为邮递员测试提供代码覆盖率。

最终我们选择了放心,开始替换所有的邮递员测试。

【讨论】:

以上是关于如何使用邮递员测试获得代码覆盖率的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Android 获得 AWS Device Farm 测试的代码覆盖率?

如何在 Wildfly 服务器上运行的测试中获得 sonarqube 代码覆盖率

如何无需在推荐的框架中编写测试用例即可获得 nodejs 应用程序的代码覆盖率?

使用 FxCop 获得百分比代码覆盖率

如何从终端中的谷歌测试套件获得c ++代码超额?

功能测试如何获得代码覆盖率?大佬解释得太详细了!