千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读
《一》postman基本功能
(1)左侧边模块
Collections
收藏,专用文件夹
APIs
接口文档
Environments
全局变量(所有接口都可以使用) 环境变量(需要选择指定的项目名) 区别:作用域不同
Mock Servers
模拟服务器,接口联调所用
Monitors
监视器
Flows
流量
History
历史记录
(2)居中上栏字段
Params
get提交的参数
Authorization
token的类型
Headers
请求头(一般固定) 修改的话就是修改二点(参数类型 和 请求头里面放token)
body
post传参数
(1)参数类型:none、form-data、x-www-form-urlencoded、raw[Text、JavaScript、JSON、HTML、XML]、binary[二进制]、GraphQL
(2)参数类型的选择取决于:接口文档的参数类型Parameter content type[参数内容类型]显示的是哪个?
Pre-request Script
前置条件(即解释:数据做接口请求,前置条件需要加密才能做接口请求)
Tests
后置条件(即解释:数据响应结果,对这个结果进行断言机制处理)
Settings
设置
(3)居中下栏字段
Body
响应结果(响应体)(Pretty、Raw、Preview、Visualize:不同的方式进行展示)
Cookies
Headers
响应头
Test Results
断言结果

《二》postman接口测试
(1)测码学院VIP课程接口swagger文档:http://39.98.138.157:5000/apidocs/
(2)接口地址:http://39.98.138.157:5000/api/login
流程
电商登录接口--->电商获取个人信息接口--->电商获取商品信息接口--->电商添加购物车接口--->电商提交订单接口
说明
Request header:请求标头
Request Example:请求实例
Response Example:响应实例
post:/api/login 电商登录接口
Request Example:{"password": "123456","username": "admin"}
Response Example:{"token": "23657DGYUSGD126731638712GE18271H"}
get:/api/getuserinfo 电商获取个人信息接口
Request header:{token:23657DGYUSGD126731638712GE18271H}
Response Example:{"nikename": "风清扬","openid": "UEHUXUXU78272SDSassDD",
"userbalance": 5678.9,"userid": 17890,"username": "admin","userpoints": 4321}
get:/api/getproductinfo 电商获取商品信息接口
Request Example:{http://127.0.0.1:5000/api/getproductinfo?productid=8888}
Response Example:{"SKU": "FRTSJ7676","price": 29.9,"productdesc": "麒麟瓜皮甜度丝毫不减。","productid": 8888,"productname": "海南麒麟瓜5斤装"}
post:/api​/addcart 电商添加购物车接口
Request header:{token:23657DGYUSGD126731638712GE18271H}
Request Example:{"openid": "UEHUXUXU78272SDSassDD","productid": 8888,"userid": 17890}
Response Example:{"cartid": 45233,"openid": "UEHUXUXU78272SDSassDD","price": 29.9,"productid": 8888,"userid": 17890}
post:/api​/createorder 电商提交订单接口
Request header:{token:23657DGYUSGD126731638712GE18271H}
Request Example:{ "cartid": 45233, "openid": "UEHUXUXU78272SDSassDD", "productid": 8888, "userid": 17890}
Response Example:{"openid": "UEHUXUXU78272SDSassDD","orderid": 23441289,"orderprice": 129.9,"productid": 8888,"productnum": 1,"userid": 17890}

《三》用postman做接口测试关联
(1)接口地址优化:可以将固定不变的前缀地址放入环境变量Environments,使用环境变量格式:{{变量名}}
(2)运行整个流程:选择接口项目名(Vipshop),右侧点击“Run collection”
(3)复用的值(如:token)如何获取出来:
1.后置处理器Tests里面去获取;
2.取出tonken值,放到一个变量(如:sjtoken)中去,然后保存到环境变量中去;
3.设置环境变量,最后进行断言机制处理
4.别的接口需要用到这个变量,用{{变量名}}
5.获取代码实例
// 函数名:可自定义修改函数名 要把 token 拿出来(RBJVC)
pm.test("getToken", function () {
// 获得请求的响应的结果(RBJVC)
var jsonData = pm.response.json();
// 打印结果出来
console.log(jsonData)
// 做的事情?取出token值 保存到环境变量中去
// 取token值
var sjtoken = jsonData.token;
// 打印 sjtoken值
console.log(sjtoken)
// 保存到环境变量中去 设置环境变量(SAEV)
pm.environment.set("token", sjtoken);
//断言 实际结果和预期结果进行对比 这条用例的结果是不是我想要的(RBJVC)
pm.expect(sjtoken).to.eql('23657DGYUSGD126731638712GE18271H');
});

《四》使用postman做持续集成
(1)在postman中怎么做参数化(CSV文件)?
1.创建csv文件
2.使用csv文件中的数据,变量名修改为{{username}} {{password}}
2.1 运行csv文件:选择接口项目名,点击Run,仅选择login
---Iterations(迭代次数)
---Delay(延迟)
---Data(数据)
2.2 测试完成了,生成测试报告,使用工具newman
2.2.1 先安装node.js,官网下载,验证有没有安装好 node -v
2.2.2安装newman:npm install -g newman --registry=https://registry.npm.taobao.or
验证有没有安装好?在cmd中输入newman进行验证
3.安装测试报告npm install -g newman-reporter-html
3.1 准备工作就绪
3.1.1.创建一个文件夹(如:D:/postmandeom/login.csv)
3.1.2把用例文件导出来(选择项目名Vipshop,右侧点击Export,导出到postmandeom文件夹,命名为:Vipshop.json)
3.1.3环境变量导出来(选择项目名vipshop,右边点击Export,导出到postmandeom文件夹,命名为:en.json)
3.1.4全局变量导出来
3.2 生成测试报告
-e:指定环境变量运行
-d:测试数据运行 csv文件
-g:指定全局变量运行
-r:生成测试报告类型
3.3在D:/postmandeom文件路径框输入cmd,运行命令
{"password": "123456","username": "admin"}
newman run D:/postmandeom/Vipshop.json -e D:/postmandeom en.json -r html --reporter-html-export result.html
{"password": "{{password}}","username": "{{username}}"}
newman run D:/postmandeom/Vipshop.json -e D:/postmandeom en.json -d login.csv -r html --reporter-html-export result.html
posted on   隆江猪脚饭  阅读(231)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示