性能测试之JMeter

性能测试理论

  • 理解性能测试
  • 性能衡量标准
    • 吞吐量(TPS):指的是服务端返回给客户端的数据量。吞吐率:单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标,通常情况下,吞吐率用“字节数/秒”来衡量,当然,你可以用“请求数/秒”和“页面数/秒”来衡量。其实,不管是一个请求还是一个页面,它的本质都是在网络上传输的数据,那么来表示数据的单位就是字节数。以用户的角度出发还有两个概念:事物和TPS
    • 并发量:系统能够支持的用户数是系统容量的重要标志,并发用户数用于度量系统在高并发量访问下,系统的并行处理能力,一般如果系统中存在死锁、资源争用,在并发访问下,由于请求处于队列等待中,系统响应就会随着时间变慢。到底多少并发量系统还可以比较正常的返回请求,这个要看产品的实际情况
    • 响应时间-2/5/10原则:在2秒之内给客户响应被用户认为是“非常有吸引力”的用户体验。在5秒之内响应客户被认为“比较不错”的用户体验,在10秒内给用户响应被认为“糟糕”的用户体验。如果超过10秒还没有得到响应,那么大多用户会认为这次请求是失败的
    • 事物成功率:单位时间内系统可以成功完成多少个定义的事务,在一定程度上反应了系统的处理能力,一般以事务成功率来度量
  • 性能测试分类(我接触过的)
    • 稳定性测试(最佳并发用户数):固定的某个值的压力,测试出系统最稳定情况下的性能如何
    • 容量测试:不断增加服务器压力直至服务器崩溃,从而测试出服务器的最大容量
  • 性能测试流程:
    • 明确测试类型:稳定性测试or容量测试
    • 明确测试目标(以稳定性测试为例):
      • 理想的是系统能够支持多少数量的并发,并运行稳定(thread group)
      • 理想的是系统的吞吐量维持在什么水平,并运行稳定 (throughput timer)(1000个用户,30分钟完成登录,吞吐量应该可以达到每秒1000/(30*60))
      • 理想的系统在某一压力情况下,可运行稳定的持续时间
    • 测试环境准备
    • 设计测试场景:要尽量和客户真实操作场景保持一致
    • 编写测试脚本
    • 执行测试脚本
    • 分析测试报告
      • 请求响应时间,事物成功率

Pls refer to the file tab for 'Performance-test-with-JMeter'

 

问题

  • 在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能 http://www.cnblogs.com/puresoul/p/4844539.html
    • JMeter分布式测试:一台机器作为调度机(master),其他机器做为执行机(slave)
  • JMeter中文乱码默认编码为:ISO-8859-1)

        

  • 修改Jmeter支持的最大线程数,如下:(没有找到具体最大支持的线程数,但是有地方数1000就会崩溃,这个时候可以使用第一个问题中提到的Jmeter分布式测试方法进行测试)
    set HEAP= 最大值应该设置为剩余内存的50%
    set NEW=-的MAX一般设置为HEAP最大值的50%

    实例:修改/bin/jmeter.bat文件,找到这2行

    set HEAP=-Xms256m -Xmx256m
    set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

    --改为:

    set HEAP=-Xms256m -Xmx1024m
    set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

  • 其他:http://www.cnblogs.com/yangxia-test/p/4137519.html
posted @ 2017-04-06 18:10  Catherine-Wang  阅读(392)  评论(0编辑  收藏  举报