摘要:一為什么需要一個(gè)測(cè)試腳本昨天講解了命令的使用方式,今天趁著還熱乎就手把手用寫一個(gè)壓力測(cè)試的腳本。對(duì)一些在測(cè)試情況下,各項(xiàng)狀態(tài)的監(jiān)控并不好。一個(gè)簡(jiǎn)單的測(cè)試腳本,包括這些基本上就足夠了。六多說(shuō)兩句其實(shí)這個(gè)的壓力測(cè)試腳本,已經(jīng)滿足測(cè)試的基本要求。
一、為什么需要一個(gè)測(cè)試腳本?版權(quán)聲明:
本賬號(hào)發(fā)布文章均來(lái)自公眾號(hào),承香墨影(cxmyDev),版權(quán)歸承香墨影所有。
允許有條件轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)附帶底部二維碼。
昨天講解了Android Monkey命令的使用方式,今天趁著還熱乎就手把手用Monkey寫一個(gè)壓力測(cè)試的腳本。還不了解什么是Monkey的,可以看看昨天的文章。
Monkey說(shuō)到底其實(shí)就是一段命令,只能在有限的范圍內(nèi)做一些隨機(jī)事件的壓力測(cè)試。可以很明顯看到它的一些缺點(diǎn):
前期準(zhǔn)備工作太多,需要把設(shè)備準(zhǔn)備好、安裝好待測(cè)Apk。
無(wú)法做到無(wú)干預(yù)的循環(huán)。類似沒(méi)人看著去測(cè)試一夜的情況。
對(duì)一些在測(cè)試情況下,各項(xiàng)狀態(tài)的監(jiān)控并不好。
那么,這些問(wèn)題,其實(shí)都可以使用一個(gè)腳本來(lái)解決問(wèn)題。
Monkey命令其實(shí)就是在命令行中執(zhí)行的命令,所以腳本語(yǔ)言基本上都可以完成這個(gè)任務(wù),這里選擇主流的Python來(lái)完成。
二、如何設(shè)計(jì)壓測(cè)腳本既然是一個(gè)完整的腳本,那么當(dāng)然需要滿足一些最基本的需求。
包括:
可以自動(dòng)安裝待測(cè)試apk。
可以循環(huán)執(zhí)行腳本,并且每次都退出App重新執(zhí)行。
在執(zhí)行完成之后,可以輸出測(cè)試報(bào)告。
變動(dòng)的參數(shù),可以讓測(cè)試人員自行配置。
一個(gè)簡(jiǎn)單的測(cè)試腳本,包括這些基本上就足夠了。
三、動(dòng)手寫腳本編寫完成之后,Python的項(xiàng)目結(jié)構(gòu)大概是這樣子的。
項(xiàng)目的結(jié)構(gòu)大概如下:
apk目錄:用于存放待測(cè)試的Apk。
bugreport_out目錄:用于存放測(cè)試完成輸出的報(bào)告。
.config:壓力測(cè)試的配置信息文件。
chkbugreport.jar:輸出測(cè)試報(bào)告的工具。
runmonkey.py:真正需要執(zhí)行的Python腳本。
start.bat:為測(cè)試準(zhǔn)備一個(gè)點(diǎn)擊就可以執(zhí)行的bat腳本。
了解了項(xiàng)目的結(jié)構(gòu)之后,就可以開(kāi)始編寫Python腳本了。
1、編寫配置文件和讀取配置文件首先看看.config配置文件。
在配置文件里,主要配置待測(cè)試的設(shè)備ID、循環(huán)執(zhí)行次數(shù),和每次循環(huán)的時(shí)候點(diǎn)擊的次數(shù)。
這樣設(shè)計(jì),基本上可以通過(guò)execcount和monkeyclickcount兩個(gè)參數(shù),配置所需要執(zhí)行多久的一個(gè)壓測(cè)方案。
接下來(lái)就需要一個(gè)方法去讀配置文件。
2、安裝待測(cè)試apk一般測(cè)試都是會(huì)測(cè)試同一個(gè)apk產(chǎn)品,所以這里寫死apk的文件名。直接通過(guò)os.popen()這個(gè)Python的方法執(zhí)行adb腳本。
3、殺掉待測(cè)app為了讓每次循環(huán)都是新的一個(gè)測(cè)試任務(wù),保持測(cè)試環(huán)境的趕緊,需要一個(gè)方法在每次循環(huán)之前,殺掉之前正在運(yùn)行的待測(cè)App。
4、生成測(cè)試報(bào)告生成測(cè)試報(bào)告主要依賴chkbugreport.jar這個(gè)工具,它會(huì)根據(jù)bugreport獲得的文件內(nèi)容,生成測(cè)試報(bào)告。
bugreport的用法:
adb shell bugreport > .ugreport.txt
而chkbugreport.jar是一個(gè)java編寫的工具,直接通過(guò)java -jar 執(zhí)行即可
完整的代碼如下:
5、開(kāi)始執(zhí)行Monkey腳本做完準(zhǔn)備工作,就需要一個(gè)方法來(lái)執(zhí)行我們配置好的Monkey腳本。
各項(xiàng)參數(shù)的配置,不明白的看看昨天的文章吧。
6、開(kāi)始調(diào)用準(zhǔn)備好的方法準(zhǔn)備工作已經(jīng)完成,接下來(lái)將這些準(zhǔn)備好的方法,組合起來(lái),用一個(gè)for循環(huán)完成腳本的執(zhí)行。
四、為測(cè)試人員準(zhǔn)備一個(gè)bat做完這些,基本上就算是把主要功能完成了。執(zhí)行下面的命令,就可以跑起來(lái)了。
python runmonkey.py
但是終歸這個(gè)腳本是要給測(cè)試用的,最好還是提供一個(gè)點(diǎn)擊可用的bat腳本。
新建一個(gè)start.bat文件,把上面的命令保存進(jìn)去就行。
下面看看執(zhí)行起來(lái)的樣子。
這里配置了循環(huán)三次,所以最終從Log中可以看到,確實(shí)執(zhí)行三次之后,生成測(cè)試報(bào)告,并且退出測(cè)試。
五、生成的測(cè)試報(bào)告chkbugreport.jar 可以通過(guò)生成的bugreport的內(nèi)容,生成我們需要的測(cè)試報(bào)告。
從上面的截圖可以看到,其實(shí)它會(huì)是一個(gè)網(wǎng)頁(yè),輸出的內(nèi)容非常的齊全。
六、多說(shuō)兩句其實(shí)這個(gè)Monkey的壓力測(cè)試腳本,已經(jīng)滿足測(cè)試的基本要求。但是實(shí)際上,生成的測(cè)試報(bào)告,不太好查看。通常封裝成成熟的產(chǎn)品的App,都會(huì)集成第三方Bug監(jiān)控的服務(wù),例如:Bugly、友盟什么的。所以可以不以來(lái)bugreport生成的測(cè)試報(bào)告,直接在打測(cè)試包的時(shí)候,生成一個(gè)測(cè)試渠道的apk,用它來(lái)測(cè)試,這樣在第三方服務(wù)提供的網(wǎng)站上,可以清晰看到測(cè)試的報(bào)告。
七、完整的Demo完整的Demo請(qǐng)關(guān)注承香墨影的公眾賬號(hào),回復(fù)關(guān)鍵詞:“monkey腳本”獲得。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/38482.html
摘要:以下為我的真實(shí)案例以我真實(shí)案例分享,希望給更多決定重新開(kāi)始的人以鼓勵(lì)我已經(jīng)上班很久了,目前在中軟做軟件測(cè)試工程師,月薪,現(xiàn)在回想起來(lái),仍然慶幸我當(dāng)初的決定。 ?今天跟大家分享我的故事,或許你也曾像他那樣迷茫過(guò)。17年軟件工程專業(yè)??飘厴I(yè)之后做了3年的銷售工作,最后決定還是再次提升專業(yè)技能,...
摘要:工欲善其事,必先利其器,我們拿什么工具來(lái)壓測(cè)呢我們做了很多前期調(diào)研和論證,最終決定基于開(kāi)發(fā)有贊自己的分布式全鏈路壓測(cè)引擎。 一年以前,有贊準(zhǔn)備在雙十一到來(lái)之前對(duì)系統(tǒng)進(jìn)行一次性能摸底,以便提前發(fā)現(xiàn)并解決系統(tǒng)潛在性能問(wèn)題,好讓系統(tǒng)在雙十一期間可以從容應(yīng)對(duì)劇增的流量。工欲善其事,必先利其器,我們拿什么工具來(lái)壓測(cè)呢?我們做了很多前期調(diào)研和論證,最終決定基于 Gatling 開(kāi)發(fā)有贊自己的分布式...
摘要:有贊對(duì)于性能測(cè)試主要有線下單系統(tǒng)單接口線上單系統(tǒng)以及線上全鏈路壓測(cè)等手段,通過(guò)不同維度和顆粒度對(duì)接口系統(tǒng)集群層面進(jìn)行性能測(cè)試,最終保障系統(tǒng)的穩(wěn)定性。這里主要講述一下,有贊全鏈路壓測(cè)的相關(guān)設(shè)計(jì)和具體的實(shí)施。 一、前言 有贊致力于成為商家服務(wù)領(lǐng)域里最被信任的引領(lǐng)者,因?yàn)楸恍湃?,所有我們更需要為商家保駕護(hù)航,保障系統(tǒng)的穩(wěn)定性。有贊從去年開(kāi)始通過(guò)全鏈路壓測(cè),模擬大促真實(shí)流量,串聯(lián)線上全部系統(tǒng),...
摘要:三性能測(cè)試工具官網(wǎng)介紹騰訊開(kāi)源的的隨身調(diào)測(cè)平臺(tái),支持和。官網(wǎng)介紹騰訊游戲部門開(kāi)發(fā)的移動(dòng)全平臺(tái)性能測(cè)試分析工具平臺(tái)。百度的服務(wù)目前主要為收費(fèi)服務(wù)。 隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,App 應(yīng)用非?;?,測(cè)試工程師也會(huì)接觸到各種 app 應(yīng)用。除了人工測(cè)試之外,也可以通過(guò)一些測(cè)試工具來(lái)提高我們的測(cè)試效率...
閱讀 1799·2021-11-12 10:36
閱讀 1695·2021-11-12 10:36
閱讀 3529·2021-11-02 14:46
閱讀 3969·2019-08-30 15:56
閱讀 3806·2019-08-30 15:55
閱讀 1555·2019-08-30 15:44
閱讀 1118·2019-08-30 14:00
閱讀 2803·2019-08-29 18:41