技術分享 | Selenium 測試用例編寫
阿新 • • 發佈:2022-04-20
⬇️ 點選“下方連結”,提升測試核心競爭力!
編寫Selenium測試用例就是模擬使用者在瀏覽器上的一系列操作,通過指令碼來完成自動化測試。
編寫測試用例的優勢:
-
開源,免費。
-
支援多種瀏覽器 IE,Firefox,Chrome,Safari。
-
支援多平臺 Windows,Linux,Mac。
-
支援多語言 Python,Java,C#。
-
對 Web 支援良好。
-
簡單,靈活。
-
支援分散式測試用例執行。
引入依賴
引入依賴是為了呼叫 webdriver 中的方法來與瀏覽器進行互動以實現操作步驟。
- Python版本
from selenium import webdriver
- Java版本
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
測試用例的流程
測試用例是為了實施測試從而向被測試的系統提供的一組集合,這組集合包含:測試環境、操作步驟、測試資料、預期結果等。
注意:一條測試用例的最終結果只有一個:成功或者失敗。
三大核心要素為 :標題 、步驟 、預期結果
-
標題:是對測試用例的描述,標題應該清楚的表達測試用例的內容
-
步驟:對測試執行過程進行描述
-
預期結果:提供測試執行的預期結果,預期結果一般是根據需求得出,如果實際結果和預期結果一致則測試通過,反之失敗。
實戰演練
首先是在程式碼的最上面匯入了 Selenium 的包,其次是測試方法命名、測試步驟、斷言。測試用例內容是要斷言開啟百度頁面所展現的內容與所期望的值是否相等。
- 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') # 斷言預期結果 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;
@Test
void search() throws InterruptedException {
//例項化driver
driver = new ChromeDriver();
//開啟網頁
driver.get("https://www.baidu.com");
//測試的步驟
String data = driver.findElement(By.id("su")).getAttribute("value");
assert data.equals("百度");
}
}
這裡要斷言開啟百度頁面所展現的內容與所期望的值是否相等。因為實際獲取到的內容應該是百度一下而不是百度,所以斷言錯誤。
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
跟著實戰演練,開啟編寫Selenium測試用例之旅吧~
⬇️ 點選“下方連結”,提升測試核心競爭力!