数据和脚本分离之DataProvider

在学习webdriver的时候,写到最后会发现自己填写的数据会和脚本混在一起,这样如果改个数据会很不方便,所以便想怎么把数据独立出来,可以对数据进行统一的管理。顺便MARK一下。。。

testng里面有提供DataProvider的注解,用于做数据驱动,定义一个DataPro 类用于存放数据

public class DataPro {
    @DataProvider(name = "loginSuccess1")
    public static Object[][] data1(){
        return new Object[][]{
                {"wuyy001","123654"},
                {"wuyy002","123654"}
        };
    }
}

创建一个测试类,将DataProvider中的值传入。如果DataProvider的注解没有和要运行的测试类写在同一个脚本中,那么在传数据的时候要加一句dataProviderClass = DataPro.class,指定测试数据Java类,否则数据传不进去,test会被忽略

public class Login_Test {
    WebDriver driver;

    @BeforeTest
    public void openBrowser(){
        driver = SeleniumDriver.openBrowser("firefox","http://www.epwk.us/");
    }

//    @DataProvider(name = "loginSuccess")
//    public static Object[][] data(){
//        return new Object[][]{
//                {"wuyy001","123654"}
//        };
//    }

    @Test(dataProvider = "loginSuccess",alwaysRun = true, dataProviderClass = DataPro.class)
    public void login(String account,String password) {
        driver = SeleniumDriver.openBrowser("firefox","http://www.epwk.us/");
        Action.click(LoginPage.loginButton);
//        输入账号密码登陆
        Action.sendkeys(LoginPage.account, account);
        Action.sendkeys(LoginPage.password, password);
        Action.click(LoginPage.submintButton);

    }

执行结果如下图所示,会将DataProvider中的数据依次传入并执行脚本

运行结果.jpg

但是这种方法有一些弊端:
1.利用DataProvider只是变相的把数据写在一个脚本中而已,并没有将数据和脚本分离开
2.DataProvider中的值是一个数据,用户传入数据仅仅只是一个传入一个值,并不知道传入值的意义在哪里,有些时候传入值时会出错

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 感谢原作者的奉献,原作者博客地址:http://blog.csdn.net/zhu_ai_xin_520/arti...
    狼孩阅读 14,152评论 1 35
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,029评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,123评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,993评论 6 342
  • 内存问题 解决方案: logstash file输入,无输出原因与解决办法 http://blog.csdn.ne...
    perfect_jimmy阅读 2,752评论 0 0