并发测试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.mzph.cn/news/529569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样取消连续包月自动续费_苹果手机连续包月会员怎么取消 设置iPhone解除应用自动续费...

[闽南网]相信我们都有在用苹果手机下载软件&#xff0c;但是有时候一个不小心就被开通了包月续费&#xff0c;这个的话会长期进行扣费&#xff0c;要是不想开通的话可以进行取消&#xff0c;不知道的话可以查看下面的教程。取消收费项目是可以从电脑端和手机端两个渠道来进行&a…

配置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…

建立项目接口文档_分享:一步一个脚印,vue入门之使用mockjs搭建vue项目测试服务器...

在以前的文档中&#xff0c;我们构建了vue项目的整体架构&#xff0c;详见vue入门&#xff1a;vue项目架构设计起步&#xff0c;现在我们主要对其中的mock server 进行完善。一、概述前后端分离的项目优点之一就是可以前后端并行开发&#xff0c;互不影响。那么在后端接口没有完…

单机最大负载_电流互感器允许接入的实际最大二次负载(注电案例1865)

某国外水电站安装的水轮发电机组&#xff0c;单机额定容量为 120MW&#xff0c;发电机额定电压为 13.8kV&#xff0c;cosφ0.85。发电机、主变压器采用发变组单元接线&#xff0c;未装设发电机断路器&#xff0c;主变高压侧三相短路时流过发电机的最大短路电流为 19.6kA。发电机…

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年省、市、区课题开题报告会。本次开题报告会邀…

安装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 分页 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…

zabbix proxy mysql_zabbix proxy 配置

在监控大量服务器时&#xff0c;如果将所有的请求都发送到一个zabbix server上&#xff0c;将会对我们的zabbix server造成很大的压力&#xff0c;我们在规划多个区域或机房进行监控的时候&#xff0c;会考虑到使用zabbix proxy 来代理zabbix server 的部分功能。zabbix server…

mvc mysql linq_MVC3+Linq to sql 显示数据库中数据表的数据

1&#xff1a;首先创建asp.net mvc3应用程序 2&#xff1a;创建项目完成后 找到controllers文件鼠标右击选择添加控制器 3 为models文件夹添加一个linq to sql类文件&#xff0c;然后把数据库中的数据库复制进来。如截图操作 4&#xff1a;添加控制器好后会生成一个HomeControl…

mysql工作表格制作教程_Access制作复杂报表

何制作复杂报表利用excel输出复杂报表 在读这篇文章以前首先要提醒大家&#xff0c;Access 本身的报表也具有很强的实用性和强大的功能&#xff0c;只有当你发掘了其本身全部的功能却仍不能满足你对报表的特殊要求时才请使用 Excel 输出报表。很明显&#xff0c;使用 Excel 输出…

php+mysql投票代码_PHP+jQuery+MySql实现红蓝投票功能

本文是一篇综合知识应用类文章&#xff0c;需要您具备PHP、jQuery、MySQL以及html和css方面的基本知识。本文在《PHPMySqljQuery实现的“顶”和“踩”投票功能》一文基础上做了适当改进&#xff0c;共用了数据表&#xff0c;您可以先点击了解这篇文章。HTML我们需要在页面中展示…

numpy 最大值_第 85 天:NumPy 统计函数

数学统计在我们的程序当中特别是数据分析当中是必不可少的一部分&#xff0c;本文就来介绍一下 NumPy 常见的统计函数。最大值与最小值numpy.amin()用于计算数组中的元素沿指定轴的最小值。可以通过 axis 参数传入坐标轴来指定统计的轴&#xff0c;当指定 axis 时&#xff0c;a…

java中如何实现变量可配置_Java基础-如何配置环境变量

Java环境变量详细教程第一步、打开电脑环境变量设置窗口以Win10系统为例子。在桌面找到此电脑&#xff0c;右键此电脑— —>属性&#xff0c;点击属性— —>点击左侧高级系统设置点击高级系统设置点击环境变量第二步、新建JAVA_HOME点击系统变量中的新建,出现输入框&…

python三引号解析_[宜配屋]听图阁

和C语言一样&#xff0c;引号属于特殊功能字符&#xff0c;不能够像普通字符那样直接通过print打印&#xff0c;需要进行一些处理&#xff0c;比如说反斜杠转义等。这里介绍几种打印三引号的方法&#xff0c;希望对需要的朋友有用。1、第一中方法比较简单&#xff0c;直接使用三…

定时执行java程序_如何让Java程序定时运行

由于项目开发的需要&#xff0c;必须实现让一个Java程序定时运行。比如&#xff0c;我的项目中&#xff0c;有一个网络蜘蛛&#xff0c;需要从互联网上抓取数据&#xff0c;与其配合&#xff0c;有另一个程序来对新抓取的页面进行索引的创建&#xff0c;由于数据源更新频率不高…

卡法电子商务 java_javacard DES算法API使用示例

********** 2017年3月15日留言 ——关于java卡Applet系列csdn博文 *************貌似有不少人在看我写的几篇关于java卡applet的博文&#xff0c;也收到了一些评论指正博文错误&#xff0c;或者私信叫我发代码文件过去。在此需要说明的是&#xff0c;java卡applet的这几篇博文…

mysql dump工具升级_MySQL数据库升级

当前不少系统的数据库依旧是MySQL5.6&#xff0c;由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升&#xff0c;因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5.7的方法&#xff0c;并介绍其使用场景。1. 逻辑方式升级逻辑方式升级…

java int 128 ==_为什么 Java Integer 中“128==128”为false,而”100==100“为true?

这是一个挺有意思的讨论话题&#xff0c;让我们用代码说话吧!运行下面的代码:Integer a 128, b 128;System.out.println(a b);Integer c 100, d 100;System.out.println(c d);你会得到:falsetrue基本知识&#xff1a;我们知道&#xff0c;如果两个引用指向同一个对象&…