如何在Postman中测试并对比API请求的前后数值?
解决Postman中验证余额从10变为8的测试问题
嘿,我来帮你搞定这个Postman测试的问题!你现在的测试代码其实是在做“余额等于余额”的无效验证——自己跟自己比永远都是true,根本没用到交易前的初始值。要实现从10到8的余额变化验证,核心是把交易前的初始余额存起来,在交易后拿来对比,具体步骤如下:
步骤1:存储交易前的初始余额
在调用消费接口之前,先单独发起一次/Balance请求,然后在这个请求的Tests标签里添加脚本,把初始余额存入Postman的环境变量(环境变量可以在不同请求间共享数据):
pm.test("保存初始BTC余额", function () { const responseData = pm.response.json(); // 将初始余额存入环境变量,命名为initialBTCBalance pm.environment.set("initialBTCBalance", responseData.BTC); // 可选:先验证初始余额确实是10,确保测试的前置条件正确 pm.expect(responseData.BTC).to.eql(10); });
步骤2:执行消费接口并验证余额变化
执行完消费接口后,再发起一次/Balance请求,在这个请求的Tests标签里,取出之前存的初始余额,和当前返回的余额做对比。修改你原来的测试代码为:
pm.test("验证BTC余额从10变为8", function () { const currentBalance = pm.response.json().BTC; // 从环境变量中取出初始余额,注意转成数字类型(避免字符串对比问题) const initialBalance = parseInt(pm.environment.get("initialBTCBalance")); // 两种验证方式选一种即可: // 方式1:直接验证当前余额是8 pm.expect(currentBalance).to.eql(8); // 方式2:验证余额减少了2(更灵活,比如后续消费金额变化时不用改测试值) // pm.expect(currentBalance).to.eql(initialBalance - 2); });
关键注意事项
- 确保请求执行顺序:必须先跑“初始余额请求”→“消费接口请求”→“验证余额请求”,可以把这三个请求放在一个Postman Collection文件夹里,用Collection Runner按顺序执行。
- 环境变量清理:如果需要重复测试,记得在测试开始前清空环境变量里的
initialBTCBalance,避免旧数据干扰。
内容的提问来源于stack exchange,提问作者Fillipo
相关产品推荐
相关产品推荐

