Postman实现接口测试(附项目实战)

文章目录

  • Postman实现接口测试
    • 1.Postman介绍和安装
    • 2. Postman安装
      • 2.1 安装方式
      • 2.2 安装步骤
    • 3. Postman入门示例
  • Postman基本用法
  • Postman高级用法
    • 1. 管理用例
    • 2. Postman断言
    • 3. 全局变量与环境变量
    • 5. Postman关联
    • 6. 批量执行测试用例
    • 7. 读取外部文件实现参数化
  • Postman测试报告目标
  • 项目实战
    • 1. 初始化工作
    • 2. 实现测试用例
    • 3. 生成测试报告

Postman实现接口测试

    1. 掌握如何安装Postman
    1. 掌握Postman的基本用法
    1. 掌握全局变量与环境变量
    1. 掌握Postman断言和关联
    1. 掌握如何读取外部文件实现参数化
    1. 掌握如何使用Newman生成HTML测试报告

1.Postman介绍和安装

Postman是一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会 经常使用。

官方网站:https://www.getpostman.com/

主要特点

    1. 简单易用的图形用户界面
    1. 可以保存接口请求的历史记录
    1. 使用测试集Collections可以更有效的管理组织接口
    1. 可以在团队之间同步接口数据

2. Postman安装

2.1 安装方式

  • 方式一: Postman最早是以Chrome浏览器插件的形式存在的,可以到chrome商店搜索下载安装。由于2018年初Chrome停止对Chrome应用程序的支持,所以不再推荐使用该方式。
  • 方式二:Postman提供了独立的安装包,不再依赖于Chrome浏览器了。同时支持MAC、Windows和Linux,推荐使用这 种方式安装。
  • 下载地址:https://www.getpostman.com/apps

2.2 安装步骤

Windows

  • 双击运行安装程序,即可完成安装。

MacOS

  • 下载的应用程序,你可以拖动文件到“应用程序”文件夹。

3. Postman入门示例

需求

使用Postman访问百度 http://www.baidu.com ,并查看响应结果

实现步骤

    1. 设置请求方式
    1. 输入接口地址
    1. 点击发送请求
    1. 查看响应结果

示例截图

img

Postman基本用法

    1. 掌握使用Postman发送URL参数
    1. 掌握使用Postman发送表单数据
    1. 掌握使用Postman发送JSON数据

1.案例一

1.1 需求

  • 访问TPshop搜索商品的接口,通过查询字符串的方式传递搜索的关键字 iPhone ,并查看响应数据
  • 请求路径格式为: http://localhost/Home/Goods/search.html?q=iPhone

1.2 实现分析

  • 请求方式:GET
  • 请求路径: http://localhost/Home/Goods/search.html
  • 传参方式:查询字符串(q=iPhone)

1.3 实现步骤

  1. 设置请求方式为GET
  2. 输入请求路径
  3. 设置请求数据(查询字符串)
  4. 点击发送请求
  5. 查看响应数据

1.4 示例截图

img

2.案例二

2.1 需求

  • 请求TPshop项目的登录接口,请求数据(username: 13088888888, password: 123456, verify_code: 1234)
  • 登录接口URL:http://localhost/index.php?m=Home&c=User&a=do_login

2.2 实现分析

  • 请求方式:POST
  • 请求路径: http://localhost/index.php?m=Home&c=User&a=do_login 请求数据:请求体-表单提交(username: 13088888888, password: 123456, verify_code: 1234)

2.3 实现步骤

  1. 设置请求方式为POST
  2. 输入请求路径
  3. 设置请求数据(请求体-表单提交)
  4. 点击发送请求
  5. 查看响应数据

2.4 示例截图

img

3.案例三

3.1 需求

    1. 请求IHRM项目的登录接口,请求数据( {“mobile”:“13800000002”, “password”:“123456”} )
    1. 登录接口URL:http://182.92.81.159/api/sys/login

3.2 实现分析

  • 请求方式:POST
  • 请求路径: http://182.92.81.159/api/sys/login
  • 请求数据:
    • 请求头-(Content-Type: application/json)
    • 请求体-JSON数据( {“mobile”:“13800000002”, “password”:“123456”} )

3.3 实现步骤

  1. 设置请求方式为POST
  2. 输入请求路径
  3. 设置请求头
  4. 设置请求体(请求体-raw)
  5. 点击发送请求
  6. 查看响应数据

