乾貨 | 錄製你的第一個web 自動化測試用例
Web應用程式的驗收測試常常涉及一些手工任務,例如開啟一個瀏覽器,並執行一個測試用例中所描述的操作。但是手工執行的任務容易出現操作人員人為的錯誤,花費的時間成本也比較多。因此,將這些任務自動化,就可以消除人為因素。Selenium可以幫助我們自動完成驗收測試,通過構建更嚴格的測試,從而使軟體更為可靠也更易於維護。
Selenium 測試框架及用例編寫
Selenium是什麼?
Selenium 是用於測試 Web 應用程式使用者介面 (UI) 的常用框架。它是一款用於執行端到端功能測試的超強工具。您可以使用多個程式語言編寫測試,並且 Selenium 是能夠在一個或多個瀏覽器中執行這些測試。
編寫程式碼使用 client的 api 然後client和Selenium溝通如何操作,之後selenium通過瀏覽器driver操作瀏覽器執行各種動作。
目前最新的版本是Selenium 3,Selenium 核心元件包括:
- Selenium WebDriver
- Selenium IDE
- Selenium Grid
Selenium 原始碼:
https://github.com/SeleniumHQ/selenium,[Selenium Client Driver]
(https://seleniumhq.github.io/selenium/docs/api/py/):
Selenium WebDriver的Python語言實現。
參考:Selenium with Python
1.安裝瀏覽器:Firefox、Chrome
2.下載瀏覽器Driver:
3.GeckoDriver(Firefox)、ChromeDriver(Chrome),WebDriver版本需要和瀏覽器的版本保持一致。
4.安裝Selenium Client Driver:
pip install selenium
測試用例是為了實施測試而向被測試的系統提供的一組集合,這組集合包含:測試環境、操作步驟、測試資料、預期結果等。
注意:一條測試用例的最終結果只有一個:成功或者失敗。
三大核心要素為 :標題 、步驟 、預期結果
- 標題:是對測試用例的描述,標題應該清楚的表達測試用例的用例
- 步驟:對測試執行過程進行描述
- 預期結果:提供測試執行的預期結果,預期結果一般是根據需求得出,如果實際結果和預期結果一致則測試通過,反之失敗。
首先是在程式碼的最上面匯入了 Selenium 的包,其次是測試方法命名、測試步驟、斷言。
from selenium import webdriver
def test_search(): # 測試的標題即 test_search
driver = webdriver.Chrome()
driver.get('https://www.baidu.com') # 測試的步驟
search = driver.find_element_by_id('su').get_attribute('value') #
assert search == "百度" # 斷言預期結果
安裝完成後,通過在瀏覽器的選單欄中點選圖示啟動。
第一步:建立新專案後,取名為 hogwarts_demo1。
第二步:然後需要填寫 URL(要錄製測試指令碼的網站 URL)。這裡使用的是 https://ceshiren.com/。
第三步:完成設定後,將開啟一個新的瀏覽器視窗,載入 URL 並開始錄製指令碼。在頁面上的操作都將記錄在 IDE 中。操作完成後,切換到 IDE 視窗並單擊停止錄製按鈕。
第四步:停止後,為剛錄製的測試用例取名ceshiren_demo1
匯出用例分析
利用 Selenium IDE 匯出 pytest 格式程式碼。
匯出用例程式碼如下:
#註釋是由 Selenium IDE 生成的程式碼
# Generated by Selenium IDE
#匯入可能用到的依賴
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestDemo():
#setup_module()只會在開始測試執行一次
def setup_method(self, method):
#初始化webdriver
self.driver = webdriver.Chrome()
self.vars = {}
#teardown_module()只會在結束測試執行一次
def teardown_method(self, method):
#關閉瀏覽器並關閉啟動 ChromeDriver 時啟動的 ChromeDriver 可執行檔案
self.driver.quit()
#測試方法
def test_demo(self):
#訪問網址
self.driver.get("https://ceshiren.com/")
#設定視窗大小
self.driver.set_window_size(1473, 866)
#點選操作
self.driver.find_element(By.LINK_TEXT, "所有分類").click()
self.driver.find_element(By.CSS_SELECTOR, "#ember201 .category-name").click()
#關閉當前視窗
self.driver.close()
這段程式碼就簡單的實現了對瀏覽器簡單的自動化
喜歡軟體測試的小夥伴們,如果我的部落格對你有幫助、如果你喜歡我的部落格內容,請 “點贊” “評論” “收藏” 一鍵三連哦。更多技術文章