使用空手道框架和javascript,场景不断循环

时间:2018-10-05 15:29:35

标签: javascript karate

我使用空手道框架调用池化JS函数,如下所示。即使实际状态已完成,它也会重复执行该方案。我想知道如何停止循环,并且在实际状态完成后无需再次调用该场景

  """
  function(status) {
    var actualstatus = null
    while (actualstatus != 'Complete') {
      var packageId = {"packageid": packageid}; 
      var result = karate.call('extractProgress.feature',packageId); 
      var greeting = result.response;

      if(greeting.payload.progressStatus == status) 
        { actualstatus = greeting.payload.progressStatus
         return;} 
      actualstatus = greeting.payload.progressStatus
      java.lang.Thread.sleep(100); 
    }
  }
  """ 

场景:一个

* def packageId = packageid
* def result = call read('Progress.feature') {packageid: '#(packageId)'}
* def current = result.response
* def status = 'Complete'
* call waitUntil status

1 个答案:

答案 0 :(得分:1)

不确定您的JS,请在可能的情况下寻求附近人的帮助。

这是我的尝试,因为我无法完全复制您的环境。把事情简单化。另外,如果持续时间太长等,您还可以添加逻辑以退出循环。

"""
  function(status, id) {
    while (true) {
      var jsonArg = { packageid: id }; 
      var result = karate.call('extractProgress.feature', jsonArg); 
      var response = result.response;
      if (response.myPath == status) {
        return;
      }
      java.lang.Thread.sleep(100); 
    }
  }
"""