并發測試mysql_Jmeter性能測試系列——結果分析與報告輸出

場景運行結束后,需針對測試結果進行性能分析。通常而言,Jmeter性能測試結果分析可從性能測試指標達成方面著手,然后再分析測試過程中出現的異常情況,逐一判斷是否存在性能風險。

1.用戶登陸并發測試結果分析

獲取測試指標提取階段獲得的用戶登陸并發性能指標數據,如表1所示。

0c9f7f9c011d787e98afd24fdfec1557.png

表1用戶登陸并發性能指標

測試項響應時間業務成功率并發測試CPU使用率內存使用率登陸<=5秒100%100<=80%<=80%

(1)響應時間

用戶登陸響應時間目標指標<=5秒,結合Jmeter執行結果后的聚合報告分析,如圖1所示。

13245e3f2a2b69d24a529facc125e363.png

圖1用戶登陸并發測試聚合報告結果

從圖中可以看到,每個請求的平均值為559.18毫秒、108毫秒、80毫秒,用戶登陸過程中的每一個請求均<=5秒,故測試通過。在Average response time與90%、95%相差不大時,可采用90%采樣數據填入測試結果對比表。

(2)Apdex

性能指數,Apdex(Application Performance Index)是一個國際通用標準,Apdex 是用戶對應用性能滿意度的量化值。它提供了一個統一的測量和報告用戶體驗的方法,把最終用戶的體驗和應用性能作為一個完整的指標進行統一度量。該指標在制定性能測試指標時可根據實際性能評價需求增加。

圖2表示為通用用戶滿意度區域,0代表沒有滿意用戶,1則代表所有用戶都滿意。實際業務系統開發過程中,1是團隊的追求目標。

9ab24f2d825c447db25614ca7d0a466e.png

圖2 Apdex滿意度指標

針對ECShop用戶登陸業務,100個并發登陸的APDEX指標如圖3所示。從圖中可看出,所有請求的Apdex值都接近1,因此用戶滿意度優秀,也從側面說明了服務器響應速度快。

f7ba0e65304bef9da866870e1986100d.png

圖3用戶登陸100并發APDEX指標情況

(3)業務成功率

測試腳本中設置了斷言,判斷用戶登陸后是否出現“登陸成功”字樣,并設定了“斷言結果”查看器,通過查看斷言結果,全部通過,則說明登陸全部完成,業務成功率為100%。

50f115a1b5dfba709e8011acb42ba553.png

圖4用戶登陸斷言結果

(4)并發數

線程組設置為100個線程,運行過程中未出現任何異常,滿足100個線程并發操作需求。

(5)系統資源使用

利用Jmeter監控系統資源,測試完成后結果如圖5所示。

a64265fa5752abbf749577010738389d.png

圖5用戶登陸并發測試系統資源圖

通過上圖分析,CPU處于正常狀態,因此次測試場景運行時間短,所以波峰及波谷明顯,但均未持續超過80%,內存幾乎無變化,被測服務器內存使用率維持在20%以內。因此測試結果符合預期目標指標。

(6)數據庫監控

利用Spotlight監控到的服務器Mysql數據庫在測試期間運行的SQL為SELECT,與被測登陸業務對數據庫操作吻合,如圖6所示。

aa3014b07df4c55b7dae84fec37ae91a.png

圖6用戶登陸并發測試Mysql運行情況

通過上述測試指標分析,更新用戶登陸并發測試結果表如表2所示。

cc24416e1969edd19e70daa052070a6f.png

表2用戶登陸并發測試結果對照表

測試項結果屬性響應時間業務成功率并發測試CPU使用率內存使用率

登陸預期結果<=5秒100%100<=80%<=80%實際結果0.169秒100%100不超過80%20%通過/失敗YYYYY

2.用戶登陸業務量測試結果分析

提取用戶登陸業務量測試的目標指標如表3所示

285a611a2ee27c45368b8a442dfb9110.png

表3用戶登陸業務量性能指標

測試項響應時間業務成功率業務量CPU使用率內存使用率登陸<=5秒100%2小時5萬次<=80%<=80%

(1)響應時間

測試完成,生成測試報告后,獲取響應時間趨勢圖,如圖7所示。

d3b5ca4a1381606d834ab7f009fe6f03.png

