如何比较CSV和Postman JSON响应值?

如何比较CSV和Postman JSON响应值?,postman,Postman,如何比较CSV和Postman JSON响应值? 我想比较CSV值和邮递员响应值 例如: 我的CSV: 迭代、城市、拉面 1,“温哥华”,100 2,“旧金山”,84 我的结论是: 我的测试: pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.args.ramen).to.eql(pm.iterationData.get("Ramen"));

如何比较CSV和Postman JSON响应值? 我想比较CSV值和邮递员响应值

例如:

我的CSV:

迭代、城市、拉面

1,“温哥华”,100

2,“旧金山”,84

我的结论是:

我的测试:

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.args.ramen).to.eql(pm.iterationData.get("Ramen"));
});
注意:我从下面的URL获取文件。只有测试是我的。

到目前为止,我发现以下错误:


您的测试名称| AssertionError:预期'84'深度等于84

尝试将csv整数值转换为字符串,并使用
to.equal
而不是
to.eql
(相当于
to.deep.equal
):


CSV数据文件中
“Ramen”
的预期值为
84
,类型为Number。 但是您的服务返回属性
“ramen”
,其值为
“84”
,类型为字符串

你的测试失败是有原因的

当然,您可以通过强制转换来更改测试数据。但这不是一个好的测试,因为您正在运行时将预期的测试数据更改为绿色测试

如果响应正常,则测试数据不会: 您需要将CSV中的“Ramen”值存储为字符串:

1,"Vancouver","100"
2,"San Francisco","84"
and so on. 
如果testdata正常,则响应不正常:
您必须修复错误的服务行为。

问题在于它将字符串“84”与整数84进行比较,这就是这里“deep”的含义。也许您必须使用另一个函数来检查是否相等,而不是检查类型是否相等。这是为第一个值传递的。但第二个值来自CSV,作为“84\r”而不是“84”。这是为第一个值传递的。但是第二个值是CSV中的'84\r'而不是'84'。有人能帮忙吗?这与这个问题类似。但是对于JSON。
1,"Vancouver","100"
2,"San Francisco","84"
and so on.