本文節選自霍格沃茲測驗開發學社內部教材
撰寫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 = https://www.cnblogs.com/ceshiren2022/p/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測驗用例之旅吧~
來霍格沃茲測驗開發學社,學習更多軟體測驗與測驗開發的進階技術,知識點涵蓋web自動化測驗 app自動化測驗、介面自動化測驗、測驗框架、性能測驗、安全測驗、持續集成/持續交付/DevOps,測驗左移、測驗右移、精準測驗、測驗平臺開發、測驗管理等內容,課程技術涵蓋bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相關技術,全面提升測驗開發工程師的技術實力,
獲取更多內容:https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=bokeyuan×tamp=1650421400
點擊查看更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/459537.html
標籤:其他
