httprunner学习02-测试用例与测试合集
前言:
上一节我们已经创建了httprunner自动化工程,写出了测试API,后面就需要设计测试用例,来调用API实现功能。设计测试合集来批量执行测试用例。
在 HttpRunner 中,测试用例组织主要基于三个概念:
测试用例集(testsuite):对应一个文件夹,包含单个或多个测试用例(YAML/JSON)文件。
测试用例(testcase):对应一个 YAML/JSON 文件,包含单个或多个测试步骤。
测试步骤(teststep):对应 YAML/JSON 文件中的一个 test,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、校验结果等。
具体一点:
config:作为整个测试用例的全局配置项。
test:对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤。
1、创建测试用例
在config 模块设置全局配置,一般为用例名称设置、基础url设置和全局参数设置。
2、用例中的API调用和参数传递
在测试用例内部,HttpRunner 划分了两层变量空间作用域(context)。
config:作为整个测试用例的全局配置项,作用域为整个测试用例;
test:测试步骤的变量空间(context)会继承或覆盖 config 中定义的内容;
若某变量在 config 中定义了,在某 test 中没有定义,则该 test 会继承该变量
若某变量在 config 和某 test 中都定义了,则该 test 中使用自己定义的变量值
各个测试步骤(test)的变量空间相互独立,互不影响;
如需在多个测试步骤(test)中传递参数值,则需要使用 extract 关键字,并且只能从前往后传递。
extract:
支持多种提取方式:
响应结果为 JSON 结构,可采用.运算符的方式,例如headers.Content-Type、content.success;
响应结果为 text/html 结构,可采用正则表达式的方式,例如blog-motto">(.*)
API调用成功后,在validata中可以对response信息做断言校验。
validate:
支持两种格式:
{“comparator_name”: [check_item, expect_value]}
{“check”: check_item, “comparator”: comparator_name, “expect”: expect_value}
在yaml格式文件中,从response提取返回值也非常简便。可像extract提取参数那样,对返回值进行断言对比。
测试用例中可以引用其他测试用例,注意api换成testcase就可以。
示例如下:
config:
name: 新建用户
base_url: ${
ENV(BASE_URL)}