接口测试最重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要postman 的tests模块来代替

postman面板:

概念:

  Postman的test本质上是JavaScript代码,通过我们编写测试代码,每一个tests返回True,或是False。每一个tests实际上就是一个测试用例。

test验证方式:

1.设置全局变量
  Set an global variable
  对应脚本:
  postman.setGlobalVariable("variable_key", "variable_value");
  参数:全局变量的键值

2.设置环境变量
  Set an environment variable
  对应脚本:
  postman.setEnvironmentVariable("variable_key", "variable_value");
  参数:环境变量的键值

3. 清除一个全局变量
  Clear a global variable
  对应脚本:
  postman.clearGlobalVariable("variable_key");
  参数:需要清除的变量的key

4.清除一个环境变量
  Clear an environment variable
  对应脚本:
  postman.clearEnvironmentVariable("variable_key");
  参数:需要清除的环境变量的key

5.将xml格式的response转换成son格式
  Response body:Convert XML body to a JSON Object
  对应脚本:
  var jsonObject = xml2Json(responseBody);
  参数:(默认不需要设置参数,为接口的response)需要转换的xml

6.检查response的header信息是否有被测字段
  Response headers:Content-Type header check
  对应脚本:
  tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");
  参数:预期header

7.response等于预期内容
  Response body:Is equal to a string
  对应脚本:
  tests["Body is correct"] = responseBody === "response_body_string";
  参数:预期response

8.response数组元素的个数
  tests['检查json中某个[数组]元素的个数'] = responseJSON.headers.host.length === 3;

9.response包含内容
  Response body:Contains string
  对应脚本:
  tests["Body matches string"] =responseBody.has("string_you_want_to_search");
  //tests['response has post data'] = _.has(responseJSON, 'args');
  //tests['response has post data'] = _.has(responseJSON, 'args.test');
  参数:预期内容

10.json解析key的值进行校验
  Response body:JSON value check
  对应脚本:
  tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args
  //tests['test value 123'] = (_.get(responseJSON, 'args.test') === '123');
  参数:test替换被测的值,args替换被测的key

11.成功的post请求
  Status code:Successful POST request
  对应脚本:
  tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

12.判断状态码
  Status code:Code is 200
  对应脚本:
  tests["Status code is 200"] = responseCode.code === 200;
  参数:状态码

13.检查code name 是否包含内容
  Status code:Code name has string
  对应脚本:
  tests["Status code name has string"] = responseCode.name.has("Created");
  参数:预期code name包含字符串

14.响应时间判断
  Response time is less than 400ms
  对应脚本:
  tests["Response time is less than 200ms"] = responseTime < 400;
  参数:响应时间

15.微小验证器
  Use Tiny Validator for JSON data
  对应脚本:
  var schema = {
    "items": {
    "type": "boolean"
      }
  };
  var data1 = [true, false];
  var data2 = [true, 123];
  console.log(tv4.error);
  tests["Valid Data1"] = tv4.validate(data1, schema);
  tests["Valid Data2"] = tv4.validate(data2, schema);
  参数:可以修改items里面的键值对来对应验证json的参数

示例:

var responseJSON;

try {
responseJSON = JSON.parse(responseBody);
tests['response is valid JSON'] = true;
}
catch (e) {
responseJSON = {};
tests['response is valid JSON'] = false;
} //上面没用 // 断言HTTP响应状态码为200
tests["Status code is 200"] = responseCode.code === ; // 断言响应内容中是否包含"code":101
tests["Body matches string"] = responseBody.has('"code":101'); //解析响应内容并判断code的值是:101,msg的值是:登录成功
var jsonData = JSON.parse(responseBody);
tests["response statusCode"] = jsonData.code === ;
tests["response message"] = jsonData.msg === '登录成功'; // 断言响应时间是否小于200ms
tests["Response time is less than 200ms"] = responseTime < ;