圖7用戶登陸業務量測試響應時間圖

通過上圖分析,采用90%采樣數據,分析整個請求,任何一個請求均未超過5秒,因此響應時間通過。

(2)業務成功率

測試過程中所有斷言通過,并且沒有任何錯誤,登陸成功率100%。“打開首頁”、“打開用戶登陸頁面”、“提交登陸信息”與后面請求數據存在差異,是因為測試時間到達后部分請求立刻停止,故未能保證業務的完整性。

(3)業務量

本次業務量測試,設置線程數為78個,2小時完成登陸總數為8427次登陸,其中包含了11秒操作停留時間,如果去除11秒停留時間,從數據理論計算,2*60*60/0.131=54961次,可達到預期2小時5萬次登陸操作,需進一步測試。

(4)系統資源使用

通過Jmeter監控服務器CPU及內存使用率來看,CPU及內存使用率非常穩定,且維持在20%-30%之間,滿足預期目標不超過80%,測試通過。

5cb6c282b98ba0d0cd0e94e2e0a99424.png

圖8用戶登陸業務量測試2小時系統資源圖

(5) 數據庫監控

數據庫執行過程監控正常,符合業務請求變化趨勢,如圖9所示。

4dc45b94dbb094b52b442df6c45517a9.png

圖9用戶登陸業務量Mysql資源監控圖

通過上述測試指標分析,更新用戶登陸業務量測試結果表如表4所示。

55f1bae54e4c89ee58b17d954c4e30f5.png

表4用戶登陸業務量并發測試結果

測試項結果屬性響應時間業務成功率業務量CPU使用率內存使用率用戶登陸預期結果<=5秒100%2小時5萬<=80%<=80%實際結果0.131秒100%54961<40%20%通過/失敗YYNYY

業務量測試存在一定差異,可進一步測試。

3.隨機購物并發測試結果分析

提取隨機購物并發測試的目標指標如表5所示。

ee6a154f7a84c6f67362dc6d70c09ffe.png

表5隨機購買商品并發測試目標指標

測試項響應時間業務成功率并發測試CPU使用率內存使用率隨機購買商品<=5秒100%100<=80%<=80%

(1)響應時間

測試完成后,根據生成的測試報告,獲取隨機購物100個并發響應時間如圖10所示。

a5440380532fe0de5f6150d745d9bb4e.png

圖10隨機購物并發測試響應時間

通過上圖分析,隨機購物100個線程并發執行時,平均響應時間分別為:631毫秒、105毫秒、588毫秒、748毫秒、246毫秒、288毫秒、786毫秒、2848毫秒、1934毫秒、2161毫秒、836毫秒、290毫秒、307毫秒,通過這些數據分析,每個請求所消耗的時間均未超過5秒,但90%采樣數據中,“填寫收貨信息”請求響應時間為5395毫秒,嚴格來說,該請求測試不通過。更新測試目標指標表時可采用90%采樣。

(2)Apdex指標

隨機購物100個并發測試的Apdex指標信息如圖11所示。

ff5defd98ac4c8a544623eb1dfbf1b9b.png

圖11隨機購物100并發Apdex指標

通過上圖可以看出,填寫收貨信息、提交物流及付款方式、進入物流及付款方式設定頁面三個請求用戶滿意度低于0.5,意味系統對這三個請求的響應時間較慢,尤其是收貨信息、提交物流及付款方式這兩個情況。測試工程師可針對這兩個請求,給出性能測試不通過結論。通常而言,最低要求超過0.5,當然項目組可設定具體需求。

(3)業務成功率

測試結束后,檢查系統后臺訂單信息,100個并發線程,每個線程循環1次,故生成100個訂單,且運行過程中沒有任何錯誤。故認為隨機購物100并發測試業務成功率為100%。

(4)并發數

線程組設置為100個線程,運行過程中未出現任何異常,滿足100個線程并發操作需求。

(5)系統資源使用

執行過程,通過Jmeter監控得到本次測試系統資源使用情況,如圖12所示。

001d4dbdeea0e41a909a761f63f56902.png

圖12隨機購買100并發系統資源監控圖

通過上圖分析可知,CPU在測試過程中持續值維持在90%以上,有17秒時間幾乎達到100%,因此從指標信息判斷,本次CPU使用率超過預期80%的目標。

