測試用例的萬能公式:功能測試+界面測試+性能測試+易用性測試+安全性測試+兼容性測試
自動化的主要目的就是用來進行回歸測試
新產品--第一個版本 (具備豐富的功能),將產品的整體進行測試,人工創造一個自動化測試用例,在n個版本的時候,在進行測試的時候,只需要應用之前的測試化用例即可測出歷史的功能是否達標,然后將原來的測試話用例和新的測試化用例相結合以此完成回歸測試
手工測試仍然占主導地位
自動化測試只是測試工作中的一小部分測試行為
對于中大型企業來說自動化測試是必不可少的一部分!!
我們平時認為
自動化:模擬人的行為執行一系列的操作
手工測試:找到瀏覽器軟件,鼠標點擊啟動手工驅動
自動化測試:驅動--打開瀏覽器
不同的瀏覽器需要不同的瀏覽器驅動,而不同版本的瀏覽器也需要不同版本的驅動~
在后端test中創建兩個類,在pom文件中導入webdrivermanager,selenium,以此來進行操作,然后在代碼中引入驅動,進行想要的搜索
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;public class FristTest {//測試百度搜索關鍵詞;迪麗熱巴void test01() throws InterruptedException {//1. 打開瀏覽器 使用驅動來打開WebDriverManager.chromedriver().setup();//增加瀏覽器配置:創建驅動對象要強制指定允許訪問所有的鏈接ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver driver = new ChromeDriver(options);Thread.sleep(3000);//2. 輸入完整的網址:https://www.baidu.comdriver.get("https://www.baidu.com");Thread.sleep(3000);//3. 找到輸入框,并輸入關鍵詞:迪麗熱巴driver.findElement(By.cssSelector("#kw")).sendKeys("迪麗熱巴");Thread.sleep(3000);//4. 找到百度一下按鈕,并點擊driver.findElement(By.cssSelector("#su")).click();Thread.sleep(3000);//5. 關閉瀏覽器driver.quit();}
}
如何選中前端中cssSelector和xpath等元素
點擊頁面中的元素
右鍵點擊選中的元素
復制selector即可
百度輸入框id選擇器:#kw? ? xpath: //*[@id="kw"]
獲取HTML頁面所有的節點
//*
獲取HTML頁面指定的節點/ /[指定節點]獲取一個節點中的直接子節點/獲取一個節點的父節點..實現節點屬性的匹配[@...]
?看報錯的時候要看
?登陸狀態下和非登陸狀態下自動化打開的頁面不一定相同,因為在做自動化測試一定要注意頁面狀態的一致性
findElement(By)在頁面查找元素,返回值 WebElement
findElements (By)在頁面查找元素,返回值為List<WebElement>
點擊/提交對象click()除了按鈕之外,頁面的絕大多數元素都可以點擊頁面隱藏的標簽、不可見的標簽就不能點擊模擬按鍵輸入SendKeys("")清除文本內容
輸入文本后又想換一個新的關鍵詞,這里就需要用clear()獲取文本信息
如果判斷獲取到的元素對應的文本是否符合預期呢?獲取元素對應的文本并打印一下~~
獲取文本信息:getText()
如果是在input中的value那么應該用getAttribute (String)
String txt = driver.findElement(By.cssSelector("#su")).getAttribute( name: "value");
System.out.printLn("百度一下按鈕上的文字為:"+txt);獲取當前頁面標題
getTitle()獲取當前頁面URL
getCurrentUrl()//窗口最大化
driver.manage().window() .maximize();
//窗口最小化
driver.manage().window().minimize();
//全屏窗口
driver.manage().window() .fullscreen()
//手動設置窗口大小
driver.manage().window().setSize(new Dimension(1024,768));
切換標簽頁
1)獲取當前頁面句柄:
driver.getWindowHandle();返回值:String
3)獲取所有頁面句柄:
driver.getwindowHandles()
切換句柄
driver.switchTo().window(w) ;
屏幕截圖
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile,new File( "my.png"));