Selenium自动化测试用例的编写和执行-java版添加会员

 创建一个普通的函数,在函数上方标记

@Test

  1. 标记的函数被认为是一条测试用例
  2. 函数的运行:代码报错,标记为用例失败;代码没报错,标记为用例成功
  3. 用例可以在一个类中写多个
  4. 默认互不干扰:默认独立
  5. 用例的依赖:@Test(dependsOnMethos={"用例1",“用例2”,......}),最少依赖一个,用例名就是函数名

@BeforClass

  1. 在类中所有的用例运行之前运行一次:类中有运行的用例函数菜运行;无论用例执行结果,都可以运行

@AfterClass

  1. 在类中所有的用例运行之后运行一次

@Assert.assertEquals(实际结果,预期结果);

  1. driver.getCurrentUrl();获取当前网页的网址
  2. driver.getTitle():获取网页标题,选项卡名称
  3. driver.getPageSource():获取网页源代码

@BeforeMethod

  1. 运行与每条用例前

@AfterMethod

  1. 运行与每条用例后
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);
        }
    }
    
}

 执行结果:

 

posted @ 2020-06-19 10:40  友情天  阅读(626)  评论(1编辑  收藏  举报