testng之DataProvider参数化

背景:当我们同一条用例需要传入不同的参数进行测试时,我们可以每组数据写一个用例,但是这样代码冗余太多。

所以我们可以想着:同一个用例传入不同的参数。

例如:当我们测试用户登录,我们测试场景1:用户A,密码正确; 场景2:用户B,密码不正确

我们只是编写一个登录测试用例,而传入的参数是两组不同的数据。

 

方法:

@Test(dataProvider='参数化名称')

@DataProvider(name='参数化名称')

 

代码演示:

 

public class DataProviderTest {

    @Test(dataProvider = "stuData")  //这个名称需要和@DataProvider(name='xx')是一样的才能找到
    public void studentTest(String name,int age){
        System.out.println("name="+name+","+"age="+age);

    }

    /**
     * 通过一个方法获取到参数数,并且return。使用@DataProvider()进行注释
     * @return
     */
    @DataProvider(name="stuData")
    public Object[][] dataProvider(){
        Object[][] o =new Object[][]{   //注意我们这个类型必须是Object
                {"zhangsan",20},
                {"lisi",30},
                {"wangwu",40}
        };
        return o;
    }
}

//运行结果

name=zhangsan,age=20

name=lisi,age=30

name=wangwu,age=40

 

posted on 2021-05-28 23:09  jesse_zhao  阅读(222)  评论(0编辑  收藏  举报

导航