亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于JMeter的微信小程序性能測試應(yīng)用

        2022-12-02 06:12:20紀(jì)芩
        電腦與電信 2022年8期
        關(guān)鍵詞:程序微信系統(tǒng)

        紀(jì)芩

        (江西省網(wǎng)絡(luò)安全研究院,江西 南昌 330019)

        1 引言

        微信小程序是不需要用戶下載安裝、只需用微信掃碼或搜索打開即可使用的手機(jī)應(yīng)用程序。因小程序的開發(fā)門檻低、傳播快、收益高,越來越多的開發(fā)者投入到小程序這一領(lǐng)域。馬化騰在第五屆世界互聯(lián)網(wǎng)大會公開表示,目前微信小程序應(yīng)用數(shù)量超過了100萬,覆蓋200多個(gè)細(xì)分的行業(yè),日活用戶達(dá)到2個(gè)億。但與此同時(shí),由于整體開發(fā)水平參差不齊,已出現(xiàn)越來越多的小程序質(zhì)量問題,尤其是在電商、零售、旅游、直播等容易有高并發(fā)量的行業(yè),小程序出現(xiàn)“服務(wù)器崩潰”“訪問響應(yīng)緩慢”“頁面操作卡死”“支付提交失敗”等性能問題更頻繁,所以對微信小程序的性能進(jìn)行測試很有必要。目前用開源的性能測試工具測微信小程序的性能案例很少,為此,筆者以旅游行業(yè)為例,詳細(xì)介紹如何使用JMeter來測微信小程序的性能。

        2 性能測試概述

        性能測試是指通過自動化工具模擬生產(chǎn)環(huán)境運(yùn)行的業(yè)務(wù)壓力和使用場景組合,覆蓋多種正常負(fù)載、峰值負(fù)載和異常負(fù)載條件,測試系統(tǒng)的性能是否滿足生產(chǎn)性能指標(biāo)要求的一系列過程[1]。性能測試是一項(xiàng)綜合性的工作,目的在于暴露性能問題,評估性能趨勢。通俗來說,性能測試實(shí)質(zhì)上就是利用工具去模擬大量用戶操作來驗(yàn)證系統(tǒng)能夠承受的負(fù)載情況,找出潛在的性能問題,分析并解決;找出系統(tǒng)性能變化趨勢,為后續(xù)的擴(kuò)展提供參考。

        常見的Web性能測試可以分為以下幾類:

        (1)負(fù)載測試:不斷加大負(fù)載(不同虛擬用戶數(shù))來確定在滿足性能指標(biāo)情況下系統(tǒng)能夠承受的最大用戶數(shù),這種測試可以幫我們對系統(tǒng)進(jìn)行定容定量,找到系統(tǒng)性能拐點(diǎn)。

        (2)壓力測試:也叫強(qiáng)度測試,它是指逐步給系統(tǒng)增加壓力,測試系統(tǒng)的性能變化,使系統(tǒng)某些資源達(dá)到飽和或系統(tǒng)崩潰的邊緣,從而確定系統(tǒng)所能承受的最大壓力。

        (3)并發(fā)測試:模擬多用戶并發(fā)訪問同一應(yīng)用、同一操作的測試,記錄是否會產(chǎn)生一些問題。

        (4)配置測試:為了合理地調(diào)配資源,提高系統(tǒng)運(yùn)行效率,通過測試手段來獲取、驗(yàn)證、調(diào)整配置信息的過程,通過這個(gè)過程我們可以收集到不同配置反映出來的不同性能,從而為設(shè)備選擇及配置提供參考。

        (5)容量測試:是指在一定的軟硬件及網(wǎng)絡(luò)環(huán)境下,測試系統(tǒng)所能支持的最大用戶數(shù)、最大存儲量等。容量測試通常與數(shù)據(jù)庫、系統(tǒng)資源(如CPU、內(nèi)存、磁盤等)有關(guān),用于規(guī)劃將來需求增長(如用戶增長、業(yè)務(wù)量增加等)時(shí),對數(shù)據(jù)庫和系統(tǒng)資源的優(yōu)化。

        一般來說,性能測試的完整過程包括分析、設(shè)計(jì)、準(zhǔn)備、執(zhí)行和總結(jié)5個(gè)階段,常見的Web性能測試指標(biāo)有:并發(fā)數(shù)、平均響應(yīng)時(shí)間、服務(wù)器資源占用率、錯(cuò)誤率、吞吐率等。

        3 使用JMeter測微信小程序的性能

        3.1 JMeter簡介及工作原理

        Apache JMeter是Apache組織開發(fā)的基于Java的性能測試工具,它是一款開源桌面應(yīng)用軟件,可用來模擬用戶負(fù)載來完成性能測試工作。JMeter可以對Web應(yīng)用進(jìn)行測試,也可 以 對Java請 求、JMS、EJB、WebService、JDBC、FTP、JSR223、Socket等協(xié)議進(jìn)行測試,除此之外,還可以通過擴(kuò)展JMeter功能來滿足特定的測試需求。

        在Web性能測試中,JMeter軟件被當(dāng)作Web服務(wù)器與瀏覽器之間的一個(gè)代理網(wǎng)管,模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對象上附加高負(fù)載以測試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負(fù)載條件下的總性能情況[2]。JMeter體系結(jié)構(gòu)由取樣器、前/后置處理器、配置元件、控制器、斷言、監(jiān)聽器、線程組等元件組成,它的基本工作原理是建立一個(gè)線程池,多線程運(yùn)行取樣器產(chǎn)生大量負(fù)載,在運(yùn)行過程中通過斷言來驗(yàn)證結(jié)果的正確性,通過監(jiān)聽器來記錄測試結(jié)果[3]。如果取樣器中有參數(shù)化的需求,可以通過配置元件或者前置處理器來完成;如果有關(guān)聯(lián)需求,可以通過后置處理器來完成;如果想要設(shè)置應(yīng)用場景,比如模擬多少用戶、運(yùn)行多長時(shí)間,可以設(shè)置線程組;如果想要模擬并發(fā)場景,可以利用定時(shí)器來設(shè)置;如果想要控制業(yè)務(wù)的執(zhí)行邏輯,可以用控制器來完成。

        JMeter具有開源免費(fèi)且操作簡單、可進(jìn)行功能擴(kuò)展、測試腳本易于維護(hù)等眾多優(yōu)點(diǎn),正因如此,JMeter是目前使用率最高的性能測試工具之一。

        3.2 測試需求

        本文選取“云游吉安”微信小程序的“關(guān)鍵詞搜索”操作作為測試點(diǎn)來進(jìn)行性能測試,測試工具版本為JMeter 5.1.1?!霸朴渭病蔽⑿判〕绦蚴羌彩形膹V新聞出版旅游局推出的一款涵蓋吃、住、行、游、購、娛、文化、歷史八個(gè)版塊,內(nèi)容豐富,可為游客提供人性化服務(wù)體驗(yàn)的小程序,用戶規(guī)模龐大。

        根據(jù)小程序的實(shí)際使用需求,制定性能指標(biāo)如表1。由于“云游吉安”是一款真實(shí)在用的商業(yè)小程序,沒有開發(fā)方的配合,有些性能指標(biāo)比如服務(wù)器CPU占用率和內(nèi)存使用率無法進(jìn)行測試獲取,故不列入本文性能測試指標(biāo)。筆者首先從1500并發(fā)數(shù)開始測試,分5次逐漸增加并發(fā)數(shù)到3500,分析各個(gè)性能指標(biāo)結(jié)果的變化。

        表1 性能測試指標(biāo)

        3.3 腳本錄制及調(diào)試

        微信小程序可在手機(jī)端微信和電腦端微信中運(yùn)行,經(jīng)過多次嘗試,筆者發(fā)現(xiàn)在手機(jī)端微信進(jìn)行測試時(shí)JMeter工具錄制不到有效腳本,F(xiàn)idder、Burpsuite等抓包工具可錄制到有效腳本,因此需要通過Fidder、Burpsuite錄制腳本導(dǎo)出.jmx格式然后在JMeter上運(yùn)行,而且腳本還要進(jìn)行開發(fā)和調(diào)試,此方法比較繁瑣。最終,筆者選用“云游吉安”微信小程序電腦端進(jìn)行腳本錄制及測試。腳本錄制之前,電腦端要設(shè)置代理,地址為:127.0.0.1,端口號可自行設(shè)置,這里設(shè)為8886,和JMeter中的HTTP代理服務(wù)器端口號一致。

        初次錄制時(shí),打開JMeter按常規(guī)步驟添加線程組、HTTP代理服務(wù)器、HTTP Cookie管理器等元件,在HTTP代理服務(wù)器中,端口號設(shè)為8886,目標(biāo)控制器選擇:測試計(jì)劃>線程組,分組選擇:不對樣本分組,其余設(shè)置默認(rèn),然后啟動HTTP代理服務(wù)器,接著在電腦端微信操作“云游吉安”小程序,錄制結(jié)束后發(fā)現(xiàn)JMeter無法錄制到有效內(nèi)容,只錄制到個(gè)別無效請求。檢查發(fā)現(xiàn)這些請求都是https協(xié)議,因?yàn)殇浿苃ttp和https有不一樣的規(guī)則,https是http+SSL,需要安全證書,所以被禁止訪問。

        再次錄制時(shí),啟動JMeter的HTTP代理服務(wù)器,此時(shí)會在JMeter安裝目錄的bin目錄下生成一個(gè)安全證書文件ApacheJMeterTemporaryRootCA.Crt,隨后需要在JMeter選項(xiàng)>SSL管理器中導(dǎo)入此證書,導(dǎo)入后關(guān)閉JMeter。同時(shí),電腦端也要導(dǎo)入JMeter剛剛生成的安全證書,筆者使用的電腦操作系統(tǒng)為Windows 10,導(dǎo)入證書過程為:在“運(yùn)行”里面輸入certmgr.msc,進(jìn)入到證書管理器,點(diǎn)擊“受信任的根證書頒發(fā)機(jī)構(gòu)”,選擇要導(dǎo)入的證書,點(diǎn)擊導(dǎo)入即可。

        再次打開JMeter進(jìn)行最后一次錄制,啟動HTTP代理服務(wù)器后,在電腦端微信打開“云游吉安”小程序,接著點(diǎn)擊首頁關(guān)鍵詞搜索框,頁面隨即跳轉(zhuǎn)到專門的搜索頁面,搜索框輸入“井岡山”回車后,搜索結(jié)果頁面如圖1所示。

        圖1 搜索結(jié)果頁面

        錄制結(jié)束后對腳本進(jìn)行分析,將明顯的無用HTTP請求刪除,再對其余HTTP請求一一進(jìn)行分析。通過在每條HTTP請求下面添加監(jiān)聽器>察看結(jié)果樹,運(yùn)行腳本后分析每條HTTP請求提交的數(shù)據(jù)和服務(wù)器對其的響應(yīng)數(shù)據(jù),直到出現(xiàn)正確的請求和響應(yīng)數(shù)據(jù),說明腳本調(diào)試成功,隨后可以刪除腳本中的無效請求,只保留“關(guān)鍵詞搜索”操作對應(yīng)的請求。調(diào)試成功的腳本如圖2、圖3所示,圖2中同請求一起發(fā)送各參數(shù)值及圖3中察看結(jié)果樹的響應(yīng)數(shù)據(jù)均與錄制時(shí)的圖1一致。圖2中HTTP信息頭管理器Referer值為:https://servicewechat.com/wx7827424d4fb6f317/67/page-frame.html。

        圖2 關(guān)鍵詞搜索——HTTP請求

        圖3 關(guān)鍵詞搜索——察看結(jié)果樹

        3.4 測試結(jié)果分析

        在腳本中添加簡單控制器、同步定時(shí)器、聚合報(bào)告、圖形結(jié)果、響應(yīng)斷言、斷言結(jié)果等元件,在響應(yīng)斷言中測試模式里面輸入“井岡山”、自定義失敗消息里面輸入“查詢失敗”,其余設(shè)置默認(rèn),然后按照測試計(jì)劃分5次進(jìn)行多用戶并發(fā)測試。分別將線程數(shù)和定時(shí)器中模擬用戶組數(shù)量設(shè)為1500、2000、2500、3000、3500,運(yùn)行腳本后,性能測試結(jié)果(聚合報(bào)告)如圖4~圖8所示,將圖4~圖8的結(jié)果數(shù)據(jù)進(jìn)行整理,得出表2。

        圖4 1500并發(fā)數(shù)的聚合報(bào)告

        圖8 3500并發(fā)數(shù)的聚合報(bào)告

        從表2可知:

        表2 性能測試結(jié)果

        (1)系統(tǒng)的平均響應(yīng)時(shí)間隨著并發(fā)數(shù)的逐步增加不斷增長,當(dāng)并發(fā)數(shù)為3500時(shí),平均響應(yīng)時(shí)間達(dá)到3.134秒,不滿足性能測試指標(biāo)要求。

        (2)隨著并發(fā)數(shù)的增加,系統(tǒng)的吞吐率先增后降,當(dāng)并發(fā)數(shù)為3000時(shí),吞吐率達(dá)到最大值591.0事務(wù)/秒,而后開始急劇下降,當(dāng)并發(fā)數(shù)為3500時(shí),吞吐率降至156.0事務(wù)/秒,不滿足性能測試指標(biāo)要求。

        綜上所述,并發(fā)數(shù)不超過3000時(shí),系統(tǒng)各性能測試結(jié)果均滿足指標(biāo)要求。當(dāng)并發(fā)數(shù)為3000~3500時(shí),系統(tǒng)平均響應(yīng)時(shí)間超時(shí),錯(cuò)誤率出現(xiàn),吞吐率從峰值急降,系統(tǒng)性能開始出現(xiàn)瓶頸,瓶頸原因可能與服務(wù)器的配置、網(wǎng)絡(luò)帶寬以及程序代碼邏輯有關(guān)。

        4 結(jié)語

        用開源性能測試工具JMeter對微信小程序進(jìn)行性能測試的案例目前很少,所以本文測試方法具有一定的新穎性。傳統(tǒng)思想是用微信手機(jī)端運(yùn)行小程序進(jìn)行測試,那樣很可能會錄制失敗,或者錄制難度和繁瑣度會大大增加。本文作者的創(chuàng)新點(diǎn)在于運(yùn)用JMeter對微信小程序電腦端進(jìn)行性能測試,此測試方法準(zhǔn)確有效,操作簡單易上手。讀者后續(xù)可以自行選擇一些感興趣的微信小程序參照本文方法進(jìn)行測試,如果定的性能指標(biāo)中并發(fā)數(shù)較大,可考慮采用多臺負(fù)載機(jī)進(jìn)行分布式測試。

        圖5 2000并發(fā)數(shù)的聚合報(bào)告

        圖6 2500并發(fā)數(shù)的聚合報(bào)告

        圖7 3000并發(fā)數(shù)的聚合報(bào)告

        猜你喜歡
        程序微信系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        試論我國未決羈押程序的立法完善
        “程序猿”的生活什么樣
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        英國與歐盟正式啟動“離婚”程序程序
        微信
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        微信
        国产精品久久久福利| 久久91精品国产91久| 男女啦啦啦视频在线观看| 日韩不卡的av二三四区| 国产乱子伦农村xxxx| 亚洲AV日韩AV永久无码电影| 亚洲综合色婷婷七月丁香| 国产三级精品av在线| 蜜臀av午夜一区二区三区| 最近高清中文在线字幕观看| 日本岛国大片不卡人妻| 护士人妻hd中文字幕| 一本大道无码人妻精品专区| 天天爱天天做天天爽| 久久精品中文字幕亚洲| 人成在线免费视频网站| 麻豆影视视频高清在线观看| 中文字幕国产欧美| 国产精品亚洲一区二区三区妖精| 国产99一区二区三区四区| 亚洲性爱视频| 亚洲无码夜夜操| 粉色蜜桃视频完整版免费观看在线| 亚洲av综合色区无码专区桃色| 欧美性猛交xxxx黑人猛交| 在线无码精品秘 在线观看| 国产内射一级一片高清内射视频| 久久天天躁狠狠躁夜夜不卡| 久久97精品久久久久久久不卡| 色偷偷av一区二区三区人妖| av免费在线免费观看| 国产午夜无码片在线观看影院| 亚洲欧美在线观看一区二区| 偷窥偷拍一区二区三区| 无码无套少妇毛多18pxxxx| 97精品伊人久久大香线蕉app| 韩国免费一级a一片在线| 精品一区二区三区芒果| 高清偷自拍第1页| 最新日韩av在线不卡| 亚州无吗一区二区三区|