Postman的Tests标签测试的更多相关文章

  1. 第三篇 Postman之 Tests(后置处理器,断言)

    第二篇里讲了手动设置全局变量及局部变量的方法,但是这有一个缺点,就是每次测试之前,都需要获取相关变量值,手动再填写更新到对应的全局变量或者局部变量里,这对于想进行自动化执行的人或者懒人就不太友好了,本 ...

  2. 使用 postman 给 API 写测试

    使用 postman 给 API 写测试 Intro 上次我们简单介绍了 使用 postman 测试 API,这次主要来写一些测试用例以检查请求的响应是否符合我们的预期以及如何使用脚本测试 使用 po ...

  3. Postman学习(压力测试)

    Postman下载安装后 下面是在网上随便抓了一个请求地址来做演示,把请求地址填入地址栏,此请求为GET请求.点击Send发送请求,请求结果将会在下方显示出来.每次的请求历史数据,会被记录下来,但是经 ...

  4. 利用 Postman 中 Tests 断言校验返回结果

    前言 Postman目前是一款很火的接口测试工具,它有着非常强大结果判断能力.为什么说强大呢,因为Postman有自带的校验脚本,根本不需要我们去学习JS脚本语言,对于代码能力为0的各位测试小伙伴来说 ...

  5. Spring Security:如何在Postman中优雅地测试后端API(前后端分离)

    前言 在Postman中可以编写和执行自动化测试,使用 JavaScript 编写基本的 API 测试,自由编写任何用于自动化测试的测试方案. 在POSTMAN中读取Cookie值 1. 我们需要向& ...

  6. ue4标签测试与总结(UPROPERTY)

    学习UE4框架中的标签,本篇是总结成员变量标签UPROPERTY. 引擎版本:4.12.5 前期准备: 1.新建项目,C++空模板,新建C++类,继承AActor,名称MyActor. 使用TestA ...

  7. 如何在Chrome下使用Postman进行rest请求测试

    在web和移动端开发时,常常会调用服务器端的restful接口进行数据请求,为了调试,一般会先用工具进行测试,通过测试后才开始在开发中使用.这里介绍一下如何在chrome浏览器利用postman应用进 ...

  8. 2,postman的tests的断言写法

    tests的断言主要是分为三类 状态码,header内容和波body内容的测试,波body的不常用( 不容易控制) pm.expect(pm.response).to.have.status(&quo ...

  9. 如何使用Postman生成不同格式测试的报告

    Postman还可以生成测试报告,还是多种格式报告? Postman团队开源Newman作为Postman运营工具,该开源库使用命令行方式执行Postman 脚本,并且生成多种格式报告,还支持Post ...

随机推荐

  1. 使用SQL查看表字段和字段说明

    MySql: show full columns from tableName; Sql server: SELECT A.name AS table_name, B.name AS column_n ...

  2. 基于Python实现的死链接自动化检测工具

    基于Python实现的死链接自动化检测工具   by:授客 QQ:1033553122 测试环境: win7 python 3.3.2 chardet 2.3.0 脚本作用: 检测系统中访问异常(请求 ...

  3. (后端)swagger

    Swagger 文档提供了一个方法,使我们可以用指定的 JSON 或者 YAML 摘要来描述你的 API,包括了比如 names.order 等 API 信息. 你可以通过一个文本编辑器来编辑 Swa ...

  4. 关于最新笔记本机型预装win8如何更换为win7的解决办法

    关于最新笔记本机型预装win8如何更换为win7的解决办法 目前新出的很多机型出厂自带的都是win8系统,可能有些人用不习惯,想更换为win7系统,但是由于这些机型主板都采用UEFI这种接口(硬盘分区 ...

  5. Linux/Unix 中 wheel 组的来源

    使用过 Linux/Unix 的朋友应该知道,将用户添加都 wheel用户组,让用户可以通过在命令在前加 sudo 临时获取 root 用户的权限.但是有没有朋友会想知道为何这个用户组要交 wheel ...

  6. 使用nginx代理后以及配置https后,如何获取真实的ip地址

    使用nginx代理后以及配置https后,如何获取真实的ip地址 Date:2018-8-27 14:15:51 使用nginx, apache等反向代理后,如果想获取请求的真实ip,要在nginx中 ...

  7. Jenkins 安装 on centos7

    本文演示如何在CentOS7上安装jenkins. 1 准备工作 1.1 选择安装节点 因为在DevOps实践环境搭建规划中,Jenkins的任务需要执行docker swarm的相关命令,简单起见, ...

  8. Linux中对逻辑卷进行扩容与缩小

    一.在扩容之前,先查看自己逻辑卷,卷组,物理卷的信息:(在上一篇的基础上:Linux中对逻辑卷的建立) 查看物理卷: # pvdisplay /dev/sdc1 查看卷组: vgdisplay /de ...

  9. springmvc复习笔记----Restful 风格,PathVariable获取 Url实例

    结构 包与之前相同 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&qu ...

  10. vs添加到附加进程调试(IIS页面调试)

    有时候单元测试不是很方便,通过页面调试接口会更直观,也跟容易发现问题(尤其是在页面传参的时候),这时vs添加到附加进程的调试方式就显得尤为重要了! 步骤如下: 1.首先是通过IIS建立网站,(前提是要 ...