软件测试-接口测试-postman工具使用

1.postman介绍

介绍

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

特点

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

2.postman基本用法

  1. Postman发送URL参数
  2. Postman发送表单数据
  3. Postman发送JSON数据

2.1. Postman发送URL参数

案例:

1.需求

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

2.分析实现
请求方式:GET
请求路径: http://localhost/Home/Goods/search.html?q=iPhone
传参方式:查询字符串
在这里插入图片描述

实现步骤
1.设置请求方式:get
2.输入请求路径:http://localhost/Home/Goods/search.html?q=iPhone
3.设置请求数据:q iphone
4.点击发送请求:send
5.查看响应数据

示例截图
在这里插入图片描述
对比抓包的响应结果
在这里插入图片描述

2.2 Postman发送表单数据

需求
1.请求TPshop项目的登录接口,请求数据(username: 12345678911, password: 123456, verify_code: 1234)
2. 登录接口URL:http://localhost/index.php?m=Home&c=User&a=do_login
![在这里插入图片描述](https://img-blog.csdnimg.cn/098e7005d56e445c9a856889873fbd4c.png

分析实现
请求方式:post
请求路径: http://localhost/Home/user/login
传参方式:请求体-表单提交(username: 12345678911, password: 123456, verify_code: 8888)
在这里插入图片描述

实现步骤
1.设置请求方式:post
2.输入请求路径:http://localhost/Home/user/login
3.设置请求参数:(username: 12345678911, password: 123456, verify_code: 8888)
5.点击发送请求:send
6.查看响应数据

示例截图
在这里插入图片描述
对比抓包的响应结果
在这里插入图片描述

2.3 Postman发送JSON数据

需求

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

分析实现
请求方式:post
请求路径: http://182.92.81.159/api/sys/login
传参方式:JSON数据( {“mobile”:“13800000002”, “password”:“123456”} )

实现步骤
1.设置请求方式为post
2.输入请求路径
3.设置请求头
4.设置请求体
5.点击发送请求
6.查看响应数据

示例截图
在这里插入图片描述
在这里插入图片描述

3.postman的高级用法

postman的高级用法

  1. 管理用例
  2. Postman断言
  3. 全局变量与环境变量
  4. 请求前置脚本
  5. Postman关联
  6. 批量执行测试用例
  7. 读取外部文件实现参数化

3.1 管理用例

实现步骤

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

3.2 Postman断言

断言

让程序判断执行结果是否和预期一样;

特点

pastman的断言通常由javascript语言编写(写在’Tests’标签里)
Tests中的脚本通常在发送请求之后执行,把断言结果(PASS/FAIL)最终在Test Result标签页显示
在这里插入图片描述

常用的postman断言

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");
});

判断响应状态码是否等于200
在这里插入图片描述

3.3 全局变量与环境变量

概念

全局变量 :是全局唯一的变量,不可重复定义的变量;
环境变量:

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

设置变量

  • 全局变量
    1.手动设置
    在这里插入图片描述

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

  • 环境变量:
    1.手动设置
    2.代码设置:pm.environment.set(“var_name”, value);
    在这里插入图片描述
    在这里插入图片描述
    代码设置
    在这里插入图片描述

获取变量值

全局变量

  1. 请求参数中获取:{{var_name}}
  2. 代码中获取: var value = pm.globals.get(“var_name”);
    在这里插入图片描述

环境变量

  1. 请求参数中获取:{{var_name}}
  2. 代码中获取: var value = pm.environment.get(“var_name”);
    在这里插入图片描述

3.4 请求前置脚本

概念

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

应用场景

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

案例

  • 需求: 请求TPshop项目中获取图片验证码的接口,需要在URL中设置随机数
  • 请求路径: http://localhost/index.php?m=Home&c=User&a=verify&r=0.6569606479434671
  • 分析: 在JS中如何生成随机数? var r = Math.random(); // 返回[0, 1)之间的随机数
    在这里插入图片描述

请求实现
在这里插入图片描述
在这里插入图片描述

3.5 Postman关联

概念

当请求之间有依赖关系,比如后一个接口的请求需要依赖前一个接口的响应数据,一般通过全局变量或者环境变量来进行参数之间的传递。

在这里插入图片描述

实现

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

postman关联案例
基于天气接口返回百度的查询城市信息

步骤

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.6 批量执行测试用例

概念

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

步骤
在这里插入图片描述

3.7 读取外部文件实现参数化

应用场景:

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

定义数据文件

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

获取数据文件中的参数

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

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

案例:批量查询手机号归属地和所属运营商信息,并校验运营商数据是否正确

接口地址: http://cx.shouji.360.cn/phonearea.php?number=13012345678
在这里插入图片描述

前置条件(设置断言)


//断言
pm.test("运营商信息", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.sp).to.eql(data.sp);
});

前置条件(准备测试数据)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.postman测试报告

Newman

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值