s3cc0/restful-api-test-engine

这是一个简单的API测试引擎。通过简单的JSON文件,您可以运行所有RESTful API的测试。

v1.0-stable 2015-12-11 13:26 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:59:25 UTC


README

此包提供了一个简单的API测试类。测试通过run.php在终端运行。

PHP API test engine screenshot

如何使用?

在文件夹中找到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}" 
}