Karate 可编程多值参数

Karate 可编程多值参数,karate,Karate,我需要使用多值参数发出请求,它的值必须是一个非常大的数组才能测试api参数验证。我的一个实现: Scenario: filter_too_long_multivalue * def localPath = endPointBase + 'filter' * def generateLongParam = """ function(){ var paramValue = []; for(var idx = 0; idx<100

我需要使用多值参数发出请求,它的值必须是一个非常大的数组才能测试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
场景:过滤器太长\u多值
*def localPath=endPointBase+“过滤器”
*def generateLongParam=
""" 
函数(){
var参数值=[];

对于(var idx=0;idx是的,您遇到了其中一种边缘情况,您是否可以让我知道这是否有效,我还将看看这是否可以改进

有时JS函数返回的格式与Karate不完全一样。解决方法是使用
json
而不是
def
进行类型转换-请参阅文档:


谢谢,很有效。虽然有点复杂,但很有效,非常感谢。
* 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