自动化Rest API测试并将其与持续集成(CI-Jenkins)集成

und*_*ned 11 api rest playframework jenkins rest-assured

我发现了许多与此相关的类似问题......但不是我要找的具体答案.实际上我的要求没什么不同.所以张贴这个.

我想自动化Rest API,我有两个相同的选项.第一个是Rest Assured,第二个是Play框架.

对于exa.测试这个RestAPI,

http://servername:9000/dbs/all/list/m1/p1/sch1
Run Code Online (Sandbox Code Playgroud)

(这给出了xml响应)我用Java保证编写了一个代码,并且工作正常.我将它与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");

        }
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题是:1.放心使用是最好的工具吗?2. Play框架更好吗?3.我发现了许多其他工具,如Jmeter,RightAPI等来测试RestAPI.但我不认为这是自动化的.我对吗?

小智 5

为了自动化REST API测试,我建议您先使用Postmannewman

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


cre*_*ert 4

您发布的 RestAssured 代码对于基本情况来说效果很好。如果您想执行以下操作,那么它不一定是“正确的工具”:

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

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

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

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