javascript - API 自动化 - 条件测试
问题描述
在您阅读之前,我完全是菜鸟,对此感到抱歉。
我有一些端点会根据调用该端点的次数返回不同的状态。它将返回带有一些额外信息的状态 200 或 409。对于后一种情况,它将返回如下内容:
{
"error": {
"code": "ABC",
"message": "ABC",
"target": null,
"innerError": null,
"details": null
}
}
如果状态等于 200 或者如果状态为 409 并带有“消息”:“ABC”,我希望测试通过。
我一直在以不同的方式尝试它,但我坚持下去。我最近的尝试是这样的:
pm.test("Status is 200 or ABC", function () {
if(pm.response.code !== 200)
{
var jsonData = pm.response.json();
var expectedObject = {
"message": "ABC"
}
}
else
{
(pm.response.to.have.status(200))
console.log("Success")
}
});
即使状态不是 200 并且正文不包含“消息”:“ABC”,它也会通过此测试。
关于我该怎么做的任何想法?
解决方案
您必须进行某种类型的检查才能使测试通过/失败。条件应该是这样的:
var jsonData = pm.response.json();
// expecting that jsonData.message will be equal to "ABC"
pm.expect(jsonData.message).to.eql("ABC")
如有疑问,请查看文档
推荐阅读
- database - PC关闭时Neo4j服务器连接?
- matlab - 在Matlab中找到最小值的最大索引
- svelte - 从 Svelte 项目输出单个 HTML 文件
- docker - NAT 后面的 Docker swarm worker
- javascript - 等到完成功能 - 反应原生
- powershell - PowerShell 内存泄漏
- python - 将其放入环境变量后,python中的graphviz出错
- node.js - 无法通过特快路线发送 PNG
- google-cloud-platform - 用于有状态应用程序的 Google Cloud Platform 设计
- javascript - Sequelize 查询中断