Karate 空手道websocket发送请求正文替换令牌失败

Karate 空手道websocket发送请求正文替换令牌失败,karate,Karate,我正在用空手道测试websocket,这很有效: Background: * def token = TOKEN * def handler = function(msg){ return msg.startsWith('a[')} * def socket = karate.webSocket(WS_HOST + 'socket/761/f4t0so3p/websocket', handler) Scenario: Demo Real checking dc

我正在用空手道测试websocket,这很有效:

Background:
    * def token = TOKEN
    * def handler = function(msg){ return msg.startsWith('a[')}
    * def socket = karate.webSocket(WS_HOST + 'socket/761/f4t0so3p/websocket', handler)

  Scenario:  Demo Real
  checking dcube-dev
    * socket.send('{"type":"1ffe4b5d___AC_GET_MY_AVAILABLE_TASKS___N","token": "myhardcodedtoken","content":{"msg":null,"counter_api_enabled":false}}')
   
您可以在这里看到,我正在请求主体内硬编码令牌,不太好,因此我尝试将其移出并使用环境令牌,如下所示:

 Background:
    * def token = TOKEN
    * def handler = function(msg){ return msg.startsWith('a[')}
    * def socket = karate.webSocket(WS_HOST + 'socket/761/f4t0so3p/websocket', handler)

  Scenario:  Demo Real
  checking dcube-dev
    * def body = {"type": "1ffe4b5d___AC_GET_MY_AVAILABLE_TASKS___N", "token": '#(token)', "content":  {"msg":null,"counter_api_enabled":false} }
    * print "Body:", body
    * socket.send( '#(body)')
但这总是错误的,似乎味精从未发出过。谁能告诉我如何解决这个问题


谢谢

事实上,我认为你需要改变一下:

* socket.send(body)
把圆括号想象成JS,而不是标准的空手道表达:

还要注意,对于字符串(而不是JSON),可以使用
replace

*def text='hello world'
*替换text.foo='bar'
*匹配文本==“你好,酒吧世界”

事实上,我认为您需要进行以下更改:

* socket.send(body)
把圆括号想象成JS,而不是标准的空手道表达:

还要注意,对于字符串(而不是JSON),可以使用
replace

*def text='hello world'
*替换text.foo='bar'
*匹配文本==“你好,酒吧世界”