如何在java appium中使用Excel文件中的测试数据和页面对象模型

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

我想将 excel 文件中的测试数据与页面对象模型一起使用,代码如下:

TestData.java

public class TestData {

    public void testData() throws Exception {
        
        String filePath = "C:\\eclipes\\testdata\\testdata.xlsx";
        FileInputStream fis = new FileInputStream(filePath);
        XSSFWorkbook workbook = new XSSFWorkbook(fis);
        
        //get cell data
        XSSFCell data1 = workbook.getSheetAt(0).getRow(1).getCell(0); //A2  
        XSSFCell data2 = workbook.getSheetAt(0).getRow(2).getCell(0); //B2


在我的

Test.java
文件中

public class TestSample extends BaseClass {
    
    @Test
    public void tc_01() throws Exception {
    
    String excelData1 = TestData.data1;
    }

我错过了什么吗?
TestData 类不返回 data1 值。 或者我应该需要在 TestData 类中初始化 data1 和 2 吗?

java pageobjects
1个回答
0
投票

是的,您似乎正在尝试从

data1
类访问
TestData
,而不对其进行初始化或提供任何访问它的方法。
TestData
类应该有一个返回数据的方法,您需要在测试中调用该方法来获取值。

以下是修改

TestData
类的方法:

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;

public class TestData {

    private String filePath;
    private XSSFWorkbook workbook;

    public TestData(String filePath) throws IOException {
        this.filePath = filePath;
        FileInputStream fis = new FileInputStream(filePath);
        this.workbook = new XSSFWorkbook(fis);
    }

    public String getData1() {
        // Assuming the data is stored as a string in the cell
        return workbook.getSheetAt(0).getRow(1).getCell(0).getStringCellValue();
    }

    public String getData2() {
        // Assuming the data is stored as a string in the cell
        return workbook.getSheetAt(0).getRow(2).getCell(0).getStringCellValue();
    }
}

现在,在您的测试类中,您可以创建

TestData
的实例并使用
getData1
方法:

public class TestSample extends BaseClass {
    
    @Test
    public void tc_01() throws Exception {
        TestData testData = new TestData("C:\\eclipes\\testdata\\testdata.xlsx");
        String excelData1 = testData.getData1();
        System.out.println(excelData1);
    }
} 

通过这种方式,您可以将从 Excel 文件读取数据的逻辑封装在

TestData
类中,并且可以通过创建
TestData
的实例并调用适当的方法,在测试类中轻松访问它。

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