Jmeter 使用总结

JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。

Graph Results

Jmeter 测试结果中包括:样本数目、最新样本、平均、偏离、吞吐量、中值,需要记住这些指标的含义。
- 样本数目:是指在测试过程中,总共向服务器发出的请求数目。成功的情况下等于你设定的 并发数目循环次数请求个数
- 最新样本:表示服务器响应最近一个请求的时间。
- 吞吐量 :表示服务器每分钟处理的请求数目。
- 平均值 :总的运行时间除以发送到服务器的请求数目;
- 偏离 :服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
- 中值 : 时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

Aggregate Report 的KPI

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
‘#Samples‘:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec

手工制作测试脚本,需要你知道请求的url和携带的参数等等,太花费时间,所以可以用badboy工具录制脚本。这个工具虽然不是开源的,但是却可以用来免费的录制成.jmx的脚本,使用起来很方便。
官方网站是:http://www.badboy.com.au/

附件:
对于并发量的处理:
50QPS以下——小网站
简单的小网站,可以用最简单的方法快速搭建,短期没有太多的技术瓶颈,只要服务器不要太烂基本上都可以满足。
50~100QPS——DB极限型
大部分的关系型数据库的每次请求大多都能控制在0.01秒左右,即便你的网站每页面只有一次DB请求,那么页面请求无法保证在1秒钟内完成100个请求,这个阶段要考虑做Cache或者多DB负载。无论那种方案,网站重构是不可避免的。

300~800QPS——带宽极限型
目前服务器大多用了IDC提供的“百兆带宽”,这意味着网站出口的实际带宽是8M Byte左右。假定每个页面只有10K Byte,在这个并发条件下,百兆带宽已经吃完。首要考虑是CDN加速/异地缓存,多机负载等技术。

500~1000QPS——内网带宽极限+Memcache极限型
由于Key/value的特性,每个页面对memcache的请求远大于直接对DB的请求,Memcache的悲观并发数在2w左右,看似很高,但事实上大多数情况下,首先是有可能在次之前内网的带宽就已经吃光,接着是在8K QPS左右的情况下,Memcache已经表现出了不稳定,如果代码上没有足够的优化,可能直接将压力转嫁到了DB层上,这就最终导致整个系统在达到某个阀值之上,性能迅速下滑。

1000~2000QPS——FORK/SELECT,锁模式极限型
好吧,一句话:线程模型决定吞吐量。不管你系统中最常见的锁是什么锁,这个级别下,文件系统访问锁都成为了灾难。这就要求系统中不能存在中央节点,所有的数据都必须分布存储,数据需要分布处理。总之,关键词:分布

你可能感兴趣的:(jmeter)