01:httpRunner使用教程
1.安装httprunner库
pip install httprunner==2.5.7 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
2.检查是否安装成功
hrun -V
3.使用命令行创建一个项目
hrun --startproject "项目的名称"
4.再使用pycharme 打开该项目
二、httprunner 库结合“录制”使用
1.首先安装 har2case库
pip install har2case
2.charles抓包、或者fiddler抓包,如下charles抓到的
3.生成yml文件或者json文件
har2case -2y demo.har (比较推荐)
har2case demo.har (生成json不太推荐)
4.把生成好的yml文件,拖放到 testcases目录里面
5.使用pycharm打开,新建安装env库后
6.执行测试用例,使用Terminal比较方便
F:\httppro\testcases> hrun testcases/login2.yml
7.使用浏览器,阅读报告
-
api文件 编写如下
name: 登录测试接口 #当前文件代表接口名称
variables: #表示接口参数的默认值
userName: admin
password: 1234
request:
url: /pinter/bank/api/login2 #url信息
method: POST #这必须大写
# headers: #没有就不写
data: #表单参数的形式
userName: $userName #接收上面的参数
password: $password
validate:
- eq: ["status_code",200]
-
testcase文件 编写如下
config:
name: "登录测试集合"
base_url: "http://82.156.74.26:9088"#这是一个公共配置,就是域名
teststeps:
- #yml里表示多个的意思
name: 正确的登录
api: api/loginApi.yml
variables:
userName: admin
password: 1234
validate:
- eq: ["status_code",200] #判断code请求状态码200
- eq: [content.code,"0"] #content表示响应的整个内容,.code表示获取响应里的code字段,判断他是不是0
- eq: [content.message,"success"]
-
name: 错误的密码登录
api: api/loginApi.yml
variables:
userName: admin
password: 12349999 #
validate:
- eq: ["status_code",200] #判断code请求状态码200
- eq: [content.code,"1"] #content表示响应的整个内容,.code表示获取响应里的code字段,判断他是不是0
-
name: 错误的账号登录
api: api/loginApi.yml
variables:
userName: admin9999
password: 1234 #
validate:
- eq: ["status_code",200] #判断code请求状态码200
- eq: [content.code,"1"] #content表示响应的整个内容,.code表示获取响应里的code字段,判断他是不是0
3.执行脚本的命令如下
PS F:\httppro> hrun .\testcases\loginApi_testcase.ymlA
1.新增data文件夹,新建参数化文件csv
2.整理测试用例文件,做成参数化的形式
3.testsuites 测试套件,把参数依次写出来用横线划分,再引用文件路径
4.由于报告读参数有问题需要修改,C:\Users\huzhenyu\AppData\Local\Programs\Python\Python36\Lib\site-packages\httprunner\report\html\template.html 文件的第二个 "expect 改成 expect_value"
-
在Terminal命令窗口执行如下命令
hrun .\testsuites\login1_testsuite.yml
ps :6.如果不做文件参数化,可写在yml文件中,这样可以直接使用
config:
name: "测试用例集合"
base_url: "http://82.156.74.26:9088"
testcases:
- #文件参数化的形式
name: 登录接口
testcase: testcases/loginApi_testcase1.yml
parameters: #表示我们要用参数化的形式来执行,下边就是各参数
# cassName-userName-password-asservalue1-asservalue2: ${P(data/login_parameter.csv)}
cassName-userName-password-asservalue1-asservalue2:
- [正确的登录,admin,1234,"0",success]
- [错误的用户名,abcd,1234,"0",success]
- [错误的密码,admin,7777888,"0",success]
""" 这表示数据参数化,上面是文件参数化"""