Karate-有什么不丑陋的方式来发送每个请求主体字段都包含格式错误的 API 请求吗?

2023-12-11

我有一个奇怪的问题,我已经有了解决方案,但它非常丑陋。我想知道是否有更好的方法通过空手道或 JS 来做到这一点。我对这两方面都是新手,所以请耐心等待。

我正在发送一个带有相当大的请求正文(总共 19 个字段)的 POST 调用。我必须有目的地向每个字段发送格式错误的请求,而不是输入密钥的合法值,而是放置垃圾值(或完全删除该值)并确保按预期返回 400。

例如,请求正文如下(出于说明目的而缩短):

{
    "Age": 20
    "School": "UIC"
    "Sex": "Female"
}

我正在发送如下请求:

* def payload = {"Age":'#(age)',"School":'#(schoolName)', "Sex":'#(gender)'}
* copy payload1 = payload
* copy payload2 = payload
* copy payload3 = payload
* remove payload1.Age
* remove payload2.School
* remove payload3.Sex
* table callTable
    |payload  |status|
    |payload1 | 400  |
    |payload2 | 400  |
    |payload3 | 400  |
* call read (call to the actual POST API here)

现在表面上看,上面的内容可能并不难看,但想象一下对 19 个字段执行此操作,而不是删除,每个字段大约有 5 个不同的请求(而不是上面只有一个“删除”)。

我曾考虑过使用 JS 和循环函数,但我了解不够,而且我的尝试失败了。

请告知是否有更好的方法可以在空手道和/或 JS 中做到这一点。

预先感谢您的阅读和您的时间!


您可以使用循环来构建 JSON。例如:

* def keys = ['foo', 'bar', 'baz']
* def body = {}
* keys.forEach(k => body[k] = 'blah')
* match body == { foo: 'blah', bar: 'blah', baz: 'blah' }

也可以看看https://stackoverflow.com/a/69149219/143475

JSON 转换的主要文档:https://github.com/intuit/karate#json-transforms

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Karate-有什么不丑陋的方式来发送每个请求主体字段都包含格式错误的 API 请求吗? 的相关文章

随机推荐