偷懶大法好,用 selenium 做 web 端自動化測試


自動化入門介紹

實驗介紹

本次實驗主要介紹什么是自動化測試和自動化測試工具 selenium。然后介紹怎么安裝瀏覽器驅動工具 webdriver,並且開發一個簡單的自動化測試腳本,體會自動化測試是怎么實現的。

知識點

  • 自動化測試介紹
  • selenium 介紹
  • webdriver 安裝
  • 第一個腳本開發

自動化測試概念

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。其實質是寫腳本或使用工具測試程序。

自動化測試分類

自動化測試是使用各種工具或程序代替人工測試的一種行為。只要是解除人工操作的測試都可以稱為自動化測試,細分又有好多種類,下面簡單列舉一些。

  • Web UI 自動化測試。
  • API 自動化測試。
  • 性能自動化測試。
  • 單元測試。
  • Windows 窗體 UI 自動化測試。

本系列實驗以 Python Web UI 自動化測試為主,為了方便起見以后直接簡稱自動化測試。

怎么學習自動化測試

寫好自動化測試的前提是有夯實的手工測試基礎,學習自動化測試的基本路線大致如下:

  1. 做好手工功能測試(包括測試理論知識,涉及的工具使用等)。
  2. 學習前端基本知識(HTML、CSS、JavaScript)。
  3. 掌握一門編程語言(例如 Python、Java)。
  4. 精通自動化測試工具(目前最流行的為 Selenium)。
  5. 精通自動化測試框架(UnitTest、Pytest)。
  6. 熟悉自動化測試模型(線性模型、模塊化驅動、數據驅動、關鍵字驅動、行為驅動)。
  7. 熟悉集成工具(例如 Jenkins)。

學完以上七點,便可在項目中進行自動化測試。

本系列實驗將會以 Python3 + Selenium 為基礎進行展開。

什么樣的項目適合自動化測試

對項目進行自動化測試之前要了解項目是否適合做自動化測試。業界普遍從三個方面進行考慮。

  1. 需求穩定,變更不會太頻繁。

自動化測試只適用比較穩定的系統或系統中的部分功能模塊。如果需求變更過於頻繁則自動化測試的腳步維護也就比較大,進而成本也會加大,從而消耗更多的資源,是不划算的。

  1. 維護周期長,具有生命力。

開發自動化測試腳本是需要時間的。如果項目周期比較短,下一個版本已經開始了,對某些模塊有了新的變動,而正在進行的自動化測試開發將會變得毫無意義。

  1. 被測系統開發規范,可測性強。

測試腳本的開發需要根據被測系統而考慮,如果被測系統架構不完善則測試工具和測試技術很難應對,一旦測試人員的能力不是很好,則設計出來的測試框架、寫出來的測試腳本在應對性上也很差。由此便造成自動測試產生的價值沒有手工測試來的直接。

selenium 是什么

Selenium 是一個用於 Web 系統自動化測試的工具集,現在所說的 Selenium 通常是指 Selenium Suite,其包含 Selenium IDE、Selenium WebDriver 和 Selenium Grid 三部分。

  • Selenium IDE:是一個 Firefox 插件,可以根據用戶的基本操作自動錄制腳本,然后在瀏覽器中進行回放。
  • Selenium WebDriver:WebDriver 的前身是 Selenium RC,其可以直接給瀏覽器發送命令模擬用戶的操作。Selenium RC 為 WebDriver 的核心部分,它可以使用編程語言如 Java、C#、PHP、Python、Ruby 和 Perld 的強大功能來創建更復雜的測試。Selenium RC 分為 ClientLibraries(編寫測試腳本)和 Selenium Server(控制瀏覽器行為)兩部分。
  • Selenium Grid:是一個用於運行在不同的機器、不同的瀏覽器並行測試的工具,用於加快測試用例的運行速度。

安裝瀏覽器驅動

WebDriver 是 Selenium Tool 套件中最重要的組件,其就像一個媒介,用腳本驅動 WebDriver,WebDriver 再去控制瀏覽器,從而實現腳本對瀏覽器的操作。

只有安裝了瀏覽器驅動才能使用 Selenium 發送指令模擬人類行為操作瀏覽器。不同的瀏覽器需要安裝各自的驅動,接下來以 Chrome 瀏覽器為例安裝 chromedriver.exe。

  1. 查看 Chrome 版本。

