12

我发现了许多与此相关的类似问题,但不是我正在寻找的特定答案。实际上我的要求略有不同,所以我最终发布了以下问题。

我想自动化 Rest APIs,对于同一案例我有两个选项。第一个是Rest Assured,第二个是Play Framework

例如,要测试这个 RestAPI:

http://servername:9000/dbs/all/list/m1/p1/sch1

(↑ 这给出了 xml 响应)

所以,我已经写了一个代码Java with Rest assured,并且工作正常。我将此与Maven项目集成,以便可以与Jenkins. 示例代码:

   import com.jayway.restassured
    public class TestNGSimpleTest2 {

        @Test
        public void testApi() {
                expect().
                statusCode(200).
                body("Status", equalTo("Su22ccess")).
                when().
                get("http://localhost:9000/dbs/all/list/m1/p1/sch1");

        }

所以我的第一个问题是:

  1. 放心是最好用的工具吗?
  2. Play框架更好吗?
  3. 我发现了许多其他工具,如 Jmeter、RightAPI 等来测试 RestAPI。但我不认为这是自动化的。我对吗?
4

3 回答 3

6

对于自动化 REST API 测试,我推荐使用Postmannewman作为起点。

Postman 为构建请求提供了出色的 UI,而 newman 是它的命令行对应物。在 Postman UI 中创建一组请求和相应的测试后,您可以通过 newman 从 Jenkins 运行整个集合,从而在测试失败时阻止部署。

于 2017-05-22T22:10:57.907 回答
4

您发布的 RestAssured 代码适用于基本情况。如果您想:它不一定是“正确的工具”:

  • 不断添加新的测试用例,资源不多
  • 使用格式正确的错误消息传播警报(尤其是在 Slack 或 GitHub 等地方)
  • 减少误报
  • 重复使用相同的测试进行监控

构建这些功能需要时间和资源,这取决于您团队的规模,可能不是一个好主意。

您发布的一些商业解决方案可以为您解决其中的一些问题。

Assertible是一个无代码解决方案,支持您直接描述的工作流程:https ://assertible.com/blog/automated-api-testing-with-jenkins

于 2017-05-18T18:57:30.813 回答
0

我们可以集成 Jenkins 和 JMeter来自动化 RestAPI 测试。

这样做的原因是,

  • 在 Jenkins 中,我们可以以任何方式(每分钟/小时/天/月.....)或基于提交等来安排我们的测试/构建。

  • 我们可以在 JMeter 中将n个 API 捆绑在一起并在一个测试中执行。(维护很容易)

  • 有一个jenkins 插件“Performance”可用于检查每个 API 调用的响应时间,它将响应时间与之前的响应时间进行比较。
  • JMeter 有一个内置线程功能,它有助于比任何单线程测试更快地执行测试。

截图: 在此处输入图像描述

脚步

  1. 我们可以在 JMeter 中准备我们的 API

  2. 在 Jenkins 中以非 GUI 模式配置测试。

  3. 在 Jenkins 中安装和配置性能插件。

于 2019-11-27T06:24:15.530 回答