该报告以一次10分钟时长的测试场景为例,场景包括两个压测机分别是深圳和北京。
通过该报告来介绍我们平台强大的分析能力,我们是以apm(性能监控管理)的思路来做分析,通过日志、用户详情、指标曲线、CPU/IO资源来辅助测试报告的分析,让您更高效准确地知道系统哪里出问题,什么原因导致。
在某集团公司使用我们安装版进行多个协议的业务场景测试过程发现,很多时候简单的指标是无法帮助定位问题,因为并发1000个,可能只有1到2个用户失败,或部分用户时间长,甚至需要使用wireshark抓包才能定位问题(而且需要在上万个数据里找到失败那个,因此需要结合过滤功能,平台实现将每个虚拟用户使用的TCP记录下来,这样就方便快速找到失败用户进行分析)。
所以,输出一份非常详细的报告非常有必要,能帮助用户高效率定位问题。平台给出了详细的日志,多种指标数据曲线,以及每个虚拟用户运行的数据;如果开启“交互日志”,我们还可以将每个虚拟用户与服务器交互的报文数据记录下来,更方便定位问题。
展示此次报告不同区域的指标最大,最小,平均和总数值,如果存在监控资源或JVM资源(CPU、垃圾回收)也在此展示
日志非常重要,运行中通过日志可以大概知道什么原因导致失败。运行后分析日志可以帮助定位问题,而且平台将失败时的发送与接收打印出来,更方便定位问题。这是其他性能工具没有的。
1) 指标曲线展示了场景测试报告的每秒统计数据,可以将多个指标合并对比;如吞吐量与CPU对比,吞吐量与请求数对比、或者几个指标都在一个曲线对比; 如发现吞吐量异常、或者脚本时间偏大,此时可以跟CPU、内存、或在线数曲线对比,分析是否由于CPU/内存导致,或者并发用户数此时刻过大导致。
2) 当运行时长比较大时,如超过5分钟,曲线下方会出现拖动条;假设运行时长10小时,那么曲线密密麻麻可能不利于分析,如果此时想分析第2个小时的曲线数据, 可以将下方拖动条左边拖到3600秒,右边拖动到7200秒。
3) 曲线高级设置
a) 支持不同区域的指标合并比较
b) 支持不同指标曲线的合并比较
例如将请求数、脚本时间、CPU、内存合并比较。通过指标合并,可以快速分析定位问题。 这是其他线上平台都不支持的功能,也展示了我们平台强大的分析能力。
c) 默认曲线每秒一个点,如果需要以1分钟的纬度来分析曲线,即每分钟的平均值
d) 如果需要以1分钟总值的纬度来分析曲线,即每分钟的值相加
e) 假设运行时长10小时,只想查看3600秒到7200秒之间的数据
用户详情数据默认是保存到压测机上,否则可能影响网络,导致影响测试指标。所以建议运行完成立即分析,只要分析过(即从压测机将分析结果获取到平台),展示到界面了,平台将永久缓存这个分析。如果,没分析过,则压测机被释放或者没有启动都将无法再分析,因此强烈建议运行完立即分析。
开启用户详情会产生运行数据,大约会消耗压测机5%的性能,但基本不影响虚拟用户运行指标,因为我们做了异步处理。另外由于压测机经过严格算法优化,性能比其他工具有很大的提升(我们在100并发下对比测试了loadrunner与jmeter,性能表现更好,占用CPU内存资源更少,因此测试的指标数据更接近真实用户数据。所以,如果需要更强大的分析功能,即详细到可以分析每个虚拟用户运行的数据,建议都开启用户详情
北京某公司为测试他们的税务系统(部署在阿里云服务器上),在阿里云内网使用一台4核CPU、8G内存的压测机,就将他们的系统压测到CPU占用98%,而我们压测机只占用20%-25%的CPU。而且是在开启“用户详情”的情况下。可见我们压测机性能非常好,且用户详情产生的数据基本不影响测试。
下图展示任务与脚本事务的汇总信息
1) 上图的1,点击可以切换下面内容展示哪个区域的信息,默认展示所有区域汇总,也可以单独展示一个区域
2) 上图的2,点击可以展示所有虚拟用户的运行数据,支持只过滤失败用户、或过滤时间超过某个范围的用户、或某个时间段的用户
上图展示部分虚拟用户信息,双击表格,或者选中某行,然后点击下面的按钮,可以查看更加详细信息a) 点击“查看选中”或双击某个用户,可以查看该虚拟用户每个请求的运行情况,包括接收响应码,是否建立TCP、TCP时间、DNS时间、首个分片时间(即服务器处理时间)、剩余数据时间(即完成接收内容的网络时间,可以看出网络情况)
b) 点击“运行时间图”可以查看每个HTTP请求的运行情况,并发情况;TCP时间、DNS时间、首个分片时间、剩余数据时间
c) 点击“分片时间图”可以查看每个HTTP请求的运行情况;TCP时间、DNS时间、首个分片时间、剩余数据时间
d) 点击“运行日志”可以查看每个虚拟用户与服务器交互的报文数据,前提是开启了日志级别为“交互日志”,注意:开启将非常消耗压测机性能,所以一般在需要定位问题时才开启
3) 汇总图的3,点击可以查看每个虚拟用户的时间打点图
如果点击的是所有汇总,则打点图展示所有区域的用户打点;如果是点击深圳,则只查看深圳的用户打点。注意:由于性能问题,默认只显示10万个点,如果总的运行用户为100万,则默认只展示前面10万个点,这时可以通过过滤或者设置每10个点汇聚为1个平均值点来显示所有用户
下图展示脚本请求的汇总信息,详细到每个HTTP请求的汇总
1) 点击“时间汇总”,可以查看该脚本每个请求的运行情况,包括TCP时间、DNS时间、首个分片时间(即服务器处理时间)、剩余数据时间(即完成接收内容的网络时间,可以看出网络情况)。快速得到那个URL花费时间最多,是TCP时间多还是分片时间多
2) 点击每个URL右边的曲线图标按钮,可以查看每次HTTP请求的时间打点
注意:由于性能问题,默认只显示10万个点,如果总的运行请求数为100万,则默认只展示前面10万个点,这时可以通过过滤或者设置每10个点汇聚为1个平均值点来显示所有请求数