您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何實現Python性能自動化測試框架的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
一 背景
性能測試,作為一項對系統、接口或業務流程進行深度評估的測試活動,與功能測試的關注點和視角是不同的,同時因為可能涉及人員較廣,如性能測試人員,功能測試人員,開發,運維,DBA等,往往存在測試周期長的普遍現象。然而,對于瓶頸優化后的性能回歸,基于已有的環境數據、測試腳本、場景配置等,完全可以考慮實現性能自動化,將性能測試人員從繁瑣的場景執行、資源監控、結果收集等工作中解脫出來,從而節約時間、也使得性能人員可以集中精力在更重要的結果分析階段。
基于上述考慮及現實需求,有必要開發框架來實現性能測試自動化。
二 問題分析
俗話說,工欲善其事必先利其器,開發性能測試自動化框架前,需要考慮以下問題:
1. 選用什么開發語言?
2. 框架要處理的性能測試工具是什么?
3. 如何設計框架,讓使用者更省心,讓應對需求更從容?
4. 如何抽離通用功能并實現復用?
5. 如何控制多場景下的執行順序?
6. 如何執行數據準備?
7. 如何高效實現window對多linux主機的控制和文件下載?
8. 如何讓數據庫的監控更方便?
9. 如何對html網頁數據爬取更簡單?
10. 如何進行文本內容提取和分析?
11. 如何寫html更優雅?
…………………………….
三 解決思路
好了,上面已經提了一大堆問題,當然,這僅僅是實現一個可用、可靠自動化框架眾多問題中的一部分,也是開發前需要有個基本解決構想的。
在框架開發中,設計原則及解決思路是這樣的:
采用Python作為開發語言,而且是純python實現,拒絕其他各種腳本形式,bat啊,shell啊,保持框架未來的可維護性;
性能測試工具主要是LR、某些場景可能會用到Jmeter,因而,框架優先支持LR,根據后續需求,會考慮對Jmeter的支持;
框架應提供簡潔、易配置的統一接口,用戶無需關心框架內部實現;
框架應模塊化設計,提高功能復用;
框架通過統一的配置接口方便支持場景順序控制的需求;
抽離數據庫操作功能,支持在每個場景執行前進行環境初始化操作,而且該動作應該是可選或可配置的;
windows-linux的文件傳輸、命令執行、sql腳本執行可以通過parimiko實現;
通過獲取awr報告實現對數據庫性能狀況的監控;
通過nmon實現對各服務器資源的監控;
使用beautifulsoap解析html文件;
配置采用xml格式,且使用cElementTree進行解析;
框架的執行過程應有詳細的日志記錄,可以使用logging實現;
支持生成html格式的測試報告;
四 框架流程
框架主要分為三大功能模塊,場景執行、資源監控、結果分析和報告;流程圖如下:
五 框架目錄結構
框架實現目錄結構如下:
Config目錄:提供框架統一配置入口,presql目錄提供場景初始化準備的腳本;
Log目錄:提供框架執行的詳細日志,以天為單位記錄日志,當日日志會被重寫;
Report目錄:框架執行完畢后生成報告,包括summary_report.html和resource_report.html;
Result目錄:該目錄用于存放執行的結果,其中包括用于保存linux資源監控的Linux目錄、場景執行結果的LR目錄和數據庫運行監控的Oracle目錄;
Scenarios目錄:場景執行文件目錄和用于保存LR結果分析模板的Perf_Autotest_Tep目錄;
Scripts目錄:框架腳本目錄;
六 實現效果
框架執行完畢后,會以郵件形式發送報告,附件包括summary_report.html和resource_report.html,實現效果如下:
summary_report.html效果:
resource_report.html效果:
感謝各位的閱讀!關于“如何實現Python性能自動化測試框架”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。