前言

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--用例格式和简单使用的更多相关文章

  1. httprunner学习15-运行用例命令行参数详解

    前言 HttpRunner 在命令行中启动测试时,通过指定参数,可实现丰富的测试特性控制. 命令行参数CLI 使用 -h 查看相关命令行参数 hrun -h 参数名称 参数值 参数说明 -h, --h ...

  2. HttpRunner学习8--使用debugtalk.py辅助函数

    前言 在HttpRunner中,我们的测试用例都是写在 YAML/JSON 文件中,有时候我们想借助代码来实现某些较复杂的功能,但在 YAML/JSON 中是无法直接写代码来处理的,这个时候,我们可以 ...

  3. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a raster layer

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.5 Adding a  raster layer 一.前言 MapServer不仅支持 ...

  4. 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用 ...

  5. 视音频编解码学习工程:AAC格式分析器

    =====================================================视音频编解码学习工程系列文章列表: 视音频编解码学习工程:H.264分析器 视音频编解码学习工 ...

  6. 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( ...

  7. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.6 Defining Projections and Extents 一.前言 当在m ...

  8. 前端学习日记之HTML、CSS 简单总结

    前端学习日记之HTML.CSS 简单总结 标签(空格分隔): html css 前端学习日记 html超文本标记语言 一. h标题标签 h1-h7 <!DOCTYPE html> < ...

  9. MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map

    MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签 ...

随机推荐

  1. Spring Boot使用事务不起作用

    今天使用spring boot做关于事务的demo时发现在service层使用@Transactional注解运行之后遇到错误并不能回滚. @Service public class HelloCon ...

  2. vue中computed(计算属性)和watch在实现父子组件props同步时的实际区分

    vue中computed和watch的对比是一个很有意思的话题. 看过官网教程以后,我们往往更倾向多使用computed.computed优点很多,却在某些时候不太适用. 今天我们就稍微讨论一下,当我 ...

  3. 这是一个测试 hello world

    第一次写博客,冒着生命危险尝试一下,发说说 搞了半天,发现原创文章在随笔发,我以为在文章目录发,白白在文章那里建了分类,太难了吧我

  4. 三菱PLC和卓岚串口服务器使用心得

    下面介绍使用FX3u-16M以及卓岚产品ZLAN5103,实现GX Works通过虚拟串口监控PLC 一.PLC通讯口 圆头8孔RS422接口,线序如下: 1.FX3u不同子型号的PLC,引脚定义可能 ...

  5. luogu P1316 丢瓶盖 |二分答案

    题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入格式 ...

  6. UICollectionView 相关方法

    最近闲来无事,整理一下UICollectionView的相关方法以备使用 UICollectionViewFlowLayout和UICollectionViewLayout UICollectionV ...

  7. React、React Native面试题

    1.React Native相对于原生的ios和Android有哪些优势. react native一套代码可以开发出跨平台app, 减少了人力.节省了时间.避免了 iOS 与 Android 版本发 ...

  8. 数据挖掘算法(三)--logistic回归

    数据挖掘算法学习笔记汇总 数据挖掘算法(一)–K近邻算法 (KNN) 数据挖掘算法(二)–决策树 数据挖掘算法(三)–logistic回归 在介绍logistic回归之前先复习几个基础知识点,有助于后 ...

  9. 简单了解一下K8S,并搭建自己的集群

    距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来.这篇博客的本意是带大家从零开始搭建K8S集群的.但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗 ...

  10. RT-Thread的位图调度算法分析(最新版)

    RT-Thread的内核调度算法 rt-thread的调度算法为基于优先级调度和基于时间片轮转调度共存的策略.rt-thread内核中存在多个线程优先级,并且支持多个线程具有同样的线程优先级.线程级别 ...