接口测试最重要的就是返回数据的检查,一个简单的接口,我们可以肉眼检查返回数据,但接口一旦多起来且复杂,每次的检查都会很费劲,此时我们就需要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. JMeter 线程组之ConcurrencyThreadGroup介绍

    线程组之ConcurrencyThreadGroup by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 jmeter-plugins-manager-1.3.jar ...

  2. Python-Django Win7上使用Apache24和mod_wsgi部署Django1.11应用程序

    Win7上使用Apache24和mod_wsgi部署Django1.11应用程序 by:授客 QQ:1033553122 测试环境 win7 64 Django-1.11.4.tar.gz 下载地址: ...

  3. 【爬虫】在Xpath中使用正则

    ns = {"re": "http://exslt.org/regular-expressions"} print(html.xpath("//*[r ...

  4. LeetCode题解之Lemonade Change

    1.题目描述 2.问题分析 使用贪心算法. 3.代码 class Solution { public: bool lemonadeChange(vector<int>& bills ...

  5. C#判断文件编码——常用字法

    使用中文写文章,当篇幅超过一定程度,必然会使用到诸如:“的”.“你”.“我”这样的常用字.本类思想便是提取中文最常用的一百个字,使用中文世界常用编码(主要有GBK.GB2312.GB18030.UTF ...

  6. 在微信小程序中使用LeanCloud(一)

    之前学习了微信小程序前端,使用到LeanCloud线上数据库 [传送门].作为一个前端开发人员,了解后端及数据库是学习工作的需要. LeanCloud直接登录,未注册直接创建账户.它是一款免费的线上数 ...

  7. 洗礼灵魂,修炼python(66)--爬虫篇—BeauitifulSoup进阶之“我让你忘记那个负心汉,有我就够了”

    说明一下,这个标题可能有点突兀,结合上一篇一起看就行 前面已经对BeautifulSoup有了了解了,相信你基本已经学会怎么获取网页数据了,那么BeautifulSoup这么吊,还有没有其他的功能呢? ...

  8. c/c++ 标准库 迭代器(iterator)

    c/c++ 标准库 迭代器 begin和end运算符返回的具体类型由对象是否是常量决定,如果对象是常量,begin和end返回const_iterator:如果对象不是常量,返回iteraotor 1 ...

  9. python shell与反弹shell

    python shell与反弹shell 正常shell需要先在攻击端开机情况下开启程序,然后攻击端运行程序,才能连接 反弹shell,攻击端是服务端,被攻击端是客户端正常shell,攻击端是客户端, ...

  10. Microsoft .NET Framework 3.5 离线安装方法 (仅适用于Win8以上的系统)

    所需工具:本系统对应原版镜像或Win8以上操作系统原版ISO镜像 操作: 1.利用Windows资源管理器挂载 ISO 镜像,或其他虚拟光驱工具挂载镜像,记住挂载的盘符 2.打开Windows命令提示 ...