编程多值参数
Programally multi-value param
我需要用多值参数发出请求,它的值必须是一个非常大的数组来测试 api 参数验证。我的实现之一:
Scenario: filter_too_long_multivalue
* def localPath = endPointBase + 'filter'
* def generateLongParam =
"""
function(){
var paramValue = [];
for(var idx = 0; idx<1002; idx++){
paramValue.push('r')
}
var params = {};
params.pl = paramValue;
return params;
}
"""
* def tooLongParam = generateLongParam()
* print tooLongParam
Given path localPath
And params tooLongParam
When method get
Then match response == authorizationSchema.empty
那么请求是:
获取 http://XXXXXXXXXXXXX?pl=%5Bobject+Array%5D
我试过不同的方法,但总是一样的结果...
我怎样才能得到一个weel格式的请求?
谢谢。
是的,您遇到了其中一种极端情况,能否告诉我这是否可行,我也会看看是否可以改进。
有时 JS 函数返回的内容不完全是空手道喜欢的格式。解决方法是使用 json
而不是 def
进行类型转换 - 请参阅文档:https://github.com/intuit/karate#type-conversion
* def fun =
"""
function(){
var temp = [];
for(var i = 0; i < 5; i++) {
temp.push('r');
}
return temp;
}
"""
* json array = fun()
Given url demoBaseUrl
And path 'echo'
And params { pl: '#(array)' }
When method get
Then status 200
结果是:
1 > GET http://127.0.0.1:60146/echo?pl=r&pl=r&pl=r&pl=r&pl=r
我需要用多值参数发出请求,它的值必须是一个非常大的数组来测试 api 参数验证。我的实现之一:
Scenario: filter_too_long_multivalue
* def localPath = endPointBase + 'filter'
* def generateLongParam =
"""
function(){
var paramValue = [];
for(var idx = 0; idx<1002; idx++){
paramValue.push('r')
}
var params = {};
params.pl = paramValue;
return params;
}
"""
* def tooLongParam = generateLongParam()
* print tooLongParam
Given path localPath
And params tooLongParam
When method get
Then match response == authorizationSchema.empty
那么请求是: 获取 http://XXXXXXXXXXXXX?pl=%5Bobject+Array%5D
我试过不同的方法,但总是一样的结果... 我怎样才能得到一个weel格式的请求?
谢谢。
是的,您遇到了其中一种极端情况,能否告诉我这是否可行,我也会看看是否可以改进。
有时 JS 函数返回的内容不完全是空手道喜欢的格式。解决方法是使用 json
而不是 def
进行类型转换 - 请参阅文档:https://github.com/intuit/karate#type-conversion
* def fun =
"""
function(){
var temp = [];
for(var i = 0; i < 5; i++) {
temp.push('r');
}
return temp;
}
"""
* json array = fun()
Given url demoBaseUrl
And path 'echo'
And params { pl: '#(array)' }
When method get
Then status 200
结果是:
1 > GET http://127.0.0.1:60146/echo?pl=r&pl=r&pl=r&pl=r&pl=r