项目测试之Postman

基础

实战-处理

进行批量测试并输出报告

参考:
https://blog.csdn.net/tyh_keephunger/article/details/109205191

概述:

Newman是什么?
	NewmanPostman的命令行工具,用于执行接口测试集合。

操作过程:

🍇 找到node目录以及所属版本情况
node -v // node版本号
node where // 查看node在哪里

🍇 下载newman
npm install -g newman //下载newman
newman -v // 查看版本

🍇 安装html报告
npm install -g newman-reporter-html // 下载html报告
npm list -g --depth 0 // 查看全局安装的 npm 包信息的命令

🍇 postman测试请求导出
首页--xx集合--右侧三个小点--导出(xxx.json)

🍇 cmd进入到node所在目录
通过界面点点点到所在文件夹,在文件夹路径的位置输入cmd,回车即可实现;

🍇 执行测试脚本,生成测试报告
newman run D:\xxx\测试.postman_collection.json -n 1500 --delay-request 1 -r html --reporter-html-export D:\xxx\测试result.html
// 上述是 默认的 HTML 报告可能不会包含完整的响应数据。
newman run D:\xxx\测试.postman_collection.json -n 1500 --delay-request 1 -r json --reporter-json-export D:\xxx\测试result.json
// 上述是 json报告器,包括响应体、头信息、状态码等。
// 可以运行,但测试结果不是我所想要的;
newman run D:\xxx\测试.postman_collection.json -r htmlextra --reporter-htmlextra-export D:\xxx\测试result_extra.html
// 可以运行,但输出测试报告内容太多了。
// 多个请求多次访问 只展示一个response body 效果还可以;--delay-request 0.66 中,参数设置为非整数时,会报错 error: The value must be a positive integer;

–reporter-html-export 结果图
在这里插入图片描述
如果测试请求中,存在结果对比部分,即在postman请求详细界面的测试部分,输入预期输出结果,即可在报告中展示;如后文《测试结果验证》

–reporter-json-export 结果图
在这里插入图片描述

–reporter-htmlextra-export 结果图
在这里插入图片描述
注意:

1 postman不支持单独请求导出,单独请求导出,需要将单独请求放入集合中

测试结果验证

在这里插入图片描述
操作过程:

需要在请求详细界面的测试中编写javaScript脚本

具体脚本案例如下:
// 检查HTTP状态码是否为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

// 获取响应体并转换为JSON对象
const responseJson = pm.response.json();

// 验证响应体中的code是否为0,msg是否为"成功"
pm.test("Response data validation", function () {
    // 检查code字段
    pm.expect(responseJson.code).to.eql(0);
    
    // 检查msg字段
    pm.expect(responseJson.msg).to.eql('成功');
    
    // 检查status字段是否为100
    pm.expect(responseJson.status).to.eql(100);
});

实战-请求

post请求显示Required request body is missing

描述:
	post请求,参数设置如下图。
	在后端代码处,会报错:Required request body is missing
分析:
	原因是请求中没有携带body参数;

在这里插入图片描述
🍇 解决
在这里插入图片描述

post请求-jwt校验

描述:
	登录场景下,修改需要添加token;
	在代码中会被添加
	.antMatchers("").hasAuthority("USER") 策略;
分析:
	在头中添加:
	Authorization 字段;具体的值是:Bearer xxxx	
### 使用Postman测试Java项目的API接口 #### 安装与配置Postman 为了能够顺利地使用Postman测试Java项目中的API接口,需先完成Postman的安装并熟悉其基本操作。这包括但不限于掌握如何创建请求、发送请求以及查看响应结果等内容[^1]。 #### 创建POST请求 针对特定于Java后端开发的情况,在`@PostMapping("/sys/login")`这样的路径下定义了一个接收JSON格式数据体作为输入参数的方法,并通过`@RequestBody`注解指定了传入对象为`Login`类实例的对象。因此,在Postman中设置相应的HTTP POST请求时,应当确保选择了正确的URL地址(即服务器部署后的实际访问路径),并将Body部分设为raw JSON形式,按照后端期望的数据结构填写必要的字段信息[^2]。 ```json { "username": "exampleUser", "password": "examplePassword" } ``` #### 设置全局/环境变量 考虑到不同环境下可能存在的差异性需求,比如本地调试阶段使用的数据库连接字符串不同于生产环境中所用到的那个,则可以利用Postman内置的支持机制——全局变量或环境变量来进行灵活管理。例如,可以通过如下JavaScript语句动态获取当前时间戳并将其存储在一个名为`time13`的全局变量里: ```javascript pm.globals.set("time13", new Date().getTime()); ``` 此代码片段可以在Pre-request Script区域编写执行,以便每次发起请求前自动更新该值[^3]。 #### 断言功能的应用 当希望验证返回的结果是否满足预期条件时,可借助Postman提供的Tests选项卡内的脚本编辑器添加自定义逻辑判断。对于上述登录接口而言,如果成功登陆会得到一个包含token在内的键值对集合,那么就可以这样写一段简单的断言语句以确认状态码正常且存在有效令牌: ```javascript const responseJson = pm.response.json(); pm.test("Status code is 200 OK", function () { pm.expect(pm.response.code).to.equal(200); }); pm.test("Response contains token", function () { pm.expect(responseJson.token).to.not.be.undefined; }); ``` 以上就是关于怎样运用Postman工具去检验由Java编写的Web服务所提供的公共应用程序编程界面(API)的一些指导说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值