$ hrun api/get_headers.yml
INFO Start to run testcase: get headers
headers
INFO GET http://httpbin.org/headers
INFO status_code: 200, response_time(ms): 477.32 ms, response_length: 157 bytes
.
----------------------------------------------------------------------
Ran 1test in 0.478s
OK
测试用例(testcase)
引用接口定义
有了接口的定义描述后,我们编写测试场景时就可以直接引用接口定义了。
在测试步骤(teststep)中,可通过 api 字段引用接口定义,引用方式为对应 API 文件的路径,绝对路径或相对路径均可。推荐使用相对路径,路径基准为项目根目录,即 debugtalk.py 所在的目录路径。
- config:name:"create user and check result."id:create_userbase_url:"http://127.0.0.1:5000"variables:uid:9001device_sn:"TESTCASE_CREATE_XXX"output:- session_token- test:name:setup and reset all (override) for $device_sn.testcase:testcases/setup.ymloutput:- session_token- test:name:create user and check result.variables:token:$session_tokentestcase:testcases/deps/check_and_create.yml
config:name:create users with uidvariables:device_sn:${gen_random_string(15)}var_a:${gen_random_string(5)}var_b:$var_abase_url:"http://127.0.0.1:5000"testcases:create user 1000 and check result.:testcase:testcases/create_user.ymlvariables:uid:1000var_c:${gen_random_string(5)}var_d:$var_ccreate user 1001 and check result.:testcase:testcases/create_user.ymlvariables:uid:1001var_c:${gen_random_string(5)}var_d:$var_c
参数化场景(parameters)
对于参数化场景,可通过 parameters 实现,描述形式如下所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
config:name:create users with parametersvariables:device_sn:${gen_random_string(15)}base_url:"http://127.0.0.1:5000"testcases:create user $uid and check result for $device_sn.:testcase:testcases/create_user.ymlvariables:uid:1000device_sn:TESTSUITE_XXXparameters:uid:[101,102,103]device_sn:[TESTSUITE_X1, TESTSUITE_X2]
$ hrun --startproject demo
Start to create new project: demo
CWD: /Users/debugtalk/MyProjects/examples
created folder: demo
created folder: demo/api
created folder: demo/testcases
created folder: demo/testsuites
created folder: demo/reports
created file: demo/debugtalk.py
created file: demo/.env