在上边的一一章中我们讲了怎么用脚手架生成框架,接下来将我们怎去些case
一、charles 获取har文件
1)charles 抓包获取对应的接口(怎么设置charles可以百度)
2)导出 har文件
3)导出之后,我们拿到如下文件
4)将文件放到 我们项目中的har文件夹下
经历上述这操作之后,我们已经获取到一个接口的请求信息,那么我们接下来需要将har文件转换成我们的用例
二、转化用例(hrp convert)
hrp convert 命令解释
hrp convert -h
convert multiple source format to HttpRunner JSON/YAML/gotest/pytest cases
Usage:
hrp convert $path... [flags]
-h, --help help for convert
-d, --output-dir string specify output directory
-p, --profile string specify profile path to override headers and cookies
--to-json convert to JSON case scripts (default true)
--to-pytest convert to pytest scripts
--to-yaml convert to YAML case scripts
Global Flags:
--log-json set log to json format (default colorized console)
-l, --log-level string set log level (default "INFO")
参考官方文档:https://httprunner.com/docs/user-guide/gen-tests/convert/
1、将hra 转化成json/yml/pytest用例(任选其一)
默认会将输入的 demo.har 转换为 JSON 测试用例 demo_test.json
hrp convert --from-har tianqi.har
# 将输入的 demo.har 转换为 pytest 测试用例 demo_test.py
hrp convert --from-har tianqi.har --to-pytest
# 输出到对应文件夹
hrp convert --from-har har/tianqi.har --output-dir testcases
hrp convert --from-har har/tianqi.har --to-pytest --output-dir testcases
hrp convert --from-har har/tianqi.har --to-yaml --output-dir testcases
2、生成完成你会得到这样的一个目录
3、你可以通过配置 替换接口中的 Headers 和 Cookies 信息
--profile 后接 profile 配置文件的路径,该文件的后缀可以为 .json/.yaml/.yml,其作用是在转换过程中对测试用例的各个步骤进行全局修改,目前支持修改输入中的 Headers 和 Cookies 信息,并且支持替换(不存在则会创建)以及覆盖两种修改模式,下面给出这两种修改模式的 profile 配置文件示例:
profile.yaml:根据 profile 替换指定的 Headers 和 Cookies 信息
headers:
Header1: "this header will be created or updated"
cookies:
Cookie1: "this cookie will be created or updated"
profile_override.yaml:根据 profile 覆盖原有的 Headers 和 Cookies 信息
override: true
headers:
Header1: "all original headers will be overridden"
cookies:
Cookie1: "all original cookies will be overridden"
创建了以上的两个 profile 配置文件后,我们可以使用 --profile 选项指定配置文件来进行全局修改,例如:
# 将输入的 demo.har 转化为 json 测试用例 demo_test.json,并进行全局替换Header和cookies
$ hrp convert demo.har --profile profile.yaml
# 将输入的 demo.har 转化为 pytest 测试用例 demo_test.py,并进行全局覆盖
$ hrp convert demo.har --to-pytest --profile profile_override.yaml
文件放置的位置,建议新增配置目录如config
4、综上我们已经完成了一个接口的用例编写(基本接口)接下来就是运行用例
# pytest
hrp pytest testcases/tianqi_test_test.py --html=results/index.html --junit-xml=results/report.xml
会得到这样一个报告