同時,內存使用率在25秒以后也呈現明顯上升趨勢,需分析這段時間什么業務導致資源使用率上升。總體內存使用率維持在30%-40%之間,低于預期目標不超過80%,故內存使用率通過。

基于CPU、內存使用率,分析響應時間圖表,如圖13所示。

66fc08eefad6ff7e2fc05c6f1fae95eb.png

圖13隨機購買100并發響應時間圖

通過上圖分析,可知“填寫收貨信息”響應時間持續升高,需測試工程師報告此問題,聯合研發同事分析“填寫收貨信息”涉及哪些具體操作,如是否操作數據庫,是否需要大量緩存、是否調用第三方地址編輯控件等,從而確定響應時間升高原因,是否因此導致CPU及內存使用率升高。

(6)數據庫監控

從Mysql數據庫SQL語句執行速度來看,符合場景執行設計過程,但SQL中Inserts語句體現不明顯,需關注原因,確定是監控本身問題,還是被測對象SQL語句設計問題。

8d56212bc1642ba41236eabc8ccfc705.png

圖14隨機購買100并發Mysql數據庫資源圖

通過上述測試指標分析,更新用戶登陸并發測試結果表如表6所示。

63260e3f8c9124b9af63cf23ed679cec.png

表6隨機購買100并發測試結果

測試項結果屬性響應時間業務成功率并發測試CPU使用率內存使用率 隨機購買商品預期結果<=5秒100%100<=80%<=80%實際結果2.302秒100%100>90%20%通過/失敗NYYNY

綜合測試數據分析,“填寫收貨信息”請求響應時間超過5秒,CPU使用率超過90%,故隨機購物100并發場景測試不通過。需分析“填寫收貨信息”涉及哪些操作,導致響應時間變長的原因,是否對CPU及內存使用率造成了影響。

4.隨機購物業務量測試結果分析

提取隨機購物業務量測試指標如表7所示:

fdd87e407d823da767368d73d9df0ec3.png

表7隨機購買商品業務量測試目標指標

測試項響應時間業務成功率業務量CPU使用率內存使用率隨機購買商品<=5秒100%2小時5萬次<=80%<=80%

100個線程持續執行2分鐘后,出現大量業務錯誤,服務器CPU使用率持續維持在100%附近,因此利用100個線程進行2小時的隨機購物業務量測試失敗。可根據需要,利用折半驗證法,驗證系統穩定性測試的最佳線程數及服務器資源配置是否合理。

數據庫報錯如下:

MySQL server error report:Array( [0] => Array ( [message] => MySQL Query Error ) [1] => Array ( [sql] => INSERT INTO `ecshop`.`ecs_order_info` (order_sn, user_id, order_status, shipping_status, pay_status, consignee, country, province, city, district, address, zipcode, tel, mobile, email, best_time, sign_building, postscript, shipping_id, shipping_name, pay_id, pay_name, how_oos, card_message, inv_payee, inv_content, goods_amount, shipping_fee, insure_fee, pay_fee, pack_fee, card_fee, surplus, integral, integral_money, bonus, order_amount, from_ad, referer, add_time, pack_id, card_id, bonus_id, extension_code, extension_id, agency_id, inv_type, tax, parent_id, discount, lastmodify) VALUES ('2017110775867', '2223', '0', '0', '0', 'hzdl00168', '1', '2', '37', '403', '北京東城區', '', '01088888888', '', 'hzdl00168@qq.com', '', '', '', '5', '申通快遞', '2', '銀行匯款/轉帳', '等待所有商品備齊后再發', '', '', '', '1999', '15', '0', '0', '0', '0', '0', '0', '0', '0', '2014.00', '0', '本站', '1510050069', '0', '0', '0', '', '0', '0', '', '0', '0', '', '1510050069') ) [2] => Array ( [error] => Duplicate entry '2017110775867' for key 'order_sn' ) [3] => Array ( [errno] => 1062 ))

系統資源趨勢圖:

8df9f58eb281f4811e2b0bbdace1dfed.png

圖15隨機購買2小時業務量測試系統資源圖

上述所有場景,如時間、條件、資源允許,測試工程師應當多測試幾次,根據平均值輸出測試報告。

9c7227fb0b02fc45364fcd86a022f281.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529569.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529569.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529569.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

