Selenium自动化测试用例的编写和执行-java版添加会员
创建一个普通的函数,在函数上方标记
@Test
- 标记的函数被认为是一条测试用例
- 函数的运行:代码报错,标记为用例失败;代码没报错,标记为用例成功
- 用例可以在一个类中写多个
- 默认互不干扰:默认独立
- 用例的依赖:@Test(dependsOnMethos={"用例1",“用例2”,......}),最少依赖一个,用例名就是函数名
@BeforClass
- 在类中所有的用例运行之前运行一次:类中有运行的用例函数菜运行;无论用例执行结果,都可以运行
@AfterClass
- 在类中所有的用例运行之后运行一次
@Assert.assertEquals(实际结果,预期结果);
- driver.getCurrentUrl();获取当前网页的网址
- driver.getTitle():获取网页标题,选项卡名称
- driver.getPageSource():获取网页源代码
@BeforeMethod
- 运行与每条用例前
@AfterMethod
- 运行与每条用例后
package com.bwf.AutoUITest.day05; import java.util.concurrent.TimeUnit; import org.databene.benerator.anno.Source; import org.databene.feed4testng.FeedTest; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class AddVIP extends FeedTest{ WebDriver driver; @Test public void login() { driver.get("http://172.31.4.157/index.php?m=admin&c=public&a=login"); driver.findElement(By.name("username")).sendKeys("admin"); driver.findElement(By.name("userpass")).sendKeys("password"); driver.findElement(By.name("userverify")).sendKeys("1234"); driver.findElement(By.className("Btn")).click(); Time.sleept(3); //断言 判断用例执行结果 //验证 Assert.assertEquals(driver.getCurrentUrl(), "http://172.31.4.157/index.php?m=admin&c=index&a=index"); } @Test(dependsOnMethods= {"login"},dataProvider="feeder")//添加会员 @Source("data/members.xls") public void addMem(String username,String phone,String sex,String birthday,String email ,String qq) { //进入会员管理界面 driver.findElement(By.linkText("会员管理")).click(); driver.findElement(By.linkText("添加会员")).click(); driver.switchTo().frame("mainFrame"); //添加会员信息 driver.findElement(By.name("username")).sendKeys(username); driver.findElement(By.name("mobile_phone")).sendKeys(phone); if(sex.equals("男")) { driver.findElement(By.xpath("//input[@value='1']")).click(); } driver.findElement(By.name("birthday")).sendKeys(birthday); driver.findElement(By.name("email")).sendKeys(email); driver.findElement(By.name("qq")).sendKeys(qq); // Time.sleept(3); driver.findElement(By.className("button_search")).click(); Time.sleept(3); //判断是否添加成功 Assert.assertTrue(driver.getPageSource().contains(username)); } @BeforeMethod public void beforeMethod() { driver.switchTo().defaultContent(); } @BeforeClass public void beforeClass() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS); } @AfterClass public void aferClass() { Time.sleept(3); driver.quit(); } public void selectWindow() { driver.close(); for (String handle : driver.getWindowHandles()) { driver.switchTo().window(handle); } } }
执行结果: