【问题标题】:Removing quotes from param values in karate request从空手道请求中的参数值中删除引号
【发布时间】:2019-08-02 12:54:36
【问题描述】:

场景:我收到一个空手道请求的响应,格式如下:

idValues = ["123:ABCD-F", "345:CFGB-F", "678:DERF-F"]

然后我需要在上面数组中的值在空手道请求* param 中传递的情况下发出进一步的请求,如下所示:

Given path 'users','details'
* param = 123:ABCD-F, 345:CFGB-F, 678:DERF-F
When method get
Then status 200

问题:我需要将此 id 列表作为逗号分隔值发送,不带 " 引号到 param 关键字。如果将值传递给带引号的参数,空手道会进一步将 id 括在引号内(我认为这是正确的行为),因此我没有得到预期的响应。

想知道是否有办法: 1.从数组中取出值,从开始和结束中删除引号。 2. 将这些作为逗号分隔值传递给 `param' 关键字(如上例所示)。

谢谢

【问题讨论】:

    标签: karate


    【解决方案1】:

    2 条建议。

    karate.forEach() 可以进行任何类型的转换。这是一个例子。如果您觉得这太难看,请使用 Java(在文档中搜索 Java Interop):

    * def idValues = ["123:ABCD-F", "345:CFGB-F", "678:DERF-F"]
    * def fun = function(x, i){ var s = karate.get('temp'); if (i) x = ',' + x; karate.set('temp', s + x) }
    * def temp = ''
    * karate.forEach(idValues, fun)
    * print temp
    

    param总是编码,正如你所说 - 这是正确的行为。所以使用url 并手动连接你需要的路径。有关更多信息,请参阅此答案:

    https://stackoverflow.com/a/55357704/143475

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2022-01-06
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-09
      相关资源
      最近更新 更多