Postman应用——测试脚本Test Script

文章目录

测试脚本可以在Collection、Folder和Request的Pre-request script 和 Test script中编写,测试脚本可以检测请求响应的各个方面,包括正文、状态代码、头、cookie、响应时间等,只有测试符合自定义的要求后才能通过。

Test Script脚本

Collection

Folder

Request

解析响应体

为了在响应中执行断言,首先需要将数据解析为断言可以使用的JavaScript对象。

  1. 解析JSON
js 复制代码
const responseJson = pm.response.json();
  1. 解析xml
js 复制代码
const responseXml = xml2Json(pm.response.text());
  1. 解析csv
js 复制代码
const parse = require('csv-parse/lib/sync');
const responseCsv = parse(pm.response.text());
  1. 解析HTML
js 复制代码
const $ = cheerio.load(pm.response.text());
console.log($.html());

如果不解析成JavaScript对象是不是就不可以断言?当然不是,也可以不解析响应体断言:

js 复制代码
// 测试响应体是否包含某个字符串
pm.test("Body contains string", () => {
 	pm.expect(pm.response.text()).to.include("customer_id"); 
}

断言测试

pm对象提供了测试相关功能:

  • pm.test(testName:String, specFunction:Function):Function:测试函数。
  • pm.expect(assertion:*):Function → Assertion:允许在响应数据上做测试,使用ChaiJS expect BDD语法。

可以使用pm.response.to.have.*pm.response.to.be.*来构建断言。

示例:

测试状态码:

js 复制代码
pm.test("请求状态码200", function() {
  pm.response.to.have.status(200); 
});
js 复制代码
pm.test("请求状态码200", function() {
  pm.expect(pm.response.code).to.eql(200); 
});

测试响应时间:

js 复制代码
pm.test("请求响应时间少于200ms", () => {
  pm.expect(pm.response.responseTime).to.be.below(200); 
});

是否满足指定条件:

js 复制代码
tests["字符串asdf包含a字符"] = "asdf".includes("a"); //旧的语法(已弃用,不推荐使用)

多断言组合测试:

测试脚本也可以包含多个断言作为单个测试,可以将相关断言组合在一起。如果包含的任一个断言失败,整个测试将失败,所有断言都必须成功,测试才能通过。

js 复制代码
pm.test("The response has all properties", () => {
  const responseJson = pm.response.json(); //将响应体body转换成JSON格式
  pm.expect(responseJson.type).to.eql('vip'); // type等于vip
  pm.expect(responseJson.name).to.be.a('string'); // name值的类型为string类型
  pm.expect(responseJson.id).to.have.lengthof(1); // id的长度为1
}

测试结果如下:

相关推荐
程序员杰哥38 分钟前
Fiddler抓包手机和部分app无法连接网络问题
自动化测试·软件测试·python·测试工具·智能手机·fiddler·测试用例
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 23--数据驱动--参数化处理 Yaml 文件
python·学习·测试工具·pytest
要一杯卡布奇诺8 小时前
测开百日计划——Day1
功能测试·测试工具·单元测试·集成测试
安冬的码畜日常1 天前
【JUnit实战3_28】第十七章:用 JUnit 5 实测 SpringBoot 项目
spring boot·功能测试·测试工具·设计模式·单元测试·junit5
西部森林牧歌1 天前
PostIn零基础学习 - 如何使用接口Mock尽早满足前端开发需求
postman·postin·tiklab devops
程序员三藏1 天前
接口自动化测试框架搭建详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
卖个几把萌1 天前
【02】JMeter登录保存cookie用于后面的接口
测试工具·jmeter
测试老哥1 天前
Jmeter吞吐量控制器详解
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
吗喽1号1 天前
python-xmind转Excel
python·测试工具
卓码软件测评2 天前
第三方软件测试机构:【“Bug预防”比“Bug发现”更有价值:如何建立缺陷根因分析与流转机制?】
功能测试·测试工具·单元测试·测试用例·压力测试·可用性测试