1. 程式人生 > 其它 >乾貨 | 錄製你的第一個web 自動化測試用例

乾貨 | 錄製你的第一個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()

這段程式碼就簡單的實現了對瀏覽器簡單的自動化

      喜歡軟體測試的小夥伴們,如果我的部落格對你有幫助、如果你喜歡我的部落格內容,請 “點贊” “評論” “收藏” 一鍵三連哦。更多技術文章