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

时间:2014-02-15 18:12:57

标签: api rest playframework jenkins rest-assured

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

我想自动化Rest API,我有2个选项。 第一个是Rest Assured,第二个是Play framework。

对于exa。测试这个RestAPI,

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

(这给出了xml响应) 我已经用Java保证编写了一个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");

        }

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

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

  • 不断添加新的测试用例并且资源不多
  • 使用格式错误消息传播警报(特别是对Slack或GitHub这样的地方)
  • 减少误报
  • 重复使用监控
  • 的相同测试

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

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

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

答案 2 :(得分:0)

我们可以集成Jenkins和JMeter 以自动进行RestAPI测试。

原因是

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

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

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

屏幕截图: enter image description here

步骤

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

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

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