空手道 - 遍历请求

Karate - loop through requests

我想请求登录 URL 10 次。我是这样做的:

  Background:
    * def loginAttempt =
    """
      function(times){
        for(i=0;i<times;i++){
          karate.log('Run test round: '+(i+1));
          karate.call('classpath:init/login.feature');
        }
        java.lang.Thread.sleep(1*1000);
      }
    """
  Scenario: Correct
    * call loginAttempt 10

这是 login.feature:

Feature: register a user
  Scenario: call register for a user
    Given url urlBase +  loginUrl
    And request
    """
    {
      "username": #(username),
      "password": #(password)
    }
    """
    When method post

如何将login.feature中的代码直接放到循环中?

答案是你不能。在空手道中重复使用一组特征步骤的唯一方法是将其移动到一个单独的特征文件中。我不明白为什么你认为这是一个问题。这实际上很好,因为您可以重新使用其他测试的登录。

如果你真的想在一个功能中包含所有内容,请在 Java 中写下你想做的事情,然后你可以从一个功能文件中循环调用它。