空手道 - 任何非丑陋的方式来发送 API 请求,每个请求正文字段的请求格式错误?
Karate- Any non-ugly way to send API requests with malformed requests for each request body field?
我有一个奇怪的问题,我已经找到了解决方案,但它非常难看。我想知道是否有更好的方法通过空手道或 JS 来完成。我是新手所以请多多包涵。
我正在发送一个 POST 调用,请求正文相当大(总共 19 个字段)。我必须有目的地向 EACH 字段发送格式错误的请求,而不是为键输入合法值,我输入垃圾值(或完全删除该值)并确保我按预期获得 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 和循环函数,但我的知识还不够,我的尝试以惊人的失败告终。
请告知是否有更好的空手道方法and/or JS。
提前感谢您的阅读和抽出时间!
您可以使用循环来构建 JSON。例如:
* def keys = ['foo', 'bar', 'baz']
* def body = {}
* keys.forEach(k => body[k] = 'blah')
* match body == { foo: 'blah', bar: 'blah', baz: 'blah' }
另见
JSON 转换的主要文档:https://github.com/intuit/karate#json-transforms
我有一个奇怪的问题,我已经找到了解决方案,但它非常难看。我想知道是否有更好的方法通过空手道或 JS 来完成。我是新手所以请多多包涵。
我正在发送一个 POST 调用,请求正文相当大(总共 19 个字段)。我必须有目的地向 EACH 字段发送格式错误的请求,而不是为键输入合法值,我输入垃圾值(或完全删除该值)并确保我按预期获得 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 和循环函数,但我的知识还不够,我的尝试以惊人的失败告终。
请告知是否有更好的空手道方法and/or JS。
提前感谢您的阅读和抽出时间!
您可以使用循环来构建 JSON。例如:
* def keys = ['foo', 'bar', 'baz']
* def body = {}
* keys.forEach(k => body[k] = 'blah')
* match body == { foo: 'blah', bar: 'blah', baz: 'blah' }
另见
JSON 转换的主要文档:https://github.com/intuit/karate#json-transforms