如何比较CSV和Postman JSON响应值?
如何比较CSV和Postman JSON响应值? 我想比较CSV值和邮递员响应值 例如: 我的CSV: 迭代、城市、拉面 1,“温哥华”,100 2,“旧金山”,84 我的结论是: 我的测试:如何比较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"));
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.