name: #登录接口2、testcase文件:存放测试用例步骤,一个test属于一次请求,congfig接口全局定义参数
base_url: ${gain_base_url()}
request:
url: /gk/user/login
headers:
Content-Type: application/json
method: POST
json:
isVisitor: $isVisitor
mobile: $mobile
checkcode: $checkcode
- config:
name: qjp_login_user_post
request:
headers:
Content-Type: application/json
variables:
- tk_type: 0
- test:
name: 登录
request:
url: http://qjptest.51biaoqing.com/gk/user/login
headers:
Content-Type: application/json
Auth-Token: a8f68cf3-67eb-469f-bc61-4ba92152fc97
GK-App-Key: d14269a21ac4c7af9c5a
User-Agent-TK: ACFY9OZ-LelZlDX1eQUXq1ANkorI3ZONsERxanA
User-Agent-Platform: android
method: POST
json:
isVisitor: 0
mobile: 18616578655
checkcode: "8888"
validate:
- eq: [content.code, 200]
setup_hooks:
- ${encryption($request,$tk_type)}
extract:
- token: content.data.token
3、testsuiutes:测试场景构建
4、实践:
方式1:
直接在testcases文件中创建对应yaml文件,后hrunn命令运行
config:
name:xxx(必填) ---测试用例名称,测试报告中的标题
variables: list of dict(非必须) ---定义的全局变量,作用域为整个用例,即当前yml文件
parameter:list of dict (非必须) -----全局参数,用于实现数据化驱动,作用域为整个用例,即当前yml文件
request:dict (非必须) -----request的公告参数,作用域为整个用例,即当前yml文,常用参数如base_url(参数后,在test中的url可以只描述path),headers
test:
name:xxx(必填) ----测试步骤名称,在测试报告中作为测试步骤的名称
request:dict(必填) ----http请求详细内容(包含url,headers,method,json)
variables:list of dict(非必填) ---测试步骤中定义的变量,作用域于当前步骤
extract:list(非必填) ----提取当前测试步骤响应数据参数并保存到变量中如var,后续测试用例都可以听过$var形式引用
setup_hooks:list(非必填) ----在http请求前执行hook函数,主要用于准备工作
teardown_hooks:list(非必填)----在请求发送后执行hook函数,用户用户测试后的清理工作
直接在文件工程根目录下cmd 命令:hrun testcasess中yml文件的绝对路径,运行完后可以在根目录下的report下查看本次运行报告
样例:
- config:
name: qjp_login_user_post
request:
headers:
Content-Type: application/json
variables:
- tk_type: 0
- test:
name: 登录
request:
url: http://qjptest.51biaoqing.com/gk/user/login
headers:
Content-Type: application/json
Auth-Token: a8f68cf3-67eb-469f-bc61-4ba92152fc97
GK-App-Key: d14269a21ac4c7af9c5a
User-Agent-TK: ACFY9OZ-LelZlDX1eQUXq1ANkorI3ZONsERxanA
User-Agent-Platform: android
method: POST
json:
isVisitor: 0
mobile: 18616578655
checkcode: "8888"
validate:
- eq: [content.code, 200]
setup_hooks:
- ${encryption($request,$tk_type)}
extract:
- token: content.data.token
方式2:
先在api中定义相关接口请求相关接口参数,再在testcases中应用api引用相关接口信息,命令行中运行
hrun testcasess中yml文件的绝对路径,运行完后可以在根目录下的report下查看本次运行报告api样例——————————————————
config:关于参数化问题:
name:xxx(必填) ---测试用例名称,测试报告中的标题
variables: list of dict(非必须) ---定义的全局变量,作用域为整个用例,即当前yml文件
parameter:list of dict (非必须) -----全局参数,用于实现数据化驱动,作用域为整个用例,即当前yml文件
request:dict (非必须) -----request的公告参数,作用域为整个用例,即当前yml文,常用参数如base_url(参数后,在test中的url可以只描述path),headers
test:
name:xxx(必填) ----测试步骤名称,在测试报告中作为测试步骤的名称
api:api/xxx.yml ----测试步骤对应接口信息
variables:list of dict(非必填) ---测试步骤中定义的变量,作用域于当前步骤
validate:list (非必填) ----用于断言,来校验接口返回值与预期是否一致
extract:list(非必填) ----提取当前测试步骤响应数据参数并保存到变量中如var,后续测试用例都可以听过$var形式引用
setup_hooks:list(非必填) ----在http请求前执行hook函数,主要用于准备工作
teardown_hooks:list(非必填)----在请求发送后执行hook函数,用户用户测试后的清理工作
方式三:
在testcasuites中运行测试场景case
variables: $var
- config:
name: qjp_login_user_post
request:
base_url: http://qjptest.51biaoqing.com
headers:
Content-Type: application/json
Auth-Token: a8f68cf3-67eb-469f-bc61-4ba92152fc97
GK-App-Key: d14269a21ac4c7af9c5a
User-Agent-TK: ACFY9OZ-LelZlDX1eQUXq1ANkorI3ZONsERxanA
User-Agent-Platform: android
variables:
- tk_type: 0
- test:
name: 登录
# api: api/demo_api.yml
request:
url: /gk/user/login
method: POST
json:
isVisitor: 0
mobile: 18616578655
checkcode: "8888"
validate:
- eq: [content.code, 200]
setup_hooks:
- ${encryption($request,$tk_type)}
extract:
- token: content.data.token
requests中的base_url和headers,base_url定义后,在test中url只需要填写路径即可,headers属于整个当前yml文件公用,在test中不用再指定
如果在测试步骤中指定headers使用指定的?样例如上
原文:https://www.cnblogs.com/YouxiYouxi/p/12736828.html