java - Cucumber Selenium 使用 Excel 文件作为数据表

标签 java excel selenium automation cucumber

我使用 Cucumber-Selenium 和 Excel 作为我的数据文件,我的问题是如何根据 Excel 上的数据多次运行我的功能文件。例如,我在Excel中有10行数据,想要逐条运行它,在第一行数据之后它将移动到下一行并执行它。

功能文件: 场景:登录

Given I open the browser and access this URL
When I enter the "<Username>" and "<Password>"
Then I am able to login

步骤定义: 公共(public)类登录{

 WebDriver driver = null;
 String url;        


@Given("^I open the browser and access this URL$")
public void navigateToUrl() throws Throwable{

    System.setProperty("webdriver.chrome.driver", "");
    driver = new ChromeDriver();
    url = DataTable.getDataTableValue(0, 2, 2);
    driver.get(url);
    driver.manage().window().maximize();
}

@When("^I enter the \"([^\"]*)\" and \"([^\"]*)\"$")
public void enterCredentials(String userName, String password ) throws Throwable {

    userName = DataTable.getDataTableValue(0, 1, 1);
    password = DataTable.getDataTableValue(0, 1, 2);

    driver.findElement(By.id("username")).sendKeys(userName);
    driver.findElement(By.id("password")).sendKeys(password);   
}

@Then("^I am able to login$")
public void clickLoginButton() throws Throwable {
    driver.findElement(By.id("Login")).click();
}

}

这是我的数据表(Excel 文件)

|ID |用户名 |密码

|ID1 |用户名1 |密码1

|ID2|用户名2 |密码2

|ID3 |用户名3 |密码3

|ID4|用户名4 |密码4

最佳答案

如果您想要迭代 Excel 工作表中的内容,您需要在步骤定义中的代码中实现该操作。在 Gherkin 中不支持这样做。

Apache POI 可能是实现迭代时的一个选项。

重要的是要理解行为驱动开发 (BDD) 的目的是沟通。小 cucumber 是一种沟通方式。几乎任何理解该问题的人都可以阅读和理解 Gherkin 场景。

如果您在 Gherkin 中掌握了一些真理,在 Excel 中掌握了一些真理,那么您最终会遇到这样的情况:您不使用 Cucumber 和 Gherkin 进行通信,而是将其用作测试工具。这可能没问题。但如果你使用 Cucumber 作为测试工具,还有其他工具可能更容易使用。 JUnit 就是其中之一。

关于java - Cucumber Selenium 使用 Excel 文件作为数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839635/

相关文章:

excel - 当 Word 未打开时,从 Excel 模板创建 Word 文档

regex - 具有 R1C1 表示法的 Excel 单元格的正则表达式

excel - 自动扩大Excel数组公式的范围(无需宏)

ajax - 如何在 selenium 中检测是否通过 ajax 加载了 javascript 文件?

java - JSF 2.0 : data not updated before the view is rendered

java - 如何使用内连接获取 'next column'值?

java运行cmd命令

ruby - 下拉菜单在应该被选中的时候没有被选中……为什么?

linux - Selenium ::WebDriver::Error with Firefox & Chrome

java - 我可以在 Oracle 的 JDK7 JSR223 JavaScript 引擎中扩展 Java 类吗?