Selenium 測(cè)試用例編寫(xiě)

編寫(xiě)Selenium測(cè)試用例就是模擬用戶在瀏覽器上的一系列操作,通過(guò)腳本來(lái)完成自動(dòng)化測(cè)試。
編寫(xiě)測(cè)試用例的優(yōu)勢(shì):
開(kāi)源,免費(fèi)。
支持多種瀏覽器 IE,F(xiàn)irefox,Chrome,Safari。
支持多平臺(tái) Windows,Linux,Mac。
支持多語(yǔ)言 Python,Java,C#。
對(duì) Web 支持良好。
簡(jiǎn)單,靈活。
支持分布式測(cè)試用例執(zhí)行。
引入依賴
引入依賴是為了調(diào)用 webdriver 中的方法來(lái)與瀏覽器進(jìn)行交互以實(shí)現(xiàn)操作步驟。
Python版本
from selenium import webdriver
Java版本
import org.openqa.selenium.By;import org.openqa.selenium.chrome.ChromeDriver;
測(cè)試用例的流程
測(cè)試用例是為了實(shí)施測(cè)試從而向被測(cè)試的系統(tǒng)提供的一組集合,這組集合包含:測(cè)試環(huán)境、操作步驟、測(cè)試數(shù)據(jù)、預(yù)期結(jié)果等。
注意:一條測(cè)試用例的最終結(jié)果只有一個(gè):成功或者失敗。
三大核心要素為 :標(biāo)題 、步驟 、預(yù)期結(jié)果
標(biāo)題:是對(duì)測(cè)試用例的描述,標(biāo)題應(yīng)該清楚的表達(dá)測(cè)試用例的內(nèi)容
步驟:對(duì)測(cè)試執(zhí)行過(guò)程進(jìn)行描述
預(yù)期結(jié)果:提供測(cè)試執(zhí)行的預(yù)期結(jié)果,預(yù)期結(jié)果一般是根據(jù)需求得出,如果實(shí)際結(jié)果和預(yù)期結(jié)果一致則測(cè)試通過(guò),反之失敗。
實(shí)戰(zhàn)演練
首先是在代碼的最上面導(dǎo)入了 Selenium 的包,其次是測(cè)試方法命名、測(cè)試步驟、斷言。測(cè)試用例內(nèi)容是要斷言打開(kāi)百度頁(yè)面所展現(xiàn)的內(nèi)容與所期望的值是否相等。
Python版本
from selenium import webdriver
# 測(cè)試的標(biāo)題即 test_search
def test_search():
? ? driver = webdriver.Chrome()
? ? # 測(cè)試的步驟
? ? driver.get('https://www.baidu.com')
? ? search = driver.find_element_by_id('su').get_attribute('value')
? ? # 斷言預(yù)期結(jié)果
? ? assert search == "百度"
Java版本
import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.chrome.ChromeDriver;public class webTest { ? ?private ChromeDriver driver; ? ? ? ?void search() throws InterruptedException { ? ? ? ?//實(shí)例化driver ? ? ? ?driver = new ChromeDriver(); ? ? ? ?//打開(kāi)網(wǎng)頁(yè) ? ? ? ?driver.get("https://www.baidu.com"); ? ? ? ?//測(cè)試的步驟 ? ? ? ?String data = driver.findElement(By.id("su")).getAttribute("value"); ? ? ? ?assert data.equals("百度"); ? ?} }
這里要斷言打開(kāi)百度頁(yè)面所展現(xiàn)的內(nèi)容與所期望的值是否相等。因?yàn)閷?shí)際獲取到的內(nèi)容應(yīng)該是百度一下而不是百度,所以斷言錯(cuò)誤。
FAILED ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [100%]test_demo.py:3 (test_search)
百度一下 != 百度
Expected :百度
Actual ? :百度一下
<Click to see difference>
def test_search():
? ? ? ?driver = webdriver.Chrome()
? ? ? ?driver.get('https://www.baidu.com')
? ? ? ?search = driver.find_element_by_id('su').get_attribute('value')
> ? ? ? assert search == "百度"E ? ? ? AssertionError: assert '百度一下' == '百度'test_demo.py:9: AssertionError
跟著實(shí)戰(zhàn)演練,開(kāi)啟編寫(xiě)Selenium測(cè)試用例之旅吧~