A04_开始于一个简单的测试用例
A04 _开始于一个简单的测试用例
HttpRunner 的测试用例支持两种文件格式:YAML 和 JSON
下面两张图就是编写的测试用例,完成的是同样的测试内容,完全等价。但明显右边用YAML编写的测试用例更加简洁,而且用 YAML 来编写 HttpRunner 的测试用例,学习成本也是极低的。后续的章节中,我们也是以 YAML 作为用例的编写方式。
两种测试用例格式的比较:
测试用例的基本结构(JSON)
在 HttpRunner 中一个独立的 JSON/YAML 文件即称之为一个测试用例。
一个 HttpRunner 的测试用例其实就是一个 基于 map 的 list,主体结构如下:
[
{ config: .... },
{ test: .... },
{ test: .... }
]
其中:
- config:是测试用例的全局配置区域。在此处可以定义测试用例的名称、设置HTTP请求的URL基本路径、设置全局变量等。
- test:是测试用例中测试步骤的定义区域。一个测试用例中可用同时拥有多个测试步骤。每个步骤中可用单独定义步骤名称、请求的接口地址、请求方法、请求参数等内容。
编写访问百度测试用例
我们准备编写一个访问百度首页的测试用例:
- 新建一个 JSON 格式文件,编码格式为 UTF-8,文件命名:baidu.json
- 整个用例最外层首先是一个数组,理解时可以对应于 Python 中的 list 类型:[ ... ]
- 数组内放置两个对象 config 和 test,理解时可以对应于 Python 中的 dict 类型: { key: value },而且这里的 value 部分仍然是内嵌的一个对象。
[
{
"config": { ... }
},
{
"test": { ... }
}
]
逐步完善测试用例:
- 在config键对应的值(对象)中,增加name键值对,为整个测试用例命名
- 在test键对应的值(对象)中,增加name键值对,为当前测试步骤命名
[
{
"config": {
"name": "测试用例:测试百度"
}
},
{
"test": {
"name": "测试步骤-1:打开百度首页",
}
}
]
继续在测试步骤中增加请求内容:
- 在与 name 键值对并列位置,增加一个新的拥有发起HTTP请求的键值对,键值为 request(此名称为关键字,属于固定用法)
- 在request键对应的值中,继续嵌套一个新的对象,包括两个必选键值对:
- url:关键字,指明请求的URL地址
- method:关键字,指明请求的类型(GET/POST/DELETE/PUT等),注意,选择的请求类型所有字母必选大写,即 GET,不能写成 Get
[
{
"config": {
"name": "测试用例:测试百度"
}
},
{
"test": {
"name": "测试步骤-1:打开百度首页",
"request": {
"url": "https://www.baidu.com",
"method": "GET"
},
}
}
]
最后对请求返回的响应结果进行断言
- 在与 name 和 request 键值对并列位置,增加一个新的键值对,键值为 validate
- 对响应内容可以同时完成多个断言操作,这些断言需要封装在一个数组中,数组中的每项仍旧是由一个对象组成,即:"validate": [{断言1}, {断言2} ....]
- 增加一个最常用的断言,判断响应返回的状态码是否为200
- eq:断言短语,代表是否相等(equals)
- stauts_code:关键字,从响应中获取状态码,作为测试的实际结果
- 200:作为测试的预期结果
[
{
"config": {
"name": "测试用例:测试百度"
}
},
{
"test": {
"name": "测试步骤-1:打开百度首页",
"request": {
"url": "https://www.baidu.com",
"method": "GET"
},
"validate": [
{ "eq" : ["status_code", 200] }
]
}
}
]
用例各行解释如下图所示:
测试用例的验证
用例编写完成后,先不着急执行,验证一下书写的格式是否正确。打开命令行窗口,切换到测试用例文件(baidu.json)所在目录(在Win7系统中,可以在用例文件所在目录中,按下键盘Shift键,同时鼠标右键空白区域,在弹出菜单中选择“在此处打开命令行窗口”)。
在 hrun 命令的使用帮助中,有一个选项 --validate 专门用于验证用例格式是否正确
- 命令: hrun --validate <测试用例文件名>
测试用例的执行
用例格式验证无误后,即可以开始执行测试用例了
- 命令: hurn <测试用例文件名>
查看生成的测试报告
用例执行的结果会自动生成测试报告。测试报告会在用例相同目录下新建一个“reports”的文件夹,每次运行的结果会在该文件夹下自动新生成一个文件,该文件自动以时间命名(按GMT格林尼治时间,转化为北京时间+8小时即可)。
打开对应的测试报告,分“概要说明”和“详细说明”上下两部分,可以直接查看测试成功或失败的统计结果,也可以点击绿色“log”按钮,查看更详细的测试日志,即详细的请求内容,详细的响应内容、断言验证情况等。
查看每个测试步骤的详细日志:
补充:
JSON ( JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。在编写测试用例的时候,主要用到了“对象”和“数组”两种类型:
- 对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。
- 数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["x", "y", "z", ...] 的索引结构。
上一篇: Android MVP模式基类结构
下一篇: 判断一个数是否为素数
推荐阅读