3.4 示例截图

设置请求头:img

设置请求体:

img

Postman高级用法

    1. 掌握如何创建用例的目录结构
    1. 掌握Postman断言
    1. 掌握全局变量与环境变量
    1. 掌握Postman关联
    1. 掌握如何读取外部文件实现参数化

1. 管理用例

思考:针对一个大型的项目进行接口测试,会编写很多测试用例。怎么更好的管理维护测试用例呢?

1.1 实现步骤

  • 创建测试集-New Collection
    • Collection可以理解成一个项目(系统),包含多个接口请求
  • 创建目录-Add Folder
    • Folder可以理解成一个项目模块
  • 添加请求-Add
    • Request

1.2 实现步骤截图

1)创建测试集- 点击‘New Collection’,在弹出框中输入测试集的名称和其他信息,再点击‘Create’按钮

img

2)创建目录- 在测试集上点击右键选择‘Add Folder’,在弹出框中输入目录的名称和其他信息,再点击‘Create’按 钮

img

3.)添加请求- 在目录上点击右键选择‘Add Request’,在弹出框中输入请求的名称和其他信息,再点击保存按钮

img

2. Postman断言

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

2.1 特点

  • Postman的断言是使用JavaScript语言编写的,写在‘Tests’标签页里
  • Tests中的脚本在发送请求之后执行,会把断言的结果(PASS/FAIL)最终在‘Test Results’标签页中展示

2.2 常用Postman断言

选择断言代码片段

在Tests输入框的右侧配置了一些常用的断言代码片段,点击后自动填写到Tests输入框中,然后再进行修改

img

断言代码片段介绍

1.Status code: Code is 200

// 判断响应状态码是否等于200
pm.test("Status code is 200", function () {pm.response.to.have.status(200); });

2.Response body: Contains string

// 判断响应体中是否包含指定的字符串 pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });

3.Response body: Is equal to a string

// 判断响应体数据是否等于指定的字符串 pm.test("Body is correct", function () {pm.response.to.have.body("response_body_string"); });

4.Response body: JSON value check

// 校验响应的JSON数据
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.value).to.eql(100); });

5.Response headers: Content-Type header check

// 判断响应头中是否包含指定的头标签 pm.test("Content-Type is present", function () {pm.response.to.have.header("Content-Type"); });

测试结果

img

3. 全局变量与环境变量

3.1 概念

  • 全局变量:全局变量是全局唯一的,不可重复定义的变量
  • 环境变量:
    • 一个变量只能属于某个环境,在某一个环境中变量不可重复定义
    • 在环境与环境之间可以定义重复的变量
    • 一个环境可以包含多个环境变量
    • 常见环境分类:开发环境、测试环境、生产环境

3.2 设置变量

全局变量

    1. 手动设置
    1. 代码设置: pm.globals.set(“var_name”, value);

环境变量

    1. 手动设置
    1. 代码设置: pm.environment.set(“var_name”, value);

3.3 获取变量值

全局变量

    1. 请求参数中获取:{{var_name}}
    1. 代码中获取: var value = pm.globals.get(“var_name”);

环境变量

    1. 请求参数中获取:{{var_name}}
    1. 代码中获取: var value = pm.environment.get(“var_name”);

4.请求前置脚本

请求前置脚本就是在“Pre-request Script”标签中所编写的脚本,是在请求发送之前要执行的代码片段。 应用场景:

  • 请求参数中包含一个随机数或者时间戳
  • 请求之前需要对请求参数做进一步处理(如:对敏感参数进行加密)

案例

需求:请求TPshop项目中获取图片验证码的接口,需要在URL中设置随机数 请求路径:
分析:在JS中如何生成随机数?

实现截图

img

5. Postman关联

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。

5.1 如何实现?

  • 要获取某个请求的响应结果数据,可以通过在‘Tests’标签页中编写JavaScript脚本来实现
// 获取JSON格式的响应数据
var jsonData = pm.response.json();
  • 多个请求之间可以使用全局变量或环境变量来传递数据
// 把数据保存到全局变量中 pm.globals.set("city", city);
  • 获取某个全局变量的值:{{var_name}}

5.2 案例

  1. 请求获取天气的接口,http://www.weather.com.cn/data/sk/101010100.html
  2. 获取返回结果中的城市名称
  3. 调用百度搜索接口: http://www.baidu.com/s?wd=北京 ,把获取到的城市名称作为请求参数

