溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架

發(fā)布時(shí)間:2021-10-21 11:29:04 來(lái)源:億速云 閱讀:206 作者:小新 欄目:編程語(yǔ)言

這篇文章給大家分享的是有關(guān)如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

背景

性能測(cè)試,作為一項(xiàng)對(duì)系統(tǒng)、接口或業(yè)務(wù)流程進(jìn)行深度評(píng)估的測(cè)試活動(dòng),與功能測(cè)試的關(guān)注點(diǎn)和視角是不同的,同時(shí)因?yàn)榭赡苌婕叭藛T較廣,如性能測(cè)試人員,功能測(cè)試人員,開(kāi)發(fā),運(yùn)維,DBA等,往往存在測(cè)試周期長(zhǎng)的普遍現(xiàn)象。然而,對(duì)于瓶頸優(yōu)化后的性能回歸,基于已有的環(huán)境數(shù)據(jù)、測(cè)試腳本、場(chǎng)景配置等,完全可以考慮實(shí)現(xiàn)性能自動(dòng)化,將性能測(cè)試人員從繁瑣的場(chǎng)景執(zhí)行、資源監(jiān)控、結(jié)果收集等工作中解脫出來(lái),從而節(jié)約時(shí)間、也使得性能人員可以集中精力在更重要的結(jié)果分析階段。

基于上述考慮及現(xiàn)實(shí)需求,有必要開(kāi)發(fā)框架來(lái)實(shí)現(xiàn)性能測(cè)試自動(dòng)化。

問(wèn)題分析

俗話說(shuō),工欲善其事必先利其器,開(kāi)發(fā)性能測(cè)試自動(dòng)化框架前,需要考慮以下問(wèn)題:

1.       選用什么開(kāi)發(fā)語(yǔ)言?

2.       框架要處理的性能測(cè)試工具是什么?

3.       如何設(shè)計(jì)框架,讓使用者更省心,讓?xiě)?yīng)對(duì)需求更從容?

4.       如何抽離通用功能并實(shí)現(xiàn)復(fù)用?

5.       如何控制多場(chǎng)景下的執(zhí)行順序?

6.       如何執(zhí)行數(shù)據(jù)準(zhǔn)備?

7.       如何高效實(shí)現(xiàn)window對(duì)多l(xiāng)inux主機(jī)的控制和文件下載?

8.       如何讓數(shù)據(jù)庫(kù)的監(jiān)控更方便?

9.       如何對(duì)html網(wǎng)頁(yè)數(shù)據(jù)爬取更簡(jiǎn)單?

10.   如何進(jìn)行文本內(nèi)容提取和分析?

11.   如何寫(xiě)html更優(yōu)雅?

…………………………….

解決思路

好了,上面已經(jīng)提了一大堆問(wèn)題,當(dāng)然,這僅僅是實(shí)現(xiàn)一個(gè)可用、可靠自動(dòng)化框架眾多問(wèn)題中的一部分,也是開(kāi)發(fā)前需要有個(gè)基本解決構(gòu)想的。

在框架開(kāi)發(fā)中,設(shè)計(jì)原則及解決思路是這樣的:

采用Python作為開(kāi)發(fā)語(yǔ)言,而且是純python實(shí)現(xiàn),拒絕其他各種腳本形式,bat啊,shell啊,保持框架未來(lái)的可維護(hù)性;

性能測(cè)試工具主要是LR、某些場(chǎng)景可能會(huì)用到Jmeter,因而,框架優(yōu)先支持LR,根據(jù)后續(xù)需求,會(huì)考慮對(duì)Jmeter的支持;

框架應(yīng)提供簡(jiǎn)潔、易配置的統(tǒng)一接口,用戶無(wú)需關(guān)心框架內(nèi)部實(shí)現(xiàn);

框架應(yīng)模塊化設(shè)計(jì),提高功能復(fù)用;

框架通過(guò)統(tǒng)一的配置接口方便支持場(chǎng)景順序控制的需求;

抽離數(shù)據(jù)庫(kù)操作功能,支持在每個(gè)場(chǎng)景執(zhí)行前進(jìn)行環(huán)境初始化操作,而且該動(dòng)作應(yīng)該是可選或可配置的;

windows-linux的文件傳輸、命令執(zhí)行、sql腳本執(zhí)行可以通過(guò)parimiko實(shí)現(xiàn);

通過(guò)獲取awr報(bào)告實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)性能狀況的監(jiān)控;

通過(guò)nmon實(shí)現(xiàn)對(duì)各服務(wù)器資源的監(jiān)控;

使用beautifulsoap解析html文件;

配置采用xml格式,且使用cElementTree進(jìn)行解析;

框架的執(zhí)行過(guò)程應(yīng)有詳細(xì)的日志記錄,可以使用logging實(shí)現(xiàn);

支持生成html格式的測(cè)試報(bào)告;

框架流程

框架主要分為三大功能模塊,場(chǎng)景執(zhí)行、資源監(jiān)控、結(jié)果分析和報(bào)告;流程圖如下:

如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架 

框架目錄結(jié)構(gòu)

框架實(shí)現(xiàn)目錄結(jié)構(gòu)如下:

如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架

Config目錄:提供框架統(tǒng)一配置入口,presql目錄提供場(chǎng)景初始化準(zhǔn)備的腳本;

Log目錄:提供框架執(zhí)行的詳細(xì)日志,以天為單位記錄日志,當(dāng)日日志會(huì)被重寫(xiě);

Report目錄:框架執(zhí)行完畢后生成報(bào)告,包括summary_report.html和resource_report.html;

Result目錄:該目錄用于存放執(zhí)行的結(jié)果,其中包括用于保存linux資源監(jiān)控的Linux目錄、場(chǎng)景執(zhí)行結(jié)果的LR目錄和數(shù)據(jù)庫(kù)運(yùn)行監(jiān)控的Oracle目錄;

Scenarios目錄:場(chǎng)景執(zhí)行文件目錄和用于保存LR結(jié)果分析模板的Perf_Autotest_Tep目錄;

Scripts目錄:框架腳本目錄;

實(shí)現(xiàn)效果

框架執(zhí)行完畢后,會(huì)以郵件形式發(fā)送報(bào)告,附件包括summary_report.html和resource_report.html,實(shí)現(xiàn)效果如下:

summary_report.html效果:

如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架

resource_report.html效果:

如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架

感謝各位的閱讀!關(guān)于“如何實(shí)現(xiàn)Python性能自動(dòng)化測(cè)試框架”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI