編寫Selenium測試用例就是模擬用戶在瀏覽器上的一系列操作,通過腳本來完成自動化測試。
編寫測試用例的優(yōu)勢:
開源,免費。
支持多種瀏覽器 IE,F(xiàn)irefox,Chrome,Safari。
支持多平臺 Windows,Linux,Mac。
支持多語言 Python,Java,C#。
對 Web 支持良好。
簡單,靈活。
支持分布式測試用例執(zhí)行。
引入依賴
引入依賴是為了調(diào)用 webdriver 中的方法來與瀏覽器進行交互以實現(xiàn)操作步驟。
- Python版本
from selenium import webdriver
測試用例的流程
測試用例是為了實施測試從而向被測試的系統(tǒng)提供的一組集合,這組集合包含:測試環(huán)境、操作步驟、測試數(shù)據(jù)、預期結(jié)果等。
注意:一條測試用例的最終結(jié)果只有一個:成功或者失敗。
三大核心要素為 :標題 、步驟 、預期結(jié)果
標題:是對測試用例的描述,標題應該清楚的表達測試用例的內(nèi)容
步驟:對測試執(zhí)行過程進行描述
預期結(jié)果:提供測試執(zhí)行的預期結(jié)果,預期結(jié)果一般是根據(jù)需求得出,如果實際結(jié)果和預期結(jié)果一致則測試通過,反之失敗。
實戰(zhàn)演練
首先是在代碼的最上面導入了 Selenium 的包,其次是測試方法命名、測試步驟、斷言。測試用例內(nèi)容是要斷言打開百度頁面所展現(xiàn)的內(nèi)容與所期望的值是否相等。
- Python版本
from selenium import webdriver
# 測試的標題即 test_search
def test_search():
driver = webdriver.Chrome()
# 測試的步驟
driver.get('https://www.baidu.com')
search = driver.find_element_by_id('su').get_attribute('value')
# 斷言預期結(jié)果
assert search == "百度"
這里要斷言打開百度頁面所展現(xiàn)的內(nèi)容與所期望的值是否相等。因為實際獲取到的內(nèi)容應該是百度一下而不是百度,所以斷言錯誤。
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