JAVA单元测试框架-3-Parameter-DataProvider 参数处理

TestNg由以下几种数据驱动形式:

  1. 直接在testng.xml文件定义简单参数,然后在源文件引用,适合参数数据少的情况
  2. 直接将测试数据写在测试类,然后使用dataProvider来关联数据,这适合用于测试数据少的情况
  3. 将数据写到外部数据文件(如CSV,EXCEL等)中,这适合数据量多的情况

测试使用parameter的方法,在testng.xml文件定义

测试类 参数引入

public class LoginParamsTest {
	 Login login = new Login();

	@Test()
	@Parameters({"username","pwd"})
	public void TestLoginParam(String username,String pwd) {
		login.userLogin(username, pwd);
	}
}

testng.xml参数设置值

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
  <test thread-count="5"  verbose="1"  preserve-order="true" name="Parameter">
     <parameter name="username" value="admin"></parameter>
     <parameter name="pwd" value="123456"></parameter>
         <parameter name="proId" value="1"></parameter>
             <parameter name="count" value="1"></parameter>
        <classes>
            <class name="LoginParam.LoginParamsTest">
               <methods>
                  <include name="TestLoginParam"></include>
               </methods>
            </class>
        </classes> 
  </test> <!-- testng2.xml -->
</suite> <!-- Suite -->

testng.xml只是用来传递简单的参数,如果需要传递复杂的参数,可以使用Dataprovider来给需要的测试提供参数。所谓数据提供者,就是能返回对象数组的方法,并且这个方法被@DataProvider注解标注 

DataProvider注解 来给其他测试方法提供数据的方法。要求该方法必须返回是object[][].

下面讲解实例:

	@Test(dataProvider = "getUsers", dataProviderClass = GenrateData.class)
	public void testLogin(String name1, String pwd1, String expect1) {
		Login login = new Login();
		String ac = login.userLogin(name1, pwd1);
		Reporter.log("用户登陆成功");
		Assert.assertEquals(ac, expect1);
	}
   @DataProvider(name = "getUsers")
    public Object[][] getUsers(){
        return new Object[][]{
                {"","","用户名或密码不能为空"},
                {"login","","用户名或密码不能为空"},
                {"","123456","用户名或密码不能为空"},
                {"admin","admin","欢迎管理员登录"},
                {"","","用户名或密码不能为空"},
                {"login","123456","欢迎用户:login登录"}
        };
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员路同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值