Java+Selenium+Testng自動化測試學習(三)— 斷言


1、修改Login類加入斷言;

  斷言:檢查我們操作頁面后得到的結果與我們預期的結果是否一致。

2、使用xml文件運行所有的測試類;

Login類寫入兩個測試用例:

package com.test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

public class Login  {
    WebDriver driver = null;
    //調用定位元素的方法
    ElementLocation elementLocation =  new ElementLocation();
    //在一個方法運行之前運行
    @BeforeMethod
    public void before(){
        System.setProperty("webdriver.chrome.driver", "E:\\selenium\\chromedriver.exe");
        driver = new ChromeDriver();
        String url = "http://xadev.alsolife.com/";
        driver.manage().window().maximize();
        driver.get(url);
    }
    /**
     * 定位登錄界面元素
     * 1.輸入正確手機號碼
     * 2.輸入正確密碼
     * 3.登錄成功
     */
//    @Test
//    public void test_login1(){
//        elementLocation.findElementByCssClearSendkeys("input[type='text']","15211111111",driver);
//        elementLocation.findElementByCssClearSendkeys("input[type='password']","123456",driver);
//        elementLocation.findElementByCssClick("button[type='button']",driver);
//        System.out.println("登錄成功,跳轉到首頁");
//    }

    //輸入錯誤用戶名
    @Test
    public void test_login2(){
        String phone = "153";
        elementLocation.findElementByCssClearSendkeys("input[type='text']",phone,driver);
        elementLocation.findElementByCssClick("button[type='button']",driver);
     //加入斷言
try{ Assert.assertEquals(phone,"15211111111"); }catch(AssertionError e){ System.out.println( "手機號格式有誤:"+e.getMessage()); } } //不輸入手機號 @Test public void test_login3(){ String phone = ""; //輸入手機號 elementLocation.findElementByCssClearSendkeys("input[type='text']",phone,driver); //點擊登錄 elementLocation.findElementByCssClick("button[type='button']",driver); try{ Assert.assertEquals(phone,"15211111111"); }catch (AssertionError e){ System.out.println("手機號不能為空"+e.getMessage()); } } //在一個方法運行完之后運行 @AfterMethod public void after(){ try{ Thread thread = new Thread(); thread.sleep(5000); }catch (InterruptedException e){ e.printStackTrace(); } driver.quit(); } }

創建一個TestSuit.xml文件(名稱隨便起):

<suite name="TestSuite Demo">
    <test name="TestSuite Demo Test">
        <classes>
            <!-- 執行測試用例的類-->
       <!-- name:被執行類的包名
          <class>會有多個 --> <class name="com.test.Login"></class> </classes> </test> </suite>

直接運行TestSuit.xml文件,會執行Login類。

運行結果如下:

 

 

 內容:

1、TestNG中常用的斷言方法:

  assertEquals(String actual, String expected)  //判斷真實值與預期值是否相等,如果不相等測試失敗會拋出一個異常

       assertEqual(String actual,String expected, Stringmessage) //檢查兩個字符串是否相等, 如果不相等,測試失敗, 且在拋出異常中打印出我們提供的第三個message參數信息

  assertTrue(boolean condition) //如果值為true,則用例通過,否則拋出一個AssertionError異常

  assertFalse(boolean condition)

2、測試用例的執行順序,Login類中的兩個測試用例:test_login2,test_login3

  一般是以字符排序,如果字符相同以數字排序。

 

說一下之前的問題:

1、之前存日期,一直沒有保存成功,原因是按鈕元素定位方式不對:

          之前的寫法:driver.findElement(By.ByXPath.xpath("(//button[@type='button'])[1]")).click();

    改正之后:    driver.findElement(By.ByXPath.xpath("//button[contains(@class,'submit-infor')]")).click();

一直以為是日期的定位元素不對一直修改,最后發現是按鈕定位的不正確,但是存在的疑點是:其他內容都能保存成功就日期不行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM