51Testing软件测试论坛

标题: 【佳乐Selenium】DAY-4 参数化XML [打印本页]

作者: 赵佳乐SMILE    时间: 2015-3-3 15:58
标题: 【佳乐Selenium】DAY-4 参数化XML
转载
http://www.51testing.com/html/87/300987-832115.html

51上的代码,看着太费劲儿

四种方法实现自动化的逻辑部分和数据处理独立性

介绍四种方法实现selenium自动化逻辑部分和测试数据的独立的常用方法:
1) 使用testng.xml设置参数
2) 使用DataProviders提供参数
3) 使用excel表格读取测试数据
4) 使用读取mysql数据库的方法获取测试数据


   其中1,2两种方法都涉及到TestNG的使用,请大家用此两种方法之前熟悉TestNG,在项目的Java Build Path里边需要添加testng.jar这个包。

一、login class
package com.test.com.test.java;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.testng.annotations.Test;

@Test
public class login {

   @FindBy(id="idInput")
   private WebElement yonghuming;

   @FindBy(id="pwdInput")
   private WebElement mima;
   
   @FindBy(id="loginBtn")
   private WebElement denglu;
   
   public void login (WebDriver driver,String username,String password)

   {

    driver.get("http://mail.163.com");

    yonghuming.sendKeys(username);
    mima.sendKeys(password);

    denglu.click();
   }

   
}

二、使用testng.xml设置参数
testLogin1.xml里边的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite" parallel="false">
<parameter name="username" value="justForYourTesting"/>
<parameter name="password" value="135135"/>
  <test name="testLogin1">
    <classes>
      <class name="com.test.com.test.java.testLogin1"/>
    </classes>
  </test> <!-- Test -->
</suite> <!-- Suite -->

上面的username和password两个参数是登录163邮箱的时候用到的用户名和密码。

三、testLogin1 调用
package com.test.com.test.java;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.PageFactory;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class testLogin1 {

    @Test

@Parameters({"username","password"}) // username和password两个变//量名称必须和testLogin.xml里边的参数名字一样
    public void testLogin(String username, String password)

    {

     System.setProperty("webdriver.chrome.driver", "C:/chromedriver.exe");

     WebDriver driver = new ChromeDriver();

     login m=PageFactory.initElements(driver, login.class);

     m.login(driver,username,password);
     }

}

当程序运行到@Parameters({"username","password"})这条注解的时候会自动去testLogin.xml里边查找这两个参数的值。然后将这两个参数的值作为实参传递给testLogin(String,String)方法。
这种方法只能通过右键点击testLogin1.xml选择Run as > TestNG Suite的方式运行了.
作者: Shawn_xiao    时间: 2015-5-13 11:20
不错 学习了~
作者: janehost    时间: 2015-7-16 16:12
楼主太好了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2