怎樣取消連續包月自動續費_蘋果手機連續包月會員怎么取消 設置iPhone解除應用自動續費...

[閩南網]相信我們都有在用蘋果手機下載軟件&#xff0c;但是有時候一個不小心就被開通了包月續費&#xff0c;這個的話會長期進行扣費&#xff0c;要是不想開通的話可以進行取消&#xff0c;不知道的話可以查看下面的教程。取消收費項目是可以從電腦端和手機端兩個渠道來進行&a…

oracle 空閑連接數_oracle數據庫空閑連接

RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available在使用rman duplicate復制standby數據庫的時候&#xff0c;由于standby數據庫實例必須處于非mount狀態&#xff0c;所以主數據庫直接連接是會報錯的&#xff0c;需要在standby數據庫服務上的監聽器…

配置snmp_多種設備基于 SNMP 協議的敏感信息泄露漏洞數據分析報告

作者&#xff1a;知道創宇404實驗室1. 更新情況2. 事件概述SNMP協議[1]&#xff0c;即簡單網絡管理協議&#xff08;SNMP&#xff0c;Simple Network Management Protocol&#xff09;&#xff0c;默認端口為 161/UDP&#xff0c;目前一共有3個版本&#xff1a;V1&#xff0c;V…

python 個人所得稅問題_Python實現的個人所得稅計算器

這篇文章主要介紹了Python實現的個人所得稅計算器,涉及Python條件判斷與數值運算相關操作技巧,需要的朋友可以參考下本文實例講述了Python實現的個人所得稅計算器。分享給大家供大家參考&#xff0c;具體如下&#xff1a;# -*- coding: utf-8 -*-"""Created on …

建立項目接口文檔_分享:一步一個腳印,vue入門之使用mockjs搭建vue項目測試服務器...

在以前的文檔中&#xff0c;我們構建了vue項目的整體架構&#xff0c;詳見vue入門&#xff1a;vue項目架構設計起步&#xff0c;現在我們主要對其中的mock server 進行完善。一、概述前后端分離的項目優點之一就是可以前后端并行開發&#xff0c;互不影響。那么在后端接口沒有完…

有效字符區域 獲取textview_Android編程開發之TextView文字顯示和修改方法(附TextView屬性介紹)...

本文實例講述了Android編程開發之TextView文字顯示和修改方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;一. 新建一個Activity 和 Layout首先在layout文件夾中新建一個activity_main.xml,在新建工程的時候一般默認會新建此xml文件,修改其代碼如下:activity_main.…

單機最大負載_電流互感器允許接入的實際最大二次負載(注電案例1865)

某國外水電站安裝的水輪發電機組&#xff0c;單機額定容量為 120MW&#xff0c;發電機額定電壓為 13.8kV&#xff0c;cosφ0.85。發電機、主變壓器采用發變組單元接線&#xff0c;未裝設發電機斷路器&#xff0c;主變高壓側三相短路時流過發電機的最大短路電流為 19.6kA。發電機…

vue怎么vw布局好用_vue cli3項目的pc自適應布局_vw

前言vw布局的頁面是等比改變的,比如我們在一個750px的屏幕寬度中使用了vw,當我們把屏幕寬度改為1920的時候,網頁的整個樣式包括字體都會等比放大.vw布局我用于大屏監控數據展示.下圖是750屏幕寬度下的頁面下圖是1920屏幕寬度下的頁面pc端配置1.安裝postcss-px-to-viewport插件,…

python做得怎么變成exe_Python如何生成exe文件?

背景圖來源&#xff1a;click斗魚直播間真實rtmp地址獲取(含工具類下載)?zhuanlan.zhihu.com最經典的Python爬蟲(圖片)案例?zhuanlan.zhihu.com寫在前面&#xff1a;之前用python生成過可執行的exe文件(斗魚推流地址exe &#xff0c;圖片exe&#xff0c;芳兒小團子千人成像ex…

python mkl freebsd_freebsd下之簡單安裝python

先su到root帳戶進入/usr/ports/lang/python26然后直接make整個過程如圖所示&#xff0c;經過漫長的編譯之后...然后make install又是漫長的等待...出現Install them as needed.--------------------------------------------------------This package was built with the exper…

html video顯示進度條_使用 tqdm 在 Python 應用中顯示進度 | Linux 中國

