如何获取已执行的Datatable行的每一行的状态

问题描述 投票:-1回答:1

我正在测试一个大约有100个用户名和密码的场景。我应该逐个使用每个用户名 - 密码对,然后尝试登录到应用程序。注销。再次在同一浏览器中登录而不关闭它。如果任何凭证无效,则只应将该特定行标记为失败,并且应继续执行

我试图搜索解决方案但无法获得任何正确的解决方案

Scenario: To test if the given list of users credentials are valid

    Given user is already at Login page
    And user enters credentails

|   Username    |   Password    |
|   user1       |   password1   |
|   user2       |   invalid         |
|   user3       |   password3   |
|   user4       |   password4   |
|   user5       |   password5   |
|   user6       |   password6   |
|   user7       |   password7   |

此处,第二行数据表的状态应在报告中标记为失败,除失败的数据外,应执行其余数据。传递的数据应在报告中标记为PASS。如何实现这一目标。

eclipse cucumber pom.xml reporting junit-runner
1个回答
-1
投票

首先,您需要按照以下大纲修改方案。

 Scenario Outline: To test if the given list of users credentials are valid
    Given user is already at Login page
    And In credentails, user enters name as <Username> and Pwd as <Password>

    Examples: Checking Login Scenarios
      | Username | Password  |
      | user1    | password1 |
      | user2    | invalid   |

第二个让我们考虑下面是你的步骤实现

package my.package.name

import cucumber.api.PendingException;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.And;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
public class MyStepDefinitions {

    @Given("^user is already at Login page$")
    public void user_is_already_at_login_page() throws Throwable {
        throw new PendingException();
    }

    @And("^In credentails, user enters name as (.+) and Pwd as (.+)$")
    public void in_credentails_user_enters_name_as_and_pwd_as(String username, String password) throws Throwable {
        throw new PendingException();
    }

}

第三个让我们说在上面的步骤实现中,你写入操作登录到站点并且操作失败,因为密码无效。现在,根据您使用的报告,您需要根据报告的API编写一个方法,就像我正在共享范围一样。

public static synchronized void logFail(String message) {
    try {
        testReport.get().fail("<details>" + "<summary>" + "<b>" + "<font color=" + "red>" + "</font>" + "</b >" + "</summary>" + "<br>" + "<h6>" + "<b>" + BasePage.returnLocator(message) +  "</b>"+ "</h6>" + "</br>" + message +"</details>"+" \n");
    }
    catch(Exception e) {            
    }   
}

最后,按照上面的层次结构,您可以在报告中打印Passed / Failed。

© www.soinside.com 2019 - 2024. All rights reserved.