加速Web自動化測試
一. 問題背景
Web自動化測試,主要花費的時間在於UI自動化驗收測試。特別是對於一些有工作流的Web應用來說,一個測試用例單次執行超過20分鐘很正常。因此,如何去加速我們的測試用例執行,是每個測試人員必須要認真考慮的問題。
二. Headless瀏覽器方案
為了加快瀏覽器執行自動化命令的速度,我們選擇Headless瀏覽器, phantomjs來作為自動化執行的瀏覽器,phantomjs不需要對頁面進行渲染。因此可以大幅加快命令執行的速度。
三. 技術選型
我們基於selenium grid技術,來搭建phantomjs測試執行環境。
- selenium-hub
- selenium-node-phantomjs
這裡我們利用docker來建立我們的上述環境。我們可以用docker compose來編排我們的環境。也可以獨立建立。為了使大家更清楚,我們一步一步來建立phantomjs執行環境。
第一步
通過docker啟動selenium hub服務> docker run -d -P --name selenium-hub selenium/hub
啟動後,進入http://localhost:4444/grid/console# ,檢視hub的情況。
第二步
通過docker啟動selenium-node-phantomjs節點,並註冊到hub上。> docker run -d --link selenium-hub:hub --name node-phantomjs akeem/selenium-node-phantomjs
這樣,我們就完成了基本的selenium phantomjs執行環境的建立了。
執行測試用例
如下所示,test.py是一個基本的測試用例執行檔案。
from selenium.webdriver.remote.webdriver import WebDriver
from time import sleep
import py.test
SELENIUM_HOST = "localhost"
SELENIUM_PORT = "4444"
def test_get_url():
sleep(10)
TEST_URL = "http://httpbin/html"
driver = WebDriver("http://%s:%s/wd/hub" % (SELENIUM_HOST, SELENIUM_PORT),desired_capabilities={"browserName": "phantomjs"})
driver.get(TEST_URL)
elem = driver.find_element_by_tag_name("h1")
assert "Moby-Dick" in elem.text
執行
> python test.py
總結
Headless瀏覽器能夠加速我們的測試用例執行,同時phantomjs是webkit核心,因此和利用chrome瀏覽器執行是效果一致的。
如果不是對頁面渲染有很高要求的測試業務,推薦大家採用phantomjs方案。
相關文章
- 14 Web 自動化測試 -- PageObject 思想WebObject
- 利用 Selenium 自動化 web 測試Web
- Web自動化-Selenium自動化測試-4-編寫測試用例Web
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- 測中策---我的Web自動化測試思路Web
- 自動化測試系列 —— UI自動化測試UI
- 自己動手寫Web自動化測試框架Web框架
- 關於Web端-UI自動化測試WebUI
- 大佬對 WEB 自動化測試的看法Web
- UI自動化測試-web元素選擇UIWeb
- JMeter做WEB和API自動化測試JMeterWebAPI
- 【自動化測試入門】自動化測試思維
- 面向開發的測試技術(三):Web自動化測試Web
- CukeTest+Puppeteer的Web自動化測試(二)Web
- CukeTest+Puppeteer的Web自動化測試(一)Web
- Web自動化測試:xpath & CSS Selector定位WebCSS
- [原創]淺談Web UI自動化測試WebUI
- web自動化測試框架-06 如何快速編寫自動化指令碼Web框架指令碼
- 自己動手寫Web自動化測試框架(1) :概述Web框架
- Web自動化-Selenium自動化測試-1-主要學習計劃Web
- 軟體測試:自動化測試
- Web前端自動化測試Cypress實踐總結Web前端
- Web自動化之Headless Chrome測試框架整合WebChrome框架
- 自動化裝置測試與自動化測試的區別
- 自動化測試理解
- 自動化測試思路
- airTest自動化測試AI
- 介面自動化測試
- API自動化測試API
- 自動化測試框架框架
- 自動化元件測試元件
- 基於LangChain手工測試用例轉Web自動化測試生成工具LangChainWeb
- Selenium Web Driver自動化測試(java版)系列下半部分(37) - 關鍵字驅動自動化測試框架(2)-測試過程...WebJava框架
- 測試開發之自動化篇-自動化測試框架設計框架
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- 手工測試和自動化測試 BattleBAT
- 自動化測試系列(三)|UI測試UI
- 小程式自動化測試--測試3