接口测试最重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要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. LVS + HAProxy实现跨网负载均衡

  2. MMU学习总结

    待完善 一.MMU主要完成哪些事务? 二.PowerPC上的BAT.LAW是做什么用的? 三.

  3. 你不可不知的Java引用类型之——ReferenceQueue源码详解

    定义 ReferenceQueue是引用队列,用于存放待回收的引用对象. 说明 对于软引用.弱引用和虚引用,如果我们希望当一个对象被垃圾回收器回收时能得到通知,进行额外的处理,这时候就需要使用到引用队 ...

  4. sh命令

    sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的.当然,linux中sh是链接到bash ...

  5. JHipster生成单体架构的应用示例

    本文演示如何用JHipster生成一个单体架构风格的应用. 环境需求:安装好JHipster开发环境的CentOS 7.4(参考这里) 应用名:app1 实体名:role 主机IP:192.168.2 ...

  6. mysql服务自启【Linux】

    1.复制启动脚本到资源目录 2.增加mysqld服务控制脚本执行权限 3.mysql服务添加到系统服务 4.检测mysqld服务是否生效 表明服务已经启动,以后可以使用service命令启动mysql ...

  7. RMAN-06172 Troubleshooting

      今天在RMAN还原测试过程中,遇到了"RMAN-06172: no autobackup found or specified handle is not a valid copy or ...

  8. MyBatis笔记----报错:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法

    报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound st ...

  9. linux下objdump应用

    <a href="http://www.maomao365.com/?p=952" > linux命令objdump的用法  http://www.maomao365. ...

  10. KMP算法详解-彻底清楚了(转载+部分原创)

    引言 KMP算法指的是字符串模式匹配算法,问题是:在主串T中找到第一次出现完整子串P时的起始位置.该算法是三位大牛:D.E.Knuth.J.H.Morris和V.R.Pratt同时发现的,以其名字首字 ...