使用@Dataprovider批注(TestNG)从文本(.txt)文件中获取数据

时间:2014-04-24 18:36:20

标签: selenium selenium-webdriver testng

通常我们将@dataProvider用于Excel文件;如果对于文本(。txt)文件是这样的话,任何示例都会有所帮助..非常感谢任何帮助!!

2 个答案:

答案 0 :(得分:1)

我认为没有理由不去工作。数据提供者函数就像任何其他函数一样(就如何获取数据而言)。您需要确保的是,您返回Object[][]. 在我的情况下,我从@dataprovider.

中的.properties文件中获取凭据

以下是我的表现方式。您可以轻松地将其转换为从任何内容中读取:

@DataProvider(name="creds")
    protected Object[][] returnCreds() {
        Properties cred = new Properties();
        try {
            FileInputStream input = new FileInputStream(System.getProperty("java.io.tmpdir") + "cred.properties");
            cred.load(input);
        } catch (IOException e) {
            ApiHelper.doLog(e.getMessage(),false,ApiHelper.logVerbosity.ERROR);
        }
        Object[][] creds = new Object[1][2];
        creds[0][0] = cred.getProperty("user");
        creds[0][1] = cred.getProperty("pass");
        return creds;
    }

    @Test(dataProvider="creds")
    protected void testCreds(String username, String password) throws Exception {
        System.out.println(username + password);
    }

修改

上面的代码假设您的属性文件只有一个条目:

user=xyz
pass=123

对于search=keyword1,keyword2,keyword3并且需要为每个keyword运行3次搜索的情况,您只需进行一些额外的处理:

String[] splits = cred.getProperty("search").split(",");

现在只需将每个split关键字存储到creds [] []对象的一个​​元素中。留给你作为练习:)

答案 1 :(得分:1)

This repo有实例。请验证。