繁体   English   中英

如何将我的数据从 csv 文件获取到 DataProvider

[英]How can I get my data from csv file to DataProvider

我需要从我的 csv.file 中获取数据(用户名和密码),并使用它在 Selenium 中使用 DataProvider 注册一些新用户。 我已经让 Reader 来读取这个文件,但是我不能把这个数据正确地放在 DataProvider 中。 请帮帮我。

我创建了一种读取 csv 文件的方法,并与提供者一起测试工作。

我的方法 public static List users = new ArrayList<>();

public static Object openCSVReader() throws IOException {

    CSVReader reader = new CSVReader(new FileReader(System.getProperty("user.dir") + "\\src\\test\\resources\\users.csv"), ',');

    // read line by line
    String[] record = null;

    while ((record = reader.readNext()) != null) {
        User user = new User("username", "password");
        user.setUsername(record[0]);
        user.setPassword(record[1]);
        users.add(user);
    }


    reader.close();
    return users;

}

我的测试

@Test(dataProvider = "registration")
    public void registerCSVFiles(String username, String password) throws IOException {
        registerPage.writeInForm(user);
        registerPage.writeFile(user);
        registerPage.selectUserAndRegister();
    }
}
    @DataProvider(name = "registration")
    public static Object[][] credentials() throws IOException {
        return new Object[][]{
                {users.get(0)},{users.get(1)}
        };
    }

我无法从我的 openCSVReader 中获取数据。 请帮助

以下方法可能有助于满足您的要求。

csv 文件的示例内容如下。 (用户.csv)

用户 1,密码 1

用户 2,密码 2

测试类组成如下;

@DataProvider(name = "userDetails")
public static Object[][] readCsv() throws IOException {
    CSVReader csvReader = new CSVReader(new FileReader(System.getProperty("user.dir")+"/src/test/resources/users.csv"),',');
    List<String[]> csvData=csvReader.readAll();
    Object[][] csvDataObject=new Object[csvData.size()][2];
    for (int i=0;i<csvData.size();i++) {
        csvDataObject[i]=csvData.get(i);
    }
    return  csvDataObject;
}

@Test(dataProvider = "userDetails")
public void userLoginTest(String userName,String password){
    System.out.println(userName+" "+password);
}

注意: DataProvider 方法应位于存在测试方法的同一类中,或者应位于其基类中

使用的库:OpenCSV

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM