【问题标题】:Passing multiple parameters using karate.call使用 karate.call 传递多个参数
【发布时间】:2020-08-14 03:47:48
【问题描述】:

我正在尝试在第二个功能文件中调用 API,并从第一个功能文件传递参数。说从第一个 API 响应返回的令牌和当前页面值。这些必须作为第二个 API 的参数传递

   * def activeDetails =
    """
      function(times){
        for(i=0;i<=times;i++){
          karate.log('Run test round: '+(i+1));
          karate.call('getActiveRouteDetails.feature', { token: token, currentPage: i });
        }
        java.lang.Thread.sleep(1*1000);
      }
    """
* call activeDetails totalPages

在我的第二个功能中,我能够打印传递的值,但无法传递参数。你能帮帮我吗

And print currentPage
And print token
And param pageNumber  = '#currentPage'
And param token = token

【问题讨论】:

    标签: automation cucumber karate web-api-testing


    【解决方案1】:

    当您在 JavaScript 块中时,会有一个细微的差别。请阅读:https://github.com/intuit/karate#karate-expressions

    进行此更改:

    var result = karate.call('examples/getDetails.feature', { token: token, currentPage, i });
    

    并且请不要使用像current page 这样的变量名,如果需要帮助,请向 JavaScript 程序员朋友寻求帮助。

    还要注意,最好的做法是尽量避免 JS 代码和循环:https://github.com/intuit/karate#loops

    【讨论】:

    • @PeterSmith 谢谢先生。我会在您提供的链接后更新代码。如上所述,我面临另一个问题。你能提供你的意见吗
    • @anonymous 将此答案标记为“已接受”提出一个新问题,请保持简单明了
    猜你喜欢
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多