Jmeter压力测试

Posted ryhonour

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter压力测试相关的知识,希望对你有一定的参考价值。

压测设置

  • 线程数:并发数量,能跑多少量。具体说是一次存在多少用户同时访问
  • Rame-Up Period(in seconds):表示在多长时间内启动完上述的线程数。
  • 循环次数:这个设置不会改变并发数,可以延长并发时间。总请求数=线程数*循环次数
  • 调度器:设置压测的启动时间、结束时间、持续时间和启动延迟时间。

压测结果查看

  • Samples:表示一共发出的请求数
  • Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)
  • Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因
  • Throughput:简称tps,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,tps越高说明服务器处理能力越好。

压测结果分析

  • 有错误率同开发确认,确定是否允许错误的发生或者错误率允许在多大的范围内;
  • Throughput吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的往下减,找到最佳的并发数;
  • 压测结束,·登陆相应的web服务器查看CPU等性能指标,进行数据的分析;
  • 最大的tps:不断的增加并发数,加到tps达到一定值开始出现下降,那么那个值就是最大的tps。
  • 最大的并发数:最大的并发数和最大的tps是不同的概率,一般不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数。
  • 压测过程出现性能瓶颈,若压力机任务管理器查看到的cpu、网络和cpu都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题。
  • 影响性能考虑点包括:数据库、应用程序、中间件(tomact、nginx)、网络和操作系统等方面。

CLI模式(no-GUI)运行

  • 在cmd中,CD到目标文件夹

  • 运行命令

    jmeter -n -t [jmx file] -l [result file] -e -o [Path to output folder]
    

    参数说明:

    • jmx file:测试计划的文件名称,默认从当前文件夹中寻找(.jmx格式)
    • result file:输出文件路径(.jtl格式)
    • Path to output folder:要保存的report文件路径
    • -n:非GUI模式执行Jmeter
    • -t:执行测试文件所在的位置
    • -l:指定生成测试结果的保存文件(该文件必须不存在),jtl文件格式
    • -e:测试结束后生成测试报告
    • -o:指定测试报告的存放位置,文件夹必须不存在或为空
  • 输出结果解释(html文件中的数据解释),在reportgenerator.properties配置文件中修改Html图表中的相关设置。

    • Dashboard中:

      • Test and Report informations:指的是测试和报告信息
      • APDEX(Application Performance Index):应用程序性能满意度的标准,范围在0-1之间,1表示达到所有用户均满意,越接近1满意度越高
      • Requests Summary:请求的通过率(OK)与失败率(KO),百分比显示
      • Statistics:数据分析,基本将Summary Report和Aggrerate Report的结果合并
      • Errors:错误情况,依据不同的错误类型,将所有错误结果展示
    • Charts:用图表的形式展示测试数据,让测试报告更加直观
      主要有如下特点:
      (1)将测试过程中经常使用的数据,用图表的形式展示,让测试结果更加直观
      (2)每个图表数据,有两种展示形式
      (3)支持请求样例过滤显示
      (4)支持导出PNG图片格式

      Over Time Charts:

      • Response Times Over Time:每秒钟响应时间,X轴表示的是系统运行的时刻,Y轴表示的是响应时间,F(X,Y)表示系统随着时间的推移,系统的响应时间的变化,可以看出响应时间稳定性
      • Response Time Percentiles Over Time (successful responses):随时间变化的响应时间百分比
      • Active Threads Over Time:每秒的活动线程数
      • Bytes Throughput Over Time:字节接收与发送的数量,每秒传输字节吞吐量,表明Jmeter在测试时,随着时间推移发送和接收的字节数
      • Latencies Over Time:延迟时间
      • Connect Time Over Time:连接时间

      Throughput Charts:

      • Hits Per Second: 每秒点击率
      • Codes Per Second:每秒状态码数量
      • Transactions Per Second:每秒事务量
      • Response Time Vs Request:响应时间点请求的成功与失败数
      • Latency Vs Request:延迟时间点请求的成功与失败数

      Response Times Charts:

      • Response Time Percentiles:响应时间百分比
      • Response Time Overview:响应时间概述
      • Time Vs Threads:响应时间用户数, X轴表示的是活动线程数,也就是并发访问的用户数,Y轴表示的是响应时间,F(X,Y)表示在某种并发量的情况下,系统的响应时间是多少
      • Response Time Distribution:响应时间分布





以上是关于Jmeter压力测试的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter压力测试设置

jmeter压力测试

开发人员学Linux:使用JMeter对网站和数据库进行压力测试

Jmeter教程 简单的压力测试

利用jmeter进行压力测试

压力测试Jmeter+badboy