基础
实战-处理
进行批量测试并输出报告
参考:
https://blog.youkuaiyun.com/tyh_keephunger/article/details/109205191
概述:
Newman是什么?
Newman是Postman的命令行工具,用于执行接口测试集合。
操作过程:
🍇 找到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