详解Postman使用

简介: 1.简介 PostMan,一款接口调试工具。 特点: 可以保留接口请求的历史记录 可以使用测试集Collections有效管理组织接口 可以在团队之间同步接口数据

1.简介

PostMan,一款接口调试工具。

特点:

  • 可以保留接口请求的历史记录
  • 可以使用测试集Collections有效管理组织接口
  • 可以在团队之间同步接口数据

2.管理用例集

创建:

导出:

导入:

3.断言

3.1.概述

断言,让程序去判断预期结果和实际结果是否一致。

postMan的断言是使用JavaScript编写的,写在Tests标签里。

常用的断言有五个:

  • 判断响应状态码
  • 判断响应体是否包含某个字符串
  • 判断响应体是否等于某个字符串
  • 断言Json数据
  • 断言响应头

3.2.判断响应状态码

复制代码
  1. pm.test("Status code is 200", function () {

  2. pm.response.to.have.status(200);

  3. });

3.3.判断响应体是否包含某个字符串

复制代码
  1. pm.test("Body matches string", function () {

  2. pm.expect(pm.response.text()).to.include("test");

  3. });

3.4.断言JSON数据

复制代码
  1. pm.test("Your test name", function () {

  2. var jsonData = pm.response.json();

  3. pm.expect(jsonData.value).to.eql(100);

  4. });

josnData.value指的是response的json中的key,如果是{"code":200},则应该写为jsonData.code,以此类推。

3.5.断言响应头

断言响应头中是否包含某个参数:

复制代码
  1. pm.test("Content-Type is present", function () {

  2. pm.response.to.have.header("Content-Type");

  3. });

断言响应头中某个参数的值:

复制代码
  1. pm.test("Content-Type is present", function () {

  2. pm.response.to.have.header("Content-Type","application/json;charset=UTF-8");

  3. });

4.全局变量和环境变量

4.1.概述

全局变量:全局唯一,不可重复的变量,全局都可以使用。

环境变量:PostMan支持定义多套不同的环境、在每套环境里面定义属于当前环境的环境变量。当切换到某个环境时才能使用这个环境里的环境变量。

4.2.创建环境

以下是创建一套环境的方法:

点击环境管理

点击新增

新增一套环境,新增时允许指定属于该套环境的环境变量。

创建完成后就可以使用了:

4.3.设置变量

全局变量和环境变量都是可以在界面上手动设置的:

进入环境管理:

支持手动设置全局或者环境变量:

当然也可以通过在tests标签来写代码实现。

全局变量:

复制代码
pm.globals.set("name",value);

环境变量:

复制代码
pm.environment.set("name",value);

4.4.获取变量

全局变量、环境变量都可以通过{{变量名}}来获取:

也可以通过在tests标签写代码来获取:

获取全局变量:

复制代码
var value=pm.globals.get("name");

获取环境变量:

复制代码
var value=pm.environment.get("name");

5.前置脚本

在Pre-request Script中可以书写请求前执行的脚本:

此处以向百度发送一个时间戳为例,在前置脚本中获取当前时间戳,设置进全局变量中,参数中再去获取该全局变量携带发送即可。

6.关联

当接口之间存在依赖关系,接口B要依赖于接口A的返回值时,就要用到PostMan的关联。

关联是使用环境变量、全局变量来实现的,接口A的返回值存入环境变量、全局变量中,接口B再去获取使用。

案例:

根据手机号获取所在地区,然后查询该地区的天气。

查看A接口的返回结果:

在Tests中通过js脚本来解析返回结果,将城市信息放到全局变量中:

然后再建一个请求,去请求B接口(天气接口),参数从全局变量中取即可。

7.批量执行

run之前支持配置一些参数,比如循环次数、间隔时间等。

8.测试报告

用newman可以基于postMan来生成测试报告,这里不展开了,想生成的时候直接去搜newman相关内容就行。

相关推荐
代码的乐趣2 小时前
支持selenium的chrome driver更新到137.0.7151.68
chrome·selenium·测试工具
什么都想学的阿超20 小时前
【Redis系列 03】掌握Redis编程艺术:事务、管道与Lua脚本完全指南
redis·junit·lua
程序员三藏1 天前
如何使用Jmeter进行压力测试?
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
编程乐学(Arfan开发工程师)1 天前
42、响应处理-【源码分析】-浏览器与PostMan内容协商完全适配
java·spring boot·后端·测试工具·lua·postman
啾啾Fun1 天前
【Java微服务组件】分布式协调P4-一文打通Redisson:从API实战到分布式锁核心源码剖析
java·redis·分布式·微服务·lua·redisson
多多*1 天前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua
集成显卡1 天前
PlayWright | 初识微软出品的 WEB 应用自动化测试框架
前端·chrome·测试工具·microsoft·自动化·edge浏览器
互联网杂货铺2 天前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
测试老哥2 天前
Jmeter如何进行多服务器远程测试?
自动化测试·软件测试·功能测试·测试工具·jmeter·测试用例·性能测试
修电脑的猫2 天前
带有输入的CDS和程序调用
开发语言·lua