本專案為web頁面測試框架,可適用於各類web頁面自動測試專案,並為測試結果輸出報告。
# requirements內容
adbutils==0.6.2
anytree==2.7.2
apkutils==0.6.6
apkutils2==1.0.0
atomicwrites==1.3.0
attrs==19.3.0
certifi==2019.9.11
chardet==3.0.4
cigam==0.0.3
colorama==0.4.1
decorator==4.4.0
deprecated==1.2.6
deprecation==2.0.7
facebook-wda==0.4.1
humanize==0.5.1
idna==2.8
imageio==2.6.1
importlib-metadata==0.23
jinja2==2.10.3
logzero==1.5.0
lxml==4.4.1
markupsafe==1.1.1
more-itertools==7.2.0
numpy==1.17.3
packaging==19.2
pillow==6.2.0
pluggy==0.13.0
progress==1.5
psutil==5.6.3
py==1.8.0
pyelftools==0.25
pyparsing==2.4.2
pytest==5.2.1
pywin32==225
requests==2.22.0
retry==0.9.2
selenium==3.141.0
six==1.12.0
textwizard==0.0.3
tinydb==3.15.1
tornado==6.0.3
uiautomator2==2.0.1.dev3
urllib3==1.25.6
wcwidth==0.1.7
weditor==0.3.1
whichcraft==0.6.1
wrapt==1.11.2
xmltodict==0.12.0
zipp==0.6.0
pytest-html==2.0.0
將requirements.txt放置於到任意目錄, 再在命令列介面輸入以下命令:
cd [requirements.txt所在目錄]
pip install -r requirements.txt
框架結構如圖所示
此模組用於儲存編寫的各測試專案的page object。
如圖所示的是作為示例的page object檔案login.py,儲存了登入頁的page object。當用例中有需要用到該頁元素時可以直接從此呼叫該元素的點選操作,不需要再重新做一次檢查元素xpath步驟。
page object完備時用例編寫會變得十分方便快捷,用例編寫人員只需要呼叫相應點選操作函式即可輕鬆完成乙個用例編寫,並且當頁面元素xpath發生改變時也可以在此處快速地修改而不影響用例,即po模式。
每個測試專案可以有乙個自己專有的page_object_*目錄。相關的測試專案也可以使用同乙個,例如測試環境的專案和生產環境的專案,它們分別使用不同的測試套件和測試用例,但可以共用page_object_*。
testsuite_*是某個測試專案的測試套件。裡面包含了測試用例集test_case,報告目錄report,專案配置檔案config.ini,測試用例執行入口run_case.py。
test_case
測試用例目錄。測試用例檔案需以test_開頭,pytest才會將其識別為測試用例檔案。測試用例檔案可以以功能來做區分。例如安裝,登入等。
根據pytest預設的用例收集規則,檔案內測試類命名需以test開頭,測試方法和函式需以test_開頭。
測試用例和測試步驟使用了自定義的@my_test_case和@my_test_step裝飾器來做錯誤收集和處理。
report
用於儲存測試報告。每次執行將生成乙份html形式的測試報告和乙份執行日誌,測試報告超過一定數量時將自動刪除最早的,預設保留10個。測試報告保留數量可以在config.ini裡修改。
config.ini
config.ini檔案用於寫入一些配置和測試資料,例如webdriver路徑,需測試的url,需保留的測試報告數量,登入的使用者名稱和密碼等。
run_case.py
該測試套件的測試用例執行入口。
啟動測試前先做一次初始化操作生成一些通用的類例項,以便後面直接呼叫。
pytest需要一些引數來執行,例如-s可以在執行過程中顯示內部的列印資訊,-v可以輸出用例更加詳細的執行資訊,比如用例所在的檔案及用例名稱等。--html是用於使用pytest-html外掛程式輸出html測試報告的引數。
pytest根據預設字首收集需要執行的測試用例
conftest.py根據config.ini提供的路徑,在每個用例開始時設定webdriver,結束**webdrvier。
pytest根據conftest.py所設定的fixture,在各級別的測試用例前後執行fixture。
如果測試出錯,收集錯誤資訊輸出到日誌,並截圖儲存到測試報告
測試結束,並輸出測試報告
生成的測試報告路徑結構如下
在report目錄下會有乙個執行日誌client.log和乙個html格式測試報告report.html,以及測試過程中手動截圖的存檔目錄image。
報告展示:
Web頁面設計之頁面框架的使用
web頁面設計之頁面框架的使用 web頁面設計之頁面框架的使用,web,框架,frameset,frame,iframe,框架是頁面設計中不可缺少的元素之一,本文詳細介紹了html語言中頁面框架的實現方法,對於其各個屬性,給與了詳細的介紹並且給出使用例項。相信在閱讀本文之後會使您對使用框架規劃頁面有...
web前端頁面效能測試
特別是使用者對系統要求越來越高,除了要求功能完備,對介面的美觀 易用性也提出了更高的要求,越炫的頁面也就意味著頁面中要包含更多的指令碼 樣式表 和flash,頁面的資料量也就越大,這對web系統的效能提出了極大的挑戰。減少請求和響應的往返次數 http快取是最好的減少客戶端伺服器端往返次數的辦法。快...
web安全測試設計 OWASP測試框架
web安全測試設計 owasp測試框架 owasp測試框架 來自owasp測試指南 一次偶然的機會,看到了owasp出的測試指南。聯想到2010年做的安全控制項專案,真的想說,如果當時就有學習過 測試指南 可能測試的效果 會更好,怎麼當時就沒有看到這本指南呢 因為它詳細描述了安全測試的具體步驟和操作...