A04_开始于一个简单的测试用例

A04 _开始于一个简单的测试用例

HttpRunner 的测试用例支持两种文件格式:YAMLJSON

下面两张图就是编写的测试用例,完成的是同样的测试内容,完全等价。但明显右边用YAML编写的测试用例更加简洁,而且用 YAML 来编写 HttpRunner 的测试用例,学习成本也是极低的。后续的章节中,我们也是以 YAML 作为用例的编写方式。

两种测试用例格式的比较:

测试用例的基本结构(JSON)

在 HttpRunner 中一个独立的 JSON/YAML 文件即称之为一个测试用例。

一个 HttpRunner 的测试用例其实就是一个 基于 map 的 list,主体结构如下:

[
    { config:  .... },
    { test: .... },
    { test: .... }
]

其中:

  • config:是测试用例的全局配置区域。在此处可以定义测试用例的名称、设置HTTP请求的URL基本路径、设置全局变量等。
  • test:是测试用例中测试步骤的定义区域。一个测试用例中可用同时拥有多个测试步骤。每个步骤中可用单独定义步骤名称、请求的接口地址、请求方法、请求参数等内容。

编写访问百度测试用例

我们准备编写一个访问百度首页的测试用例:

  1. 新建一个 JSON 格式文件,编码格式为 UTF-8,文件命名:baidu.json
  2. 整个用例最外层首先是一个数组,理解时可以对应于 Python 中的 list 类型:[ ... ]
  3. 数组内放置两个对象 config 和 test,理解时可以对应于 Python 中的 dict 类型: { key: value },而且这里的 value 部分仍然是内嵌的一个对象。
[
	{
		"config": { ... }
	},

	{
		"test": { ... }
	}
]

逐步完善测试用例:

  1. 在config键对应的值(对象)中,增加name键值对,为整个测试用例命名
  2. 在test键对应的值(对象)中,增加name键值对,为当前测试步骤命名
[
	{
		"config": {
			"name": "测试用例:测试百度"
		}
	},

	{
		"test": {
			"name": "测试步骤-1:打开百度首页",
		}
	}
]

继续在测试步骤中增加请求内容:

  1. 在与 name 键值对并列位置,增加一个新的拥有发起HTTP请求的键值对,键值为 request(此名称为关键字,属于固定用法)
  2. 在request键对应的值中,继续嵌套一个新的对象,包括两个必选键值对:
  • url:关键字,指明请求的URL地址
  • method:关键字,指明请求的类型(GET/POST/DELETE/PUT等),注意,选择的请求类型所有字母必选大写,即 GET,不能写成 Get
[
	{
		"config": {
			"name": "测试用例:测试百度"
		}
	},


	{
		"test": {
			"name": "测试步骤-1:打开百度首页",

			"request": {
				"url": "https://www.baidu.com",
				"method": "GET"
			},
		}
	}
]

最后对请求返回的响应结果进行断言

  1. 在与 name 和 request 键值对并列位置,增加一个新的键值对,键值为 validate
  2. 对响应内容可以同时完成多个断言操作,这些断言需要封装在一个数组中,数组中的每项仍旧是由一个对象组成,即:"validate": [{断言1}, {断言2} ....]
  3. 增加一个最常用的断言,判断响应返回的状态码是否为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", ...] 的索引结构。

发布了30 篇原创文章 · 获赞 0 · 访问量 247

猜你喜欢

转载自blog.csdn.net/weixin_42007999/article/details/105580536