s3cc0/ restful-api-test-engine
这是一个简单的API测试引擎。通过简单的JSON文件,您可以运行所有RESTful API的测试。
v1.0-stable
2015-12-11 13:26 UTC
Requires
- php: >=5.5
This package is not auto-updated.
Last update: 2024-09-28 16:59:25 UTC
README
此包提供了一个简单的API测试类。测试通过run.php在终端运行。
如何使用?
在文件夹中找到run.php。使用给定的参数运行此文件以设置测试引擎。
如果您已编写一些测试,则可以执行它们:
$ php run.php -u <api url> -t <test dir> -m <mock dir> -n <number of rounds> -c <concurrency level>
示例
php run.php -u "http://httpbin.org" -t "jsons/" -m "mocks/" -n 10 -c 2
如何编写测试?
首先,所有测试都必须放在同一个文件夹中,子文件夹会被忽略。
###创建一个简单的测试###
一个测试可以包含一个或多个子测试。
{
"tests" : [
{
"name" : "Try to login with a wrong data",
"path" : "/login",
"method" : "POST",
"request_params" : {
"email" : "empty@me.com",
"password" : "12345678"
},
"validation" : {
"http_code" : 406,
"response_params" : {
"code" : 406,
"message" : "$nn"
}
}
},
...
]
}
选项
- $nn - 表示应为 "非空"
- $eq - 表示检查响应中的变量1等于变量2
- .$c - 将返回keypath的计数(用于数组)
- $ia - 表示检查变量是数组
- 后续版本将提供更多选项...
###保存变量###
要重用输出或创建的数据,可以将它们保存到全局变量中(注意:使用唯一的键!)。Keypath应该是请求响应中的可用路径。
"save_global" : [ { "key" : "account_id", "keypath" : "account.id" } ]
要重用保存的变量,您可以使用{$account_id}轻松实现。
"name" : "Delete account with id {$account_id}", "path" : "/accounts/{$account_id}",
###使用mocks###
如果您已创建mocks,可以轻松通过在request_params中添加字符串来加载它们。此示例将加载mock account.json。
"request_params" : "account",
您还可以使用mock来验证响应值。为此,在验证中添加mock。
"validation" : { "http_code" : 200, "mock" : "account" },
###扩展头部###
您可以使用测试集中的header扩展和覆盖请求头部。头部变量也会引用全局保存的变量。
"header" : { "Authorization" : "Bearer {$access_token}" }
