testng参数化学习

有两种方式:

1.使用testng.xml----@parameter ,适合参数化简单的测试数据

2.数据提供者 ------@dataProvider,适合复杂的测试数据,如对象、从数据库和文件中读取的数据等。

 

一.使用@parameter参数化登录脚本

脚本代码:

@Test

  @Parameters({"username","pwd","expect"})

  public void testLogin(String username,String pwd,String expected) {

  WebElement name = driver.findElement(By.id("login_name"));

  name.sendKeys(username);

  WebElement passwd = driver.findElement(By.id("user_pass"));

  passwd.sendKeys(pwd); 

  WebElement clk = driver.findElement(By.className("btn_01"));

  clk.click();

  WebElement message = driver.findElement(By.className("error2"));

  System.out.print(message.getText());

  assertEquals(expected,message.getText());

  }

Testng.xml配置参数:

<?xml version="1.0" encoding="UTF-8"?>

<suite name="Suite" parallel="false">

  <test name="Test">

      <parameter name="username" value="ranling"/>

      <parameter name="pwd" value=""/>

      <parameter name="expect" value="用户名或密码不能为空"/>

    <classes>

      <class name="com.sample.sampleTest"/>

    </classes>

  </test> <!-- Test -->

</suite> <!-- Suite -->

.testng.xml文件中通过<parameter/>设置参数、参数值,但要注意范围,<suite><test>标签定义了suitetest两种测试范围。满足规律如下:

1.在suit范围内定义某个参数对所有的test都有效

2.在test范围内定义某个参数只针对当前test有效

3.在suittest中有某个相同的参数,test范围内的参数会自动屏蔽suit中的参数

 

二.使用@dataProvider参数化登录脚本

 

//1.声明数据提供者,并命名

      @DataProvider(name="keyword")

  public Object[][] keywordProiverd(){

  return new Object[][]{{"hi"},{"nihao"}};

  }

//2.为测试方法提供测试数据

  @Test(dataProvider="keyword")

  public void testProvider(String key){

  System.out.println(key);

  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值