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 ,即可查看详细的日志,包括请求、响应以及断言等信息。
HttpRunner学习2--用例格式和简单使用的更多相关文章
- httprunner学习15-运行用例命令行参数详解
		前言 HttpRunner 在命令行中启动测试时,通过指定参数,可实现丰富的测试特性控制. 命令行参数CLI 使用 -h 查看相关命令行参数 hrun -h 参数名称 参数值 参数说明 -h, --h ... 
- HttpRunner学习8--使用debugtalk.py辅助函数
		前言 在HttpRunner中,我们的测试用例都是写在 YAML/JSON 文件中,有时候我们想借助代码来实现某些较复杂的功能,但在 YAML/JSON 中是无法直接写代码来处理的,这个时候,我们可以 ... 
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a  raster layer
		MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer 一.前言 MapServer不仅支持 ... 
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.1 A map with single layer
		MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.1 A map with single layer 一.前言 开始MapServer用 ... 
- 视音频编解码学习工程:AAC格式分析器
		=====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ... 
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.7 Adding a wms layer
		MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.7 Adding a wms layer 前言 Add OGC WMS Layers( ... 
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents
		MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents 一.前言 当在m ... 
- 前端学习日记之HTML、CSS 简单总结
		前端学习日记之HTML.CSS 简单总结 标签(空格分隔): html css 前端学习日记 html超文本标记语言 一. h标题标签 h1-h7 <!DOCTYPE html> < ... 
- MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map
		MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签 ... 
随机推荐
- 在可插拔settings的基础上加入类似中间件的设计
			在可插拔settings的基础上加入类似中间件的设计 settings可插拔设计可以看之前的文章 https://www.cnblogs.com/zx125/p/11735505.html 设计思路 ... 
- 高并发编程-CountDownLatch深入解析
			要点解说 CountDownLatch允许一个或者多个线程一直等待,直到一组其它操作执行完成.在使用CountDownLatch时,需要指定一个整数值,此值是线程将要等待的操作数.当某个线程为了要执行 ... 
- __getattribute__(self, obj) 这个方法中的obj这个参数
			class Itcast(object): def __init__(self, subject1): self.subject1 = subject1 print("^^^^^^^---- ... 
- 修改PHP上传文件大小限制
			1. 在php.ini中,做如下修改: file_uploads = on upload_tmp_dir = /home/upload upload_max_filesize = 4000M post ... 
- uni-app中使用scroll-view滚到底部时多次触发scrolltolower事件
			一.前言.scroll-view基本属性: 前言: 前段时间使用scroll-view可滚动视图区域容器来做多个不同内容的展示(在我这个页面中同时使用了三个scroll-view做数据展示),因为这几 ... 
- golang数据结构之总结
			golang语言的一些数据结构实现,包括: 队列(单队列.循环队列) 链表(单链表.双链表.循环链表(解决约瑟夫环问题)) 栈(实现加减乘除计算) 递归之迷宫问题 哈希表(员工管理系统) 树(三种遍历 ... 
- mini_magick上传图片
			rails上传图片需要用到的gem: gem 'carrierwave'gem 'mini_magick' 在项目Gemfil中添加上面的两个gem,然后bundle install 然后创建modl ... 
- Java_输入整数求阶乘
			import java.util.Scanner;public class Work4{ public static void main(String[] args){ // 创建Scanner对象 ... 
- 【Java Web开发学习】Spring构造器和属性注入
			测试类 public class Construct { private String address; private long phone; public Construct(String nam ... 
- python学习-class对象
			# 面向对象 python,java,c## 面向过程 C # 类和对象# 类 类型类别.类别 物以类聚 一类事物# 班级.人类.动物类.车.学生类.老师类.手机.电脑# 统称 == 共同特性# 不具 ... 