实现步骤截图

  1. 在第一个请求的‘Tests’标签页中编写JavaScript脚本

img

  1. 在第二个请求中使用全局变量

img

6. 批量执行测试用例

要想批量执行测试用例,需要先把接口请求添加到测试集中,通过运行测试集的方式就可以实现批量运行测试用例。

操作步骤

  1. 点击测试集中的“Run”按钮,批量运行测试用例

img

  1. 弹出Collection Runner窗口,点击运行按钮

img

  1. 查看测试结果

img

7. 读取外部文件实现参数化

应用场景: 针对于某个接口,如果有大量的测试数据需要批量验证,可以把测试数据保存到数据文件中,通过参数化的方式来实现。
7.1 定义数据文件

常用的数据文件格式有:CSV、JSON

img

7.2 选择数据文件
在测试集运行“Collection Runner”窗口中,点击“Select File”按钮选择定义好的数据文件

img

7.3 获取数据文件中的参数

在不同的地方获取参数的方法是不同的,介绍两种获取参数的方法:

  • 请求参数可以通过{{var_name}}来引用
  • 断言中的数据,由于是在Tests中编写脚本,并不能直接通过{{var_name}}来引用,可以通过内置变量 data 来 获取
// 获取数据文件中的用户名参数 
var username = data.username;

7.4 案例

  • 需求:批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确
  • 接口地址: http://cx.shouji.360.cn/phonearea.php?number=13012345678
  • 部分测试数据:
  • 手机号: 13012345678 运营商: 联通
  • 手机号: 13800001111 运营商: 移动
  • 手机号: 18966778899 运营商: 电信

定义数据文件

  • CSV格式

phone,sp

13012345678,联通

13800001111,移动

18966778899,电信

  • JSON格式
[
{"phone":"13041092162", "sp":"联通"}, {"phone":"13820003536", "sp":"移动"}, {"phone":"18911236688", "sp":"电信"}]

实现步骤截图

img

Postman测试报告目标

    1. 掌握如何搭建Newman的相关环境
    1. 掌握如何使用Newman生成HTML测试报告

1.Newman

Newman是一款基于nodejs开发的可以运行Postman脚本的工具,并可以生成测试报告

2.环境准备

2.1 安装nodejs

  • 下载地址:http://nodejs.cn/download/
  • 如果下载的是安装包,下载后双击安装即可
  • 如果下载的是压缩包(.zip),解压到某个目录后,需要配置环境变量
  • 校验:打开cmd,输入 node -v ,看到输出node的版本信息,即代表安装成功

2.2 安装newman

  • 1)安装newman
  • 打开cmd输入:
  • 校验:安装完成后,输入 命令查看版本信息,检测是否安装成功
  • 2)安装newman-reporter-html
  • 打开cmd输入: npm install -g newman-reporter-html

3.导出测试集数据

img

4.执行测试

使用newman命令,运行导出的测试集脚本,打开cmd输入:

newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html
eg:
newman run demo.postman_collection.json -r html
newman run demo.postman_collection.json -r html --reporter-html-export report.html

命令说明

  • run xxx.json:表示要执行的postman脚本,即导出的测试集数据
  • -e source:用来指定环境变量文件的路径
  • -d source:用来指定测试数据文件的路径
  • -r html:用来指定生成的数据结果的类型,如json、html等
  • –reporter-html-export source:指定html报告生成的路径;如果不设置该参数,则会在当前目录下生成一个名 字为newman的文件夹

查看测试报告

命令运行完成后,打开生成的HTML文件即可看到测试报告内容

img

项目实战

1. 初始化工作

1.1 创建测试用例结构

1)创建测试集:IHRM人力资源管理系统

2) 创建目录

  • 登录模块
  • 员工管理模块

img

1.2 设置环境变量

在实际的工作中,我们既要对测试环境进行测试,也要对生产环境进行测试。

  • 测试环境

base_url=http://182.92.81.159

token=xxx

  • 生产环境

base_url=http://www.myhrm.com

token=xxx

img

2. 实现测试用例

根据编写的测试用例文档,使用Postman实现测试用例

2.1 登录-登录成功

操作步骤

    1. 在‘登录’目录下,添加‘登录成功’的请求
    1. 填写请求数据:请求方式、请求URL、请求头、请求体
    1. 在‘Tests’标签页中,编写测试脚本:断言、业务数据处理
    1. 发送请求,调试脚本

