HttpRunner基础应用二

一、config参数说明

关键词 是否必须 数据类型 描述
name string 测试用例名称,在测试报告中将作为标题
base_url string 接口访问地址的公共部分
variables list of dict 定义全局变量,作用域为整个用例
verify boolean 是否验证服务器的TLS证书
export list

整个用例输出的参数列表,可输出的参数包括公共的 variable 和 extract 的参数;

在 log-level 为 debug 模 式下,会在 terminal 中打印出参数内容

setup_hooks list 在整个用例开始执行前触发hook函数,主要用于准备工作
teardown_hooks list 在整个用例开始执行后触发hook函数,主要用于测试后的清理工作


二、test参数说明

关键词 是否必须 数据类型 描述
name string
测试步骤的名称,在测试报告中将作为测试步骤的名称
request dict http请求的详细内容
variables  list of dict  测试步骤中定义的变量,作用域为当前测试步骤
extract  list

从当前 HTTP 请求的响应结果中提取参数,并保存到参数变量中(例如 token),

后续测试用例可通过$token的形式进行引用 

validate 

list of dict 

测试用例中定义的结果校验项,作用域为当前测试用例,用于实现对当前测试用例运行结果的校验

setup_hooks

list

在 HTTP 请求发送前执行 hook 函数,主要用于准备工作 

teardown_hooks

list

在 HTTP 请求发送后执行 hook 函数,主要用于测试后的清理工作 

 

三、extract关键词

可以提取的:

status_code, cookies, elapsed, headers, content, text, json, encoding, ok, reason, url.

支持多种提取方式:
1. 响应结果为 JSON 结构,可采用.运算符的方式,例如headers.Content-Type、 content.success;

2. 响应结果为 text/html 结构,可采用正则表达式的方式,例如<title>(.+?)</title>

HttpRunner基础应用二

HttpRunner基础应用二

四、validate关键词

支持两种格式:

{"comparator_name": [check_item, expect_value]}
{"check": check_item, "comparator": comparator_name, "expect": expect_value} hooks 

HttpRunner基础应用二

五、request关键词

request关键词中包括http请求中的详细内容:

headers:请求头部信息 method: 请求方式 url:请求地址 params:GET请求参数 data:表单形式的参数 json:json格式的参数 

六、设置接口关联

在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果,从而让后一个接口能正常执行,这个过程的实现称为关联。

提取的方式有两种:
1、响应结果为 JSON 结构,可采用.运算符的方式,例如headers.Content-Type、content.success;

2、响应结果为 text/html 结构,可采用正则表达式的方式,例如name="csrf_token" value="(.+?)"/>

引用变量的方式采用$ + 变量名称的方式; 

举例:

HttpRunner基础应用二

七、环境变量

项目中新建.env文件,填写内容:URL=xxxx,测试用例中引用环境变量 ${ENV(URL)}

八、debugtalk.py 应用

 编写debugtalk.py文件,内容如下:

HttpRunner基础应用二

 测试用例文件中调用如下:

HttpRunner基础应用二

九、hook应用

 debugtalk.py文件中编写代码如下:

HttpRunner基础应用二

 测试用例代码如下:

HttpRunner基础应用二

十、参数化

新建testsuite目录,编写文件如下:

HttpRunner基础应用二

 HttpRunner基础应用二

 

运行:hrun . /testsuite/testsuite_demo_01.yml 

HttpRunner基础应用二

上一篇:Kubernetes ---- Service更改工作模式为ipvs


下一篇:巧妙利用selenium中的JS操作来处理特殊的文本框