一、修改Login類加入斷言;web
斷言:檢查咱們操做頁面後獲得的結果與咱們預期的結果是否一致。chrome
二、使用xml文件運行全部的測試類;測試
Login類寫入兩個測試用例:ui
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文件(名稱隨便起):url
<suite name="TestSuite Demo"> <test name="TestSuite Demo Test"> <classes> <!-- 執行測試用例的類-->
<!-- name:被執行類的包名
<class>會有多個 --> <class name="com.test.Login"></class> </classes> </test> </suite>
直接運行TestSuit.xml文件,會執行Login類。spa
運行結果以下:code
內容:xml
一、TestNG中經常使用的斷言方法:blog
assertEquals(String actual, String expected) //判斷真實值與預期值是否相等,若是不相等測試失敗會拋出一個異常排序
assertEqual(String actual,String expected, Stringmessage) //檢查兩個字符串是否相等, 若是不相等,測試失敗, 且在拋出異常中打印出咱們提供的第三個message參數信息
assertTrue(boolean condition) //若是值爲true,則用例經過,不然拋出一個AssertionError異常
assertFalse(boolean condition)
二、測試用例的執行順序,Login類中的兩個測試用例:test_login2,test_login3
通常是以字符排序,若是字符相同以數字排序。
說一下以前的問題:
一、以前存日期,一直沒有保存成功,緣由是按鈕元素定位方式不對:
以前的寫法:driver.findElement(By.ByXPath.xpath("(//button[@type='button'])[1]")).click();
改正以後: driver.findElement(By.ByXPath.xpath("//button[contains(@class,'submit-infor')]")).click();
一直覺得是日期的定位元素不對一直修改,最後發現是按鈕定位的不正確,可是存在的疑點是:其餘內容都能保存成功就日期不行。