HttpRunner学习2--用例格式和简单使用

HttpRunner中,测试用例支持两种文件格式:YAML 和 JSON。两种格式的用例是完全等价的,对于相同的信息内容,使用 YAML /JSON 得到的测试结果和报告也是一致的。

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 ,即可查看详细的日志,包括请求、响应以及断言等信息。

原文地址:https://www.cnblogs.com/wintest/p/11761910.html

时间: 2024-10-09 19:12:02

HttpRunner学习2--用例格式和简单使用的相关文章

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用例实践之旅,做项目算是可以比喻为考试,但是考试之前,还是以做练习题模拟考为主.下面实践一下官网的第一个例子:Example1.1 A map with single layer(官网地址:https://www.mapserver.org/tutorial/example1-1.html#examp

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

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.5 Adding a  raster layer 一.前言 MapServer不仅支持矢量数据(point, lines, polygons, and annotations),同时也支持栅格数据.通过GDAL库,MapServer可以输入输出多种类型的栅格数据. 在4.x版本前,MapServer输出栅格数据仅限于单个图层.灰度图像或伪彩色图像. 当前版本支持RGB图像和多光谱图像

RPC学习----Thrift快速入门和Java简单示例

一.什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. 二.什么是Thrift? thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和

GDI+学习笔记(七)保存简单图像

请尊重本人的工作成果,转载请留言,并说明转载地址,谢谢.地址如下: http://blog.csdn.net/fukainankai/article/details/27710883 前几节中,我们利用GDI+在窗口中绘制了各种各样的图形.图像,这一节,我们将会将这些图像保存成简单图像.所谓简单图像,指的是bmp/jpg/png等图像或者单帧的gif图像.保存成多帧的gif图像稍微复杂一点,本节中暂时不做说明.保存成动态的tiff文件也比较简单,但这里也不做说明,下次有机会和gif一起介绍. 另

Symfony2 学习笔记之插件格式

一个bundle类似于其它框架中的插件,但是比插件表现更好.它跟其它框架最主要的不同是在Symfony2中所有东西都是bundle,包括核心框架功能和你写的所有应用程序代码.Symfony2中,bundle可是一等公民.这给了你使用其它第三方开发的内容包或者分发你自己的bundle更多灵活性.你可以方便的选择哪些内容可以应用到你的程序中那些不用,来根据你的想法优化它们. 一个bundle就是一个目录,它具有很好的结构性,它能存放从类到controller和web资源等任何东西. 一个bundle

Java研究之学习设计模式-多例模式详解

 介绍: 所谓的多例模式,实际上就是单例模式(回顾看这里)的自然推广,作为对象的创建模式,多例模式有以下特点: 1可以有多个实例 2多例类必须自己创建,管理自己的实例,并向外界提供自己的实例. 从上面的特点中,可以体会多例模式与单例模式的不同.单例模式只允许一个实例的存在. 单例类图: 多例类图: 类图更直观的表示了多例类,该多例类会提供多个实例,实例的数量我们是可以自己控制的,如果数量不多的话,实例就可以当做是类的内部实例变量:如果实例很多,那么可以用数组,或者可变长度的数组来进行存储.下

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.2 Static Map with Two Layers

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.2 Static Map with Two Layers 一.前言 上一篇博客<MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.1 A map with single layer>中介绍了单图层的地图加载显示.下面根据官网的例子介绍两个图层的加载显示.官网地址:https://www.mapserver.org/tu

MapServer Tutorial——MapServer7.2.1教程学习——第一节用例实践:Example1.3 Displaying Classes in a Layer

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example1.3 Displaying Classes in a Layer 一.前言 关于第一节的案例,分别介绍了一个基本的地图站点应用程序创建和多图层地图站点 应用程序创建.这个案例 主要来介绍一下mapfile文件中 LAYER 对象里面,CLASS对象的应用. 同时还有如何根据CLASSITEM.EXPRESSION等配置去修改地图的显示方式. 最后还有一个很酷炫的方法一次性读取shp文件

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

MapServer Tutorial--MapServer7.2.1教程学习--第一节用例实践:Example 1.4 Labeling the Map 一.前言 MapServer拥有非常灵活的标签标记系统.它支持bitmap以及truetype字体等.使用truetype字体同时还支持其缩放.标签的角度和位置是可以自定义的. 通过把标签的位置和角度以及其他参数的设置使用,你可以把你的地图装饰得更加美观,信息体现的更加丰富. 二.搭建Example1.4站点 所有的学习都要通过实践,还是从搭建