HttpRunner学习2--用例格式和简单使用
前言
HttpRunner中,测试用例支持两种文件格式:YAML 和 JSON。两种格式的用例是完全等价的,对于相同的信息内容,使用 YAML /JSON 得到的测试结果和报告也是一致的。
本人环境:HttpRunner V1.5.8
YAML格式的用例
以某快递接口为例,这里以 YAML 格式进行说明(test_kuaidi.yml):
- config:
name: kuaidi100 api test
request:
base_url: http://www.kuaidi100.com
- test:
name: query test
request:
url: /query
method: GET
params:
type: zhongtong
postid: xxx
validate:
- eq: [status_code, 200]
- eq: [content.com, "zhongtong"]
- eq: [content.nu, "xxx"]
- eq: [content.message, "ok"]
说明:
config模块,指该测试用例集的全局配置
name:该测试用例集的名称,必填项
request:请求全局变量,非必填,可配置公共的参数,如 base_url、headers等test模块,指单个测试用例,可在一个YAML脚本中配置多个test
name:这个 test 的名称,必填项
request:这个 test 的请求体,必填项,包括 url、method 等参数,与 requests 库的请求参数一致,如果 config 模块定义有base_url,那么这里将用 base_url 拼接 url 后的路径
validate:用于断言,验证请求结果与预期是否一致,非必填,eq 表示 equals 的简写,content 表示响应数据,如 content.nu 表示返回的订单号注:以上只使用了部分参数,更多的参数介绍,大家可以前往 HttpRunner中文使用文档 进行学习
JSON格式的用例
有人可能更倾向于使用JSON格式,那么上面的 test_kuaidi.yml ,其对应的JSON格式用例如下(test_kuaidi.json):
[{
"config": {
"name": "kuaidi100 api test",
"request": {
"base_url": "http://www.kuaidi100.com"
}
}
},
{
"test": {
"name": "query test",
"request": {
"url": "/query",
"method": "GET",
"params": {
"type": "zhongtong",
"postid": "xxx"
}
},
"validate": [{
"eq": ["status_code", 200]
},
{
"eq": ["content.com", "zhongtong"]
},
{
"eq": ["content.nu", "xxx"]
},
{
"eq": ["content.message", "ok"]
}
]
}
}
]
运行用例
用例编写之后,打开 cmd 窗口,进入到 YAML /JSON 文件所在目录,通过 hrun 命令运行用例。
执行 YAML 格式的用例:hrun test_kuaidi.yml
执行 JSON 格式的用例:hrun test_kuaidi.json
也可以将多个用例放在同一个文件夹下,使用以下命令来运行多个用例:hrun 文件夹名称
查看测试报告
用例运行结束,会在当前目录下自动生成 一个 reports 文件夹,测试报告则在 reports 文件夹里面,在浏览器中打开测试报告。
点击图中的 log ,即可查看详细的日志,包括请求、响应以及断言等信息。
最新文章
- python sokct 包详解
- 45 个非常有用的 Oracle 查询语句
- stack栈
- homestead注意事项
- Linux C学习笔记06--Tlist使用(编程工具篇)
- animation of android (4)
- C#中的Decimal类型
- 远程连接Ucenter数据库
- java验证码(采用struts2实现)转
- ExtJs中动态加载机制研究(转)
- webpack2使用ch2-entry和output简要说明
- NHibernate的基本使用
- 查看oracle数据库的连接数以及用户 (转:http://blog.itpub.net/24558279/viewspace-752293/)
- 数据库索引的数据结构b+树
- pymysql -转自https://www.cnblogs.com/chenhaiming/p/9883349.html#undefined
- 网易云课堂《JS原创视频教程-知识点类》
- 剑指offer(52)正则表达式的匹配
- maven依赖有一个步长原则 如果a 对 b和c都有依赖 如果b的步长近则使用b的
- itcast-spring-三大框架整合
- gtk_init()
热门文章
- 一句话总结flux,以及我们为何需要flux
- 通过Javascript 创建POST提交, 无页面刷新下载
- 带着canvas去流浪系列之一:绘制柱状图
- 编译原理 算法3.8 LR分析 c++11实现
- Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: REFERENCES command denied to user 'nali'@'localhost' for table 'dbs'
- MySQL必知必会(Create, Alter)
- Apple 应用内支付心得
- React Native--Animated:`useNativeDriver`is not supported because the native animated module is missing
- 14个Java并发容器,你用过几个?
- Spring与Shiro整合 加载权限表达式