由於安裝的 chromedriver.exe 版本需要和 Chrome 瀏覽器版本匹配,所以我們需要知道 Chrome 的版本。從 Chrome 瀏覽器右上角的菜單中依次選擇【幫助(E)】、【關於 Google Chrome(G)】,查看瀏覽器的版本。

  1. 下載 chromedriver。

進入 chromedriver 下載地址下載 https://chromedriver.storage.googleapis.com/index.html 或使用淘寶鏡像地址下載 https://npm.taobao.org/mirrors/chromedriver/ ,進入后選擇對應的版本號。

然后根據自己的系統選擇對應的 zip 文件進行下載。如實驗的系統是 Linux 則下載 chromedriver_linux64.zip,並將其保存在 /home/shiyanlou/Code/ 下。

下載后通過 cd 命令進入到 /home/shiyanlou/Code/ 目錄中,使用命令 unzip chromedriver_linux64.zip 進行解壓。

3. 將 chromedriver 移至 python 所在目錄下。

將 chromedriver 移動至 Python 編輯器所在的目錄 /usr/bin/ 下,使 chromedriver 與 python 處於同一目錄下,這樣做的目的是便於 Python 在執行時可以找到 chromedriver。 使用命令 sudo cp -r /home/shiyanlou/Code/chromedriver /usr/bin/

不同的瀏覽器需要是使用不同的驅動,下面列出 FireFox 和 IE 瀏覽器驅動的下載地址。

開發第一個自動化測試腳本

打開 Xfce 終端,依次輸入下面命令,先安裝 Python3 安裝第三方庫的程序 pip,安裝完成后對 pip 進行升級,然后安裝 selenium 庫。

sudo apt install python3-pip sudo pip3 install --upgrade pip pip3 install selenium 

繼續輸入下面命令,進入到 python 環境中,然后導入 webdriver。

python3
from selenium import webdriver 

輸入 driver = webdriver.Chrome() 啟動 Chrome 瀏覽器。

輸入 driver.get("https://www.shiyanlou.com/") 后在瀏覽器中打開實驗樓首頁。

輸入 driver.close() 關閉瀏覽器。

在命令行中體驗了怎么運行,現在將上面的步驟寫成 py 文件。

在 /home/shiyanlou/Code/ 目錄下新建 myfirst_project.py 文件。

在 myfirst_project.py 中編輯代碼,操作瀏覽器打開實驗樓首頁,然后關閉瀏覽器。

from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.shiyanlou.com/") driver.close() 

然后打開 Xfce 終端,輸入下面命令運行 myfirst_project.py 腳本。

python3 /home/shiyanlou/Code/myfirst_project.py 

命令執行后腳本會驅動 webdriver 打開 Chrome 瀏覽器,然后訪問實驗樓首頁,最后關閉瀏覽器。

實驗總結

實驗知識點回顧:

  • 自動化測試介紹
  • selenium 介紹
  • webdriver 安裝
  • 第一個腳本開發

本次實驗主要是一些概念性內容,在做完本實驗后對自動化測試有一個基本的認識,了解到本系列實驗展開的方向。並且實際動手進行了一次自動化測試腳本開發,體會到自動化測試運行的過程。


以上內容來自課程《Python Web 自動化測試入門實戰》,課程后續你將學到:

 

點擊《Python Web 自動化測試入門實戰》,學習完整課程內容!

本課程由《Python Web 自動化測試入門與實戰》中部分內容改編而成。從自動化入門、元素的基礎操作、常用方法的使用等基礎知識開始,到單元測試框架 UnitTest 和測試模型的介紹,最后使用 PO 模型結合實驗樓網站的幾個功能進行項目實戰。課程結合工具 Jenkins 進行持續構建,是一個完整的自動化測試體系。

課程中提供詳細的步驟和豐富的截圖進行展示,內容編排循序漸進,在實驗中理論與實踐同步進行,盡可能的使學習者掌握所學知識並且熟練運用。

通過學習本課程都能夠快速進入 Web 自動化測試領域,對 Web 自動化測試有一個清晰地理解,並且具備承擔 Web 自動化測試開發的能力。

 

發送郵件 tynam.yang@gmail.com 聯系筆者獲取邀請碼,可享受九折優惠。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM