mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-11 18:11:21 +08:00
1, remove authentication switcher; 2, change authentication method: from verify request data's md5 to get token at the beginning.
4.9 KiB
4.9 KiB
ApiTestEngine
核心特性
- 支持API接口的多种请求方法,包括 GET/POST/HEAD/PUT/DELETE 等
- 测试用例与代码分离,测试用例维护方式简洁优雅,支持
YAML/JSON - 测试用例描述方式具有表现力,可采用简洁的方式描述输入参数和预期输出结果
- 接口测试用例具有可复用性,便于创建复杂测试场景
- 测试执行方式简单灵活,支持单接口调用测试、批量接口调用测试、定时任务执行测试
- 测试结果统计报告简洁清晰,附带详尽日志记录,包括接口请求耗时、请求响应数据等
- 身兼多职,同时实现接口管理、接口自动化测试、接口性能测试(结合Locust)
- 具有可扩展性,便于扩展实现Web平台化
Install
$ pip install git+https://github.com/debugtalk/ApiTestEngine.git#egg=ApiTestEngine
若安装出现问题,请查看FAQ。
执行ate -V,若正常显示版本号,则说明安装成功。
$ ate -V
0.1.0
执行ate -h,查看命令的帮助说明。
$ ate -h
usage: ate [-h] [-V] [--log-level LOG_LEVEL] [--report-name REPORT_NAME]
[testset_paths [testset_paths ...]]
Api Test Engine.
positional arguments:
testset_paths testset file path
optional arguments:
-h, --help show this help message and exit
-V, --version show version
--log-level LOG_LEVEL
Specify logging level, default is INFO.
--report-name REPORT_NAME
Specify report name, default is generated time.
编写测试用例
推荐采用YAML格式编写测试用例。
如下是一个典型的接口测试用例示例。具体的编写方式请阅读详细文档。
- config:
name: "create user testsets."
import_module_functions:
- tests.data.custom_functions
variable_binds:
- user_agent: 'iOS/10.3'
- device_sn: ${gen_random_string(15)}
- os_platform: 'ios'
- app_version: '2.8.6'
- sign: ${get_sign($user_agent, $device_sn, $os_platform, $app_version)}
request:
base_url: http://127.0.0.1:5000
headers:
Content-Type: application/json
device_sn: $device_sn
- test:
name: get token
request:
url: /api/get-token
method: POST
headers:
user_agent: $user_agent
device_sn: $device_sn
os_platform: $os_platform
app_version: $app_version
json:
sign: $sign
extract_binds:
- token: content.token
validators:
- {"check": "status_code", "comparator": "eq", "expected": 200}
- {"check": "content.token", "comparator": "len_eq", "expected": 16}
- test:
name: create user which does not exist
variable_binds:
- user_name: "user1"
- user_password: "123456"
request:
url: /api/users/1000
method: POST
headers:
token: $token
json:
name: $user_name
password: $user_password
validators:
- {"check": "status_code", "comparator": "eq", "expected": 201}
- {"check": "content.success", "comparator": "eq", "expected": true}
运行测试用例
ApiTestEngine可指定运行特定的测试用例集文件,或运行指定目录下的所有测试用例集文件。
执行单个测试用例集:
$ ate filepath/testcase.yml
执行多个测试用例集:
$ ate filepath1/testcase1.yml filepath2/testcase2.yml
执行指定目录下的所有测试用例集:
$ ate testcases_folder_path
Supported Python Versions
Python 2.7, 3.3, 3.4, 3.5, and 3.6.