自动化测试系列(4)—— testng登场

自动化测试系列(4)—— testng登场

上一篇通过chrome进行了登录操作,现在来验证一下是否登录成功。


和第一天一样,在pom.xml文件下写上引入testng的jar包的代码并导入

<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.14.3</version>
    <scope>test</scope>
</dependency>

用例执行前后操作

自定义测试用例执行前后的操作,以下代码在用例执行前后打印和执行后关闭浏览器进程及驱动

    @BeforeClass
    public void beforeClass() {
        System.out.println("-------用例执行前-------");
    }

    @AfterClass
    public void afterClass(){
        System.out.println("-------用例执行后-------");
        //关闭浏览器进程及驱动
        driver.close();
    }

判断元素是否存在以判断是否登录成功,参考了以下博文的第一段代码
Selenium2(WebDriver)_如何判断WebElement元素对象是否存在

    public boolean doesWebElementExist(WebDriver driver, By selector)
    {

        try
        {
            driver.findElement(selector);
            return true;
        }
        catch (NoSuchElementException e)
        {
            return false;
        }
    }

判断特定元素是否存在+断言以校验是否登录成功

    if(doesWebElementExist(driver,By.cssSelector(".title2"))){
        //断言 校验是否登录成功
        Assert.assertEquals(driver.findElement(By.cssSelector(".title2")).getText(),loanerLoginVo.getLoanerPhone());
    } else {
        throw new RuntimeException("登录失败");
    }

测试代码

测试代码如下

/**
 * @author xian
 * @date 2018/8/2 14:32
 */
public class H5LoanerLoginTest {

    public boolean doesWebElementExist(WebDriver driver, By selector)
    {

        try
        {
            driver.findElement(selector);
            return true;
        }
        catch (NoSuchElementException e)
        {
            return false;
        }
    }

    WebDriver driver = getDriver();

    // 定义数据源
    @DataProvider(name = "list")
    public Iterator<Object[]> createData() throws FileNotFoundException, ExcelException {
        LinkedHashMap<String,String> fieldMap = new LinkedHashMap<String,String>();
        fieldMap.put("手机","loanerPhone");
        fieldMap.put("密码","loanerPassword");
        LoanerLoginVo loanerLoginVo = new LoanerLoginVo();
        //从excel中获取数据
        return ExcelUtil.excelIn(fieldMap, "loanerLogin", "登录信息", loanerLoginVo.getClass());
    }

    @BeforeClass
    public void beforeClass() {
        System.out.println("用例前执行打印本句!");
        System.out.println("每条Test用例是互不相干的");
        System.out.println("用例开始执行…………");
    }

    @AfterClass
    public void afterClass(){
        System.out.println("用例结束后运行");
        //关闭浏览器进程及驱动
        driver.close();
    }

    public WebDriver getDriver(){
        //设置驱动所在位置
        System.setProperty("webdriver.chrome.driver", "E:\\software\\driver\\chromedriver.exe");
        //设置chrome的属性
        ChromeOptions options = new ChromeOptions();
        List<String> op = new ArrayList<String>();
        //实现窗口最大化
        op.add("--start-maximized");
        //实现全屏
        //op.add("start-fullscreen");
        //op.add("allow-running-insecure-content");
        //op.add("--test-type");
        options.addArguments(op);
        //引用谷歌浏览器驱动
        WebDriver driver = new ChromeDriver(options);
        return driver;
    }

    @Test(dataProvider = "list")
    public void action(LoanerLoginVo loanerLoginVo){

        //自定义浏览器窗口大小
        driver.manage().window().setSize(new Dimension(375, 812));
        //打开网页
        driver.get("http://localhost/huinongloan2/");
        //输入手机号
        driver.findElement(By.cssSelector(".login-phone input")).sendKeys(loanerLoginVo.getLoanerPhone());
        //输入密码
        driver.findElement(By.cssSelector(".login-password input")).sendKeys(loanerLoginVo.getLoanerPassword());

        //点击登录
        driver.findElement(By.cssSelector(".login-submit button")).click();

        try {
            //页面等待
            Thread.sleep(500);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        if(doesWebElementExist(driver,By.cssSelector(".title2"))){
            //断言 校验是否登录成功
            Assert.assertEquals(driver.findElement(By.cssSelector(".title2")).getText(),loanerLoginVo.getLoanerPhone());
        } else {
            throw new RuntimeException("登录失败");
        }

    }
}

有问题请留言。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值