HttpRunner V2.x中文使用文档:https://cn.httprunner.org/
HttpRunner 安装
HttpRunner 的稳定版本托管在 PyPI 上,可以使用 pip 进行安装。
pip install httprunner
如果你需要使用最新的开发版本,那么可以采用项目的 GitHub 仓库地址进行安装:
pip install git+https://github.com/HttpRunner/HttpRunner.git@master
假如你之前已经安装过了 HttpRunner,现在需要升级到最新版本,那么你可以使用-U参数。该参数对以上三种安装方式均生效。
pip install -U HttpRunner
pip install -U git+https://github.com/HttpRunner/HttpRunner.git@master
简单的进行一下安装验证,关于开发者模式的下载安装,参考HttpRunner V2使用文档
用例分层
新建项目时,可使用 --startproject 脚手架功能快速创建项目目录结构;模式是采用:测试用例分层机制
hrun --startproject demo
测试用例分层结构
对于接口数比较多,或者测试场景比较复杂的项目,为了使测试用例更便于组织和维护,推荐使用测试用例分层机制,即单独维护 API 描述、测试用例和测试场景。
在此种情况下,项目文件的目录结构需要遵循一些规范:
- debugtalk.py:该文件所在目录将作为项目工程的根目录,api 文件夹都必须与其放置在相同目录
- api 文件夹:存储接口定义描述
- reports 文件夹:存储 HTML 测试报告
- testcases 文件夹(非必须):存储测试用例,文件夹也可以使用其它名称
- testsuite 文件夹(非必须):测试测试场景,文件夹也可以使用其它名称
对应的项目文件目录结构示例如下:
demo
├── .env
├── api
│ └── user.yml
├── debugtalk.py
├── reports
│ └── 1535713039.html
├── testcases
│ ├── login.yml
│ └── logout.yml
└── testsuites
└── login_and_logout.yml
用例组织
- 测试用例集(testsuite):对应一个文件夹,包含单个或多个测试用例(YAML/JSON)文件
- 测试用例(testcase):对应一个 YAML/JSON 文件,包含单个或多个测试步骤
- 测试步骤(teststep):对应 YAML/JSON 文件中的一个test,描述单次接口测试的全部内容,包括发起接口请求、解析响应结果、校验结果等
对于单个 YAML/JSON 文件来说,数据存储结构为 list of dict 的形式,其中可能包含一个全局配置项(config)和若干个测试步骤(test)
- config:作为整个测试用例的全局配置项
- test:对应单个测试步骤(teststep),测试用例存在顺序关系,运行时将从前往后依次运行各个测试步骤
对应json格式:
[
{
"config": {...}
},
{
"test": {...}
},
{
"test": {...}
}
]
在测试用例内部,HttpRunner 划分了两层变量空间作用域(context)。
- config:作为整个测试用例的全局配置项,作用域为整个测试用例;
- test:测试步骤的变量空间(context)会继承或覆盖 config 中定义的内容;
- 若某变量在 config 中定义了,在某 test 中没有定义,则该 test 会继承该变量
- 若某变量在 config 和某 test 中都定义了,则该 test 中使用自己定义的变量值
- 各个测试步骤(test)的变量空间相互独立,互不影响;
- 如需在多个测试步骤(test)中传递参数值,则需要使用 extract 关键字,并且只能从前往后传递
config和test中的参数,参考HttpRunner 使用文档 测试用例组织一节