999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JMeter的微信小程序性能測試應用

2022-12-02 06:12:20紀芩
電腦與電信 2022年8期
關鍵詞:程序微信系統

紀芩

(江西省網絡安全研究院,江西 南昌 330019)

1 引言

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

2 性能測試概述

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

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

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

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

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

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

(5)容量測試:是指在一定的軟硬件及網絡環境下,測試系統所能支持的最大用戶數、最大存儲量等。容量測試通常與數據庫、系統資源(如CPU、內存、磁盤等)有關,用于規劃將來需求增長(如用戶增長、業務量增加等)時,對數據庫和系統資源的優化。

一般來說,性能測試的完整過程包括分析、設計、準備、執行和總結5個階段,常見的Web性能測試指標有:并發數、平均響應時間、服務器資源占用率、錯誤率、吞吐率等。

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

3.1 JMeter簡介及工作原理

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

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

JMeter具有開源免費且操作簡單、可進行功能擴展、測試腳本易于維護等眾多優點,正因如此,JMeter是目前使用率最高的性能測試工具之一。

3.2 測試需求

本文選取“云游吉安”微信小程序的“關鍵詞搜索”操作作為測試點來進行性能測試,測試工具版本為JMeter 5.1.1。“云游吉安”微信小程序是吉安市文廣新聞出版旅游局推出的一款涵蓋吃、住、行、游、購、娛、文化、歷史八個版塊,內容豐富,可為游客提供人性化服務體驗的小程序,用戶規模龐大。

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

表1 性能測試指標

3.3 腳本錄制及調試

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

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

再次錄制時,啟動JMeter的HTTP代理服務器,此時會在JMeter安裝目錄的bin目錄下生成一個安全證書文件ApacheJMeterTemporaryRootCA.Crt,隨后需要在JMeter選項>SSL管理器中導入此證書,導入后關閉JMeter。同時,電腦端也要導入JMeter剛剛生成的安全證書,筆者使用的電腦操作系統為Windows 10,導入證書過程為:在“運行”里面輸入certmgr.msc,進入到證書管理器,點擊“受信任的根證書頒發機構”,選擇要導入的證書,點擊導入即可。

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

圖1 搜索結果頁面

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

圖2 關鍵詞搜索——HTTP請求

圖3 關鍵詞搜索——察看結果樹

3.4 測試結果分析

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

圖4 1500并發數的聚合報告

圖8 3500并發數的聚合報告

從表2可知:

表2 性能測試結果

(1)系統的平均響應時間隨著并發數的逐步增加不斷增長,當并發數為3500時,平均響應時間達到3.134秒,不滿足性能測試指標要求。

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

綜上所述,并發數不超過3000時,系統各性能測試結果均滿足指標要求。當并發數為3000~3500時,系統平均響應時間超時,錯誤率出現,吞吐率從峰值急降,系統性能開始出現瓶頸,瓶頸原因可能與服務器的配置、網絡帶寬以及程序代碼邏輯有關。

4 結語

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

圖5 2000并發數的聚合報告

圖6 2500并發數的聚合報告

圖7 3000并發數的聚合報告

猜你喜歡
程序微信系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
微信
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
微信
主站蜘蛛池模板: 亚洲精品动漫| 国产精选自拍| 2021最新国产精品网站| 国产又大又粗又猛又爽的视频| 高清精品美女在线播放| 精品福利国产| 亚洲va欧美ⅴa国产va影院| 国产欧美精品一区aⅴ影院| 在线精品视频成人网| 欧洲高清无码在线| 手机精品福利在线观看| 亚洲看片网| 成人亚洲国产| 久久a毛片| 中文字幕在线观| 四虎永久在线精品国产免费 | 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲av无码片一区二区三区| 97在线公开视频| 福利在线不卡一区| 国产va免费精品| 精品一区二区三区水蜜桃| 毛片一级在线| 性欧美久久| 亚洲国产成人自拍| 中文无码日韩精品| 亚洲精品第一页不卡| 免费一级无码在线网站| 99er精品视频| 美女高潮全身流白浆福利区| 性欧美在线| 毛片网站在线看| av一区二区无码在线| 国产特级毛片| 亚洲二三区| 人妻无码一区二区视频| 亚洲精品自在线拍| 98精品全国免费观看视频| 亚洲午夜综合网| 欧美成人手机在线观看网址| 亚洲国产日韩视频观看| 五月天丁香婷婷综合久久| 国产无码精品在线| 成人蜜桃网| 毛片免费观看视频| 40岁成熟女人牲交片免费| 久青草国产高清在线视频| 亚洲男人天堂久久| 熟妇无码人妻| 国产精品自在线拍国产电影| 97在线公开视频| 97国产成人无码精品久久久| 人妻中文字幕无码久久一区| 国产欧美视频在线| 精品99在线观看| 欧美在线精品怡红院| 美女无遮挡被啪啪到高潮免费| 茄子视频毛片免费观看| 亚洲成人手机在线| 99草精品视频| 午夜久久影院| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 国产成人AV男人的天堂| 欧美精品成人一区二区视频一| 国产免费网址| 国产剧情一区二区| 制服丝袜 91视频| 曰韩人妻一区二区三区| 一级在线毛片| AV网站中文| 欧美久久网| 人妻丰满熟妇AV无码区| 日本成人在线不卡视频| 国产H片无码不卡在线视频| 成人福利免费在线观看| 无码'专区第一页| 亚洲区第一页| a天堂视频| 亚洲精品自产拍在线观看APP| 国产91无毒不卡在线观看| 中文字幕久久波多野结衣| 草逼视频国产|