空手道 DSL - 需要在 POST 请求中将当前日期和过去日期作为参数传递

Karate DSL - Need to Pass Current Date and Past Date as Parameters in the POST request

我需要在空手道的 POST 请求中传递当前日期和过去的日期。这就是我正在做的:

在后台我计算当前日期和过去的日期 - 背景:

def todaysdate =
      """
      function(curdate){
        var currentDate = new Date();
        karate.log(currentDate);
        return currentDate;
      }
      """
    And def minus30date =
      """
      function(pasdate){
        var pastDate = new Date();
        pastDate.setDate(pastDate.getDate() - 30);
        karate.log(pastDate);
        return pastDate;
      }
      """

上面的代码在控制台中给出了这样的日期:

[Date 2020-07-20T16:18:15.369Z] 
[Date 2020-06-20T16:18:15.379Z] 

POST 请求在场景大纲的示例部分中:

| Individual ID Request                                                                   |
| '{  "endDate": "2020-06-20T16:18:15.379Z",  "startDate": "2020-07-20T16:18:15.369Z"  }' |

如何在开始日期和结束日期请求中使用 return 变量?我尝试在请求中放入“#(pastDate)”之类的内容,但它不起作用。我尝试调用场景大纲中的函数并将它们分配给一个变量并在请求中使用它,但这也不起作用。

如有任何帮助,我们将不胜感激。

你的日期函数可以像下面这样修改,

* def getDate =
"""
function(numberOfDays){
  var date = new Date();
  date.setDate(date.getDate() + (numberOfDays));
  return date.toString()
}
"""

之后您可以使用如下参数调用该函数,

* def todaysdate = getDate(0)
* def minus30date = getDate(-30)
* def payload = {"startDate" : "#(todaysdate)", "endDate" : "#(minus30date)"}

* def payload = {"startDate" : "#(getDate(0))", "endDate" : "#(getDate(-30))"}