如果你的程序需要一段時間才能顯示結果&#xff0c;可通過顯示它的進度來避免讓用戶感到沮喪。來源&#xff1a;https://linux.cn/article-12990-1.html作者&#xff1a;Moshe Zadka譯者&#xff1a;geekpi&#xff08;本文字數&#xff1a;3093&#xff0c;閱讀時長大約&#…

課題開題報告范文樣本_成都汽車職業技術學校舉行 2020年省、市、區課題開題報告會...

01為深入貫徹落實國務院、省、市、區關于深化教育教學改革的重要精神&#xff0c;充分發揮教育科研的先導作用&#xff0c;明晰課題研究的思路并提高課題研究的針對性&#xff0c;1月12日&#xff0c;成都汽車職業技術學校舉行2020年省、市、區課題開題報告會。本次開題報告會邀…

vsftp日志查看_vsftp日志xferlog格式分析(示例代碼)

1、開始vsftp記錄日志。修改/etc/vsftpd/vsftpd.conf 如下&#xff1a;xferlog_enableYESxferlog_std_formatYESxferlog_file/var/log/xferlogFTP服務器的日志設置&#xff0c;可以通過修改主配置文件/etc/vsftpd.conf實現。主配置文件中與日志設置有關的選項包括xferlog_enabl…

安裝mysql5 1步驟_Linux系統安裝MySQL詳細步驟(mysql-5.1等)

第一步、查找以前是否安裝有mysql使用下面命令&#xff1a;rpm -qa|grep -i mysql如果顯示有包則說明已安裝mysql第二步、如果已安裝&#xff0c;則需要刪除已安裝的數據庫可按以下步驟刪除數據庫&#xff1a;刪除包命令&#xff1a;rpm -e --nodeps 【包名】rpm -e --nodeps …

mysql分頁查詢關鍵_MySQL優化教程之超大分頁查詢

背景基本上只要是做后臺開發&#xff0c;都會接觸到分頁這個需求或者功能吧。基本上大家都是會用MySQL的LIMIT來處理&#xff0c;而且我現在負責的項目也是這樣寫的。但是一旦數據量起來了&#xff0c;其實LIMIT的效率會極其的低&#xff0c;這一篇文章就來講一下LIMIT子句優化…

mysql r_R之RMySQL

linux&#xff0c;mysql和R的版本信息&#xff1a;Linux naci 3.19.0-16-generic #16-Ubuntu SMPServer version: 5.6.24-0ubuntu2 (Ubuntu)R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"mysql的linux安裝&#xff0c;參照上一篇關于liunx下安裝mysql的文章。1.…

mysql 字符轉換函數是_MySQL日期和字符串轉換函數

Mysql中to_char()和str_to_date()函數轉載路徑&#xff1a;https://blog.csdn.net/ricardo_mli/article/details/802175121.字符串轉換成日期格式str_to_date(date,’%Y-%m-%d’)----->相當于Oracle中的to_char();例子&#xff1a;INSERT INTOt_order(order_time)VALUES(str…

mysql數據加百分號_使用MySQL SELECT語句時,在每個值的末尾添加一個百分號(%)...

要在末尾添加百分號&#xff0c;請使用CONCAT()函數。讓我們首先創建一個表-mysql> create table DemoTable(StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,StudentName varchar(100),StudentScore int);使用插入命令在表中插入一些記錄-mysql> insert into DemoTa…

mysql 分頁 jdbc_JDBC調用MySQL分頁存儲過程實現(一)

DROP PROCEDURE IF EXISTS pro_pager;CREATE DEFINER root% PROCEDURE pro_pager(in p_pageNo int, /*當前頁*/in p_perPageCnt int, /*每頁記錄數*/in p_sql VARCHAR(2000), /*查詢sql語句*/out v_totalRowsCnt int, /*記錄總條數*/out v_totalPageCnt int) /*記錄總頁數*/BE…

mariadb mysql表_mysql/mariadb學習記錄——創建刪除數據庫、表的基本命令

查看已有的數據庫&#xff1a;mysql>show databases;--------------------| Database |--------------------| information_schema || test |--------------------2 rows in set (0.05 sec)新建數據庫語句:mysql>create database wzu;Query OK,1 row affected (0.05sec)m…