实现
1.添加‘登录成功’的请求

img2. 填写请求数据:请求方式、请求URL

img

3.填写请求数据:请求头

img

4.编写测试脚本

img

5.响应体数据

img

6.断言结果

img

3. 生成测试报告

newman run 测试脚本文件 -e 环境变量文件 -d 测试数据文件 -r html --reporter-html-export report.html

操作步骤

    1. 导出测试集数据
    1. 导出环境变量数据
    1. 执行命令: newman run ihrm.postman_collection.json -e dev.postman_environment.json -r html --reporter-html-export report.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postman 使用教程详解

Postman页面 2、新建一个项目 直接点击左边栏上面的添加目录图标来新增一个根目录,这样就等于新建了一个项目,我们可以把一个项目或一个模块的用例都存放在这个目录之下,并且在根目录之下我们还可以在建立子目录来进行功能用例的细分&#…

Springboot dubbo @Service @Transactional 无法提供服务或者无法提供事务的解决办法

问题场景: 今天在springboot中集成spring事务的时候,遇到了一个大坑。如果(springbootdubbo)中添加 Service、Transactional 两个注解的时候,就不能进行dubbo服务注册了。 解决历程: 1,先是在…

什么是 serialVersionUID ? 序列化对象时必须提供 serialVersionUID 吗?

什么是 serialVersionUID ? 序列化对象时必须提供 serialVersionUID 吗? 1,什么是 serialVersionUID ? 顾名思义,serialVersionUID是序列化版本号。所有可序列化的类,都有一个静态serialVersionUID属性&a…

谈Java集合类的toArray()的小bug

谈Java集合类的toArray()的小bug toArray()方法 它的作用是将集合转换成数组。但是这个方法有一个弊端&#xff0c;当toArray()方法使用不当时会产生ClassCastException&#xff08;类转换异常&#xff09; public static void main(String[] args) {List<Integer> li…

Dubbo系统里面MultipartFile文件传输问题Dubbo文件上传/传输服务

今天遇到一个问题&#xff0c;在Controller 层里面&#xff0c;直接使用MultipartFile 来接收上传的图片&#xff0c;遇到几个坑。 一、在spring配置文件里面配置文件上传 <!--文件上传--><bean name"multipartResolver"class"org.springframework.web…

Dubbo2.7文档详解

本篇博文参考dubbo官方文档 本编博文参考javaguide之rpc 文章目录一.RPC1.1 什么是 RPC?1.2 为什么要用 RPC?1.3 RPC 能帮助我们做什么呢&#xff1f;1.4 RPC 的原理是什么?1.5 常见的 RPC 框架总结二.既有 HTTP ,为啥用 RPC 进行服务调用?2.1 RPC只是一种设计而已2.2 HTTP…

12nm 制程、Zen+ 微架构 AMD Ryzen 7 2700X 处理器详细测试 - 电脑领域 HKEPC Hard

12nm 制程、Zen 微架构 AMD Ryzen 7 2700X 处理器详细测试 代号 Pinnacle Ridge、AMD 第二代 Ryzen 处理器正式登场&#xff0c;基于经改良的 Zen 微架构&#xff0c;改善了 Cache 及记忆体延迟表现&#xff0c;更先进的 12nm LP 制程&#xff0c;令核心时脉进一步提升&#…

Java之Serializable接口实现序列化和反序列化实例以及部分序列化的四种方法

首先需要明确的概念: 序列化&#xff1a;将数据结构或对象转换成二进制字节流的过程反序列化&#xff1a;将在序列化过程中所生成的二进制字节流的过程转换成数据结构或者对象的过程持久化&#xff1a;将数据写入文件中长久保存的过程称之为持久化序列化主要目的&#xff1a;是…

win10死机频繁怎么解决

Windows 10已经推出好几年&#xff0c;系统趋于稳定&#xff0c;但依旧不是完美&#xff0c;蓝屏、死机状态还是会出现&#xff0c;只是概率降低了很多&#xff0c;如果你的电脑遇到了突然死机或者频繁卡死的情况&#xff0c;或许你应该考虑对电脑进行重置了。系统自带的恢复重…

Jar包常见的反编译工具介绍与使用

反编译JAR能干什么: 排查问题、分析商业软件代码逻辑&#xff0c;学习优秀的源码思路。 反编译工具介绍 JD-GUI 下载地址&#xff1a;http://java-decompiler.github.io/ 点评&#xff1a;支持的java版本不会太高&#xff0c;中文注释能够正常显示。 Luyten 下载地址&#…

