通过存储在一个文件中比较整个响应正文,并将该文件与postman中的当前响应进行比较

w1e3prcc  于 2022-12-18  发布在  Postman
关注(0)|答案(1)|浏览(133)

我正在为功能测试编写自动化脚本,我的查询是
1.发送请求并将整个响应正文存储在一个文件中。
1.他们再次发送请求并得到新的响应。
1.将新的响应正文与存储的响应文件进行比较。
1.先前响应和新响应应相等
我已经尝试了以下解决方案

var serverData = json.parse (responseBody); 

var JSONtoCompare ={};

tests ["Body is correct"] = serverData === JSONtoCompare;

我收到以下错误:
主体正确|Assert错误:期望假的是真的。
所以请帮助我克服这个问题。我想把整个回复存储在一个文件中,并将其与 Postman 中的新回复进行比较。

4zcjmb1e

4zcjmb1e1#

在Postman中,使用变量来比较JSON对象比文件保存更方便快捷。
此外,通过在输出Body部分x1c 0d1x中选择Save Response,仅可手动保存
您的测试场景可能有两个API调用。
1.第一个API调用将保存到first_response变量中
1.第二次API调用将比较first_response变量和it's response

*两者都是API是带有save参数的保存REST端点

1.第一次调用API,保存在Tests选项卡中

const jsonData = JSON.parse(responseBody);
pm.environment.set('first_response', JSON.stringify(jsonData));

2.第二次API调用,在Tests选项卡中进行比较

const jsonData = JSON.parse(responseBody);
const firstResponse = JSON.parse(pm.environment.get('first_response'));

pm.test('Response is idential to other response', function() {
    const isEqual = _.isEqual(firstResponse, jsonData);
    pm.expect(isEqual).to.be.true;
})

_.isEqual()函数:用于判断给定的两个数组(或对象)是否相同。

因此,可以使用此方法比较两个JSON Postman 响应。

3.自动测试。

也可以通过Run Collectionnewman自动测试
选择Run Collection

开始Run Collection

运行结果

纽曼试验结果

1出口收集


2使用newman运行-应该使用npm install -g newman安装

newman run <collection name>

相关问题