一、概念

Postman的Tests本质上是JavaScript代码,通过我们编写测试代码,每一个Tests返回True,或是False,以判断接口返回的正确性。

其实,每一个Tests实际上就是一个检查点。

二、使用场景

  1. 需要检查请求结果或http状态码的正确性。
  2. case较多。
  3. case需要重复执行,比如每次版本迭代时的例行回归。
  4. 对结果的检查比较复杂,比如要求结果要返回10条内容,难道你每次都要数一下嘛?

如果你在做接口测试时出现以上任一场景,势必会耗费很多重复且无脑的人力成本。这个时候,我们就需要一些自动化校验来代替我们无效的人力成本,从而大大提高测试效率及准确率

三、设置方法

  1.  从右侧的【SNIPPETS】列表中选择示例进行设置

【点击】列表中你想要添加的检查点,比如其中一个【Status code:Code is 200】

会自动在【Tests】编辑框内添加【Status Code is 200】的检查点。

其他检查点的设置同上。

但,示例毕竟是是示例,只是列举了一些比较常用的检查点,但我们实际的检查点会很复杂,比如检查response中的某个字段的值,在比如统计某个列表中的内容长度。

这个时候,我们就需要自己去编写node脚本来实现检查点。

2.  自行在【Tests】的编辑框内编写

检查response中某个字段的值

var jsonData = pm.response.json();
//校验服务器返回的response中的code字段等于0
pm.test("code = 0", function () {
pm.expect(jsonData.code).to.eql(0);
});

统计某个列表中的内容长度

//获取结果response中的【data】字段下的【list】列表的长度
var length = jsonData.data.list.length //判断长度是否等于8
pm.test("list.length=8",function(){
pm.expect(length).to.eql(8);
}); //判断长度是否大于0
if(length>0){
//if中判断为真,则判定输入banners.length大于0
var a = 1;
pm.test("list.length大于0",function(){
if(a==1);
});
}else{
//if中判断为假,则判定输入banners.length不大于0
pm.test("list.length不大于0",function(){
pm.expect(length).to.eql(1);
});
}

在这里只举了3个例子,大家可根据自己的测试需求编写node脚本添加响应的检查点接即可。

执行:

如图所示,4个检查点均通过

四、示例检查点详解

1)Setting an environment variable  (设置一个环境变量)

2)Setting a nested object as an environment variable (将嵌套对象设置为环境变量)

3)Getting an environment variable (获取环境变量)

4)Getting an environment variable (whose value is a stringified object)  获取一个环境变量(其值是一个字符串化的对象)

5)Clear an environment variable (清除一个环境变量)

6)Set a global variable (设置一个全局变量)

7)Get a global variable (获取一个全局变量)

8)Clear a global variable (清除全局变量)

9)Get a variable (获取一个变量)

10)Check if response body contains a string (检查响应主体是否包含字符串)

11)Check if response body is equal to a string (检查响应主体是否等于一个字符串)

12)Check for a JSON value (检查JSON值

13)Content-Type is present (内容类型存在

14)Response time is less than 200ms (响应时间小于200ms

15)Status code is 200 (状态码是200

16)Code name contains a string (代码名称包含一个字符串

17)Successful POST request status code (成功的POST请求状态码

18)Use TinyValidator for JSON data (对于JSON数据使用TinyValidator

19)Decode base64 encoded data (解码base64编码的数据

20)Send an asynchronous request (发送异步请求

21)Convert XML body to a JSON object (将XML正文转换为JSON对象

初入职场热爱分享的打工人一枚,请大家多多指教~~

postman接口自动化测试之添加Tests检查点的更多相关文章

  1. postman接口自动化测试之如何使用)

    postman 是一款强大网页调试工具的客户端,postman为用户提供强大的 Web API & HTTP 请求调试功能.postman能够发送任何类型的HTTP 请求 (GET, HEAD ...

  2. Postman接口自动化--Postman Script脚本功能使用详解

    Postman Script 功能,支持原生的JS,所以可以使用JS解决很多接口自动化的一些问题,例如接口依赖.接口参数专递和接口断言等: 这里主要是针对Pre-Request Script 和 Te ...

  3. postman接口自动化,环境变量的用法详解(附postman常用的方法)

    在实现接口自动测试的时候,会经常遇到接口参数依赖的问题,例如调取登录接口的时候,需要先获取登录的key值,而每次请求返回的key值又是不一样的,那么这种情况下,要实现接口的自动化,就要用到postma ...

  4. 【转载自JHBlogs的博客】postman接口自动化,环境变量的用法详解(附postman常用的方法)

    在实现接口自动测试的时候,会经常遇到接口参数依赖的问题,例如调取登录接口的时候,需要先获取登录的key值,而每次请求返回的key值又是不一样的,那么这种情况下,要实现接口的自动化,就要用到postma ...

  5. 接口自动化测试之httprunner初探

    ❝ 今天来介绍一个python的一个开源项目:httprunner,接口自动化工具.第一次输入,难免有不周到的地方,轻喷~ ❞ 介绍: HttpRunner是一个简单优雅但功能强大的 HTTP(S) ...

  6. python接口自动化测试之requests库详解

    前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urll ...

  7. python WEB接口自动化测试之requests库详解

    由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...

  8. Java接口自动化测试之TestNG测试报告ExtentReports的应用(三)

    pom.xml导入包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  9. java 接口自动化测试之数据请求的简单封装

    我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进 ...

随机推荐

  1. Python+OpenCV+图片旋转并用原底色填充新四角

    import cv2 from math import fabs, sin, cos, radians import numpy as np from scipy.stats import mode ...

  2. 系统扩展与 macOS 不兼容

    系统扩展与 macOS 不兼容 某些系统扩展与当前版本的 macOS 不兼容或将与后续 macOS 版本不兼容 https://support.apple.com/zh-cn/HT210999 ref ...

  3. PWA All In One

    PWA All In One chrome://apps/ PWA Progressive Web App 可安装,添加到主屏 离线使用 轻量,快速 基于 Web 技术一套代码多端复用(移动端,桌面端 ...

  4. AIoT & IoT

    AIoT & IoT Artificial Intelligence of Things Internet of Things AIoT === AI + IoT 人工智能物联网 === 人工 ...

  5. 微信小程序 API

    微信小程序 API https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html demo https://de ...

  6. MacBook Pro 2019 13 inch & screen blink

    MacBook Pro 2019 13 inch & screen blink MacBook Pro 闪屏 https://macreports.com/mac-how-to-trouble ...

  7. nasm astrcpy_s函数 x86

    xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export ast ...

  8. 【C#】反射的用法及效率对比

    反射实例化类 public class Person { public string Name { get; set; } public Person(string name) { this.Name ...

  9. 以NGK 呼叫河马为例分析智能合约漏洞在哪?

    合约交易是指买方和卖方根据约定,在未来某一时刻,以指定价格接受某一资产的协议. 合约是买卖双方之间权利义务的表现形式.合约交易是一种金融衍生工具,与现货市场相比,用户通过判断期货合约交易的涨跌,选择买 ...

  10. DeFi 热潮下,NGK将成为下一个财富密码

    区块链正在脱虚向实,处于大规模落地,赋能实体产业的前夜,而在这个关键的关口,一个万亿市场的蓝海正在缓缓生成,成为区块链落地的急先锋,这个先锋便是DeFi. DeFi,即Decentralized Fi ...