400 bad request的原因意思和解决方法

我们的电脑在使用的过程中&#xff0c;有的小伙伴在上网的时候可能就遇到过系统提示&#xff1a;400 bad request的情况。据小编所知这种情况&#xff0c;大致意思就是出现了错误的请求或者请求不能满足。原因是因为我们请求的语法格式出现呢错误或者其他情况等等。我们可以通过…

重装系统win10提示磁盘布局不受UEFI固件支持怎么办

原因分析&#xff1a; Win10系统新增UEFI检测机制&#xff0c;在BIOS开启了UEFI时&#xff0c;如果硬盘分区表格式不是GPT&#xff0c;则会提示无法重装系统win10&#xff0c;也就是说UEFIGPT或LegacyMBR才能安装win10。 解决方法一&#xff1a;关闭UEFI 1、重启系统时按Del…

win7按f8后没有进入安全模式怎么解决

win7f8后没有进入安全模式&#xff0c;在正确操作按F8没有进入安全模式之后&#xff0c;不知道怎么解决win7按f8后没有进入安全模式怎么解决&#xff0c;其实非常的简单&#xff0c;下面来看看详细的解决方法吧。 win7按f8后没有进入安全模式怎么解决 第一种方法&#xff1a;…

电脑开机就进入bios的解决方法

最近很多人反映自己的电脑一开机就直接进入bios里&#xff0c;无法正常进入系统。这是怎么回事呢?开机进入bios无法进入系统怎么办呢?别着急&#xff0c;今天就为大家带来电脑开机就进入bios的解决方法。 电脑开机就进入bios的解决方法&#xff1a; 1、如果是电脑的硬盘出了…

Serializable序列化和Externalizable序列化与反序列化的使用

1、序列化是干啥用的&#xff1f; 序列化的原本意图是希望对一个Java对象作一下“变换”&#xff0c;变成字节序列&#xff0c;这样一来方便持久化存储到磁盘&#xff0c;避免程序运行结束后对象就从内存里消失&#xff0c;另外变换成字节序列也更便于网络运输和传播&#xff…

Win10系统如何查看电脑是否是UEFI启动模式

Win10系统如何查看电脑是否是UEFI启动模式?现在越来越多的新电脑都采用UEFI来引导电脑系统&#xff0c;UEFI提高了开机后操作系统的启动速度&#xff0c;使电脑更加流畅&#xff0c;安全性更强&#xff0c;而传统的BIOS则没有UEFI用起来那么好。如何查看自己Win10系统电脑是否…

win10如何关闭Windows Defender安全保护程序

win10如何关闭Windows Defender安全保护程序&#xff1f;win10如何关闭Windows Defender安全保护程序?在安装的windows操作系统中&#xff0c;自带着安全保护程序“Windows Defender应用”&#xff0c;其实主要是为了保护好其他运行的软件&#xff0c;那该怎么来关闭这个软件呢…

2020-12-11

bios怎么恢复出厂设置? 1 第一步 打开电脑 在电脑出现开机提示时按下热键(一般是del或F2)就可以进入到bios设置界面 2 第二步 在bios设置界面中找到并选择“Load Optimized Default”&#xff0c; 然后按下回车键 3 第三步 在弹出窗口中选择“OK“ 然后回车键确定即可 …

JAVA序列化和反序列化的底层实现原理解析 更新时间:2019年11月27日 14:38:39 作者:myseries 这篇文章主要介绍了JAVA序列化和反序列化的底层实现原理解析,文中通

一、基本概念 1、什么是序列化和反序列化 &#xff08;1&#xff09;Java序列化是指把Java对象转换为字节序列的过程&#xff0c;而Java反序列化是指把字节序列恢复为Java对象的过程&#xff1b; &#xff08;2&#xff09;序列化&#xff1a;对象序列化的最主要的用处就是在…

笔记本电脑重启快捷键是什么

品牌型号&#xff1a;联想小新Air-14 2020 系统&#xff1a;win10 1909 64位企业版 部分用户可能电脑型号不一样&#xff0c;但系统版本一致都适合该方法。 用电脑用久了的朋友们都知道电脑的快捷键在哪里&#xff0c;笔记本电脑重启快捷键是什么?下面就给大家分享一下笔记…