从命令行进行Rest API测试

时间:2015-03-13 21:52:34

标签: rest testing

我正在准备SDK,截至目前,SDK没有单独的CI系统。

我想测试一些REST端点,当用户使用SDK创建软件并尝试使用我们的框架运行时,这些端点应该可用。

我已经编写了shell脚本中的所有手动步骤,并计划将脚本作为crontab每隔几个小时运行一次。

现在,对于休息终点测试,我正在考虑使用curl并检查我们是否收回数据。但随着我们扩展功能,这可能会变成很多工作。我看着frisby框架哪种适合我的需求。

是否有任何建议允许我在框架软件启动时测试休息服务。

2 个答案:

答案 0 :(得分:3)

我创建了一个非常小的bash脚本来测试JSON API,这可能会很有用。它使用jqcurl作为依赖项。 curl用于发出请求,jq用于进行JSON处理。仅用于测试JSON API。
链接:api-test

每个要运行的API调用都存储在一个JSON文件中,格式如下:

{
  "name": "My API test",
  "testCases": {
    "test_case_1": {
      "path": "/path_1",
      "method": "POST",
      "description": "Best POST api",
      "body": {
        "value": 1
      },
      "header": {
        "X-per": "1"
      }
    },
   }
 "url": "http://myapi.com"
}

要运行测试用例:

api-test -f test.json run test_case_1
api-test -f test.json run all # run all API call at once.

它将有组织地产生输出

Running Case: test_case_1
Response:
200 OK
{
  "name": "Ram",
  "full_name": "Ram Shah"
}

META:
{
  "ResponseTime": "0.078919s",
  "Size": "235 Bytes"
}

它还支持通过jq JSON比较和正常等式/子集比较来自动测试API。

答案 1 :(得分:1)

可能swat正是您所需要的。理由:

  • 这是用于网络的DSL,休息服务测试自动化
  • 它使用curl命令行API创建http请求
  • 它是DSL和命令行工具,用于运行在DSL上编写的测试场景
  • 它可以从bash样式脚本和一般配置
  • 进行配置
  • 开头很容易
  • 可能在您的情况下,基于curl的测试用例可以轻松转换为swat DSL格式

(*)披露 - 我是特警的作者。