当前位置: 首页 > 知识库问答 >
问题:

使用Cucumber方案大纲处理excel电子表格

吕向荣
2023-03-14

一些背景:

  • 每个迭代都需要有自己的场景。因此,为什么我不使用简单的for循环和row.count.
  • 我充分意识到场景大纲是制作数据表的一种方式,但我的公司希望看到一种POF,我们可以通过Excel集成大型数据集。
  • 当前的设置适用于小型数据集,但是当我们进入大型excel电子表格时,我不想在大纲上键入第n个数字

cucumber代码:

Feature: User is using an excel spreadsheet with cucumber driving it

  Scenario Outline: Data Driven with excel and data sets

   When I am on the amps mainscreen
    Then I input username and passwords with excel row"<row_index>" dataset

    Examples:
    | row_index  |
    | 1          |
    | 2          |
    | 3          |
    | 4          |

步骤文件:

//Excel Steps
@When("^I am on the amps mainscreen$")
public void i_am_on_the_amps_mainscreen()  {
    System.out.println("Im loading");
}
//Excel Steps
@Then("^I input username and passwords with excel row\"([^\"]*)\" dataset$")
public void i_input_username_and_passwords_with_excel_row_dataset(int rownum)    throws IOException {
    login.readExcel(rownum);
}

实际代码:

 public void readExcel (int row) throws IOException{

    File src=new File("src/test/resources/username.xlsx");
    FileInputStream fis=new FileInputStream(src);
    XSSFWorkbook srcBook= new XSSFWorkbook(fis);
    XSSFSheet sourceSheet = srcBook.getSheetAt(0);

    XSSFRow sourceRow = sourceSheet.getRow(row);
    XSSFCell username=sourceRow.getCell(0);
    XSSFCell password=sourceRow.getCell(1);
    String userExcel = username.getStringCellValue();
    String pwExcel = password.getStringCellValue();
    System.out.println("The username is" +userExcel);
    System.out.println("The password is" +pwExcel);
    log.info("The username on " +row + " is: "+userExcel);
    log.info("The password on "+row+ " is: "+pwExcel);
    driver.findElement(txtbox_username).sendKeys(userExcel);
    driver.findElement(txtbox_password).sendKeys(pwExcel);
    driver.findElement(btn_logon).click();

}

共有1个答案

钱弘壮
2023-03-14

您可以将QMetry自动化框架与gherkin Factory一起使用。它支持在特性文件之外提供的测试数据,例如excel、xml、json、csv或数据库。您可以为以下示例提供数据文件:

示例:{'datafile':'resources/testdata.xls'}

下面是您可以检查的示例。

 类似资料:
  • 使用方案大纲时,报表生成两次方案,一次不带颜色,另一次带颜色(如图像所示)。 只有在使用方案大纲时才会发生这种情况,而在使用方案时不会发生这种情况。 这里是我的pom.xml'http://maven.apache.org/xsd/maven-4.0.0.xsd“>4.0.0组Maven ArtifactMaven 0.0.1-快照pom项目Maven http://maven.apache.or

  • 我使用Cucumber JVM和Selenium,我想在场景大纲中重用浏览器。为了做到这一点,我希望能够访问@Before和@After挂钩中的场景大纲,这样我就可以知道我是否还在同一个场景大纲中,以及我是否已经到达了场景大纲的最后一行。有办法做到这一点吗?我只看到一种方法来得到这个场景。我可以从场景的名称看出它是场景大纲的一部分,但我看不出有什么方法可以知道我是否在最后一个场景上,从而知道在结束

  • 本文向大家介绍Python使用OpenPyXL处理Excel表格,包括了Python使用OpenPyXL处理Excel表格的使用技巧和注意事项,需要的朋友参考一下 官方文档: http://openpyxl.readthedocs.io/en/default/ OpenPyXL库 --单元格样式设置 单元格样式的控制,依赖openpyxl.style包,其中定义有样式需要的对象,引入样式相关: f

  • 本文向大家介绍使用Python处理Excel表格的简单方法,包括了使用Python处理Excel表格的简单方法的使用技巧和注意事项,需要的朋友参考一下 Excel 中的每一个单元,都会有这些属性:颜色(colors)、number formatting、字体(fonts)、边界(borders)、alignment、模式(patterns) 等等。 xlsxwriter 格式处理,将待添加数据转换

  • 我是Python新手。我需要将程序中的一些数据写入电子表格。我在网上搜索过,似乎有很多可用的软件包(xlwt、XlsXcessive、openpyxl)。其他人建议写信给一家公司。csv文件(从未使用过csv,也不了解它是什么)。 程序非常简单。我有两个列表(float)和三个变量(string)。我不知道这两个列表的长度,它们可能不会是相同的长度。 我希望布局如下图: 粉红色列将具有第一个列表的