吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2798|回复: 2
收起左侧

[其他转载] jmeter压力测试(四)

[复制链接]
zxdsb666. 发表于 2021-1-18 23:32

非GUI部分

阿里云安装jmeter(jmeter5)

  1. 配置JDK1.8的环境,Linux配置Jdk请自行查找相关资料
  2. 阿里云安装jmeter,移动到自己喜欢的位置

下载方式:wget https://apachemirror.sg.wuchna.com//jmeter/binaries/apache-jmeter-5.4.tgz

  1. 启动非GUI测试:我们可以在window上使用gui版本编写好对应的jmx,然后再执行压测。

Jmeter非GUI界面 参数讲解(必须掌握)

在进行实战之前了解一下基本的参数:

官方配置文件地址: http://jmeter.apache.org/usermanual/get-started.html

基础命令参数:
  • -h    帮助
  • -n     非GUI模式
  • -t    指定要运行的 JMeter 测试脚本文件
  • -l    记录结果的文件 每次运行之前,(要确保之前没有运行过,即xxx.jtl不存在,不然报错)
  • -r     Jmter.properties文件中指定的所有远程服务器
  • -e    在脚本运行结束后生成html报告
  • -o    用于存放html报告的目录(目录要为空,不然报错)

案例如下:

如何使用linux jmeter压测?

下面的教程为构建一个最简单的压测方式:

  1. 构建一个简单的http压测请求,使用如下的方式:

  1. 保存为.jmx后缀的文件
  2. 将文件的内容上传到服务器,命令行进入到对应的Bin目录下面
  3. 执行命令:./jmeter -n -t ./plan/LinuxPlan.jmx -l ./plan/result.jtl -e -o ./resultreport

上面的命令效果如下::

-l 指定了结果文件的存放位置

-o 指定html报告的目录位置

-t 指定了脚本文件的存放位置

-n 代表使用非GUI模式运行

Jmeter压测减少资源使用的一些建议,即压测结果更准确

1、使用非GUI模式:jmeter -n -t test.jmx -l result.jtl

2、少使用Listener, 如果使用-l参数,它们都可以被删除或禁用。

3、在加载测试期间不要使用“查看结果树”或“查看结果”表监听器,只能在脚本阶段使用它们来调试脚本。

4、包含控制器在这里没有帮助,因为它将文件中的所有测试元素添加到测试计划中。]

5、不要使用功能模式,使用CSV输出而不是XML

6、只保存你需要的数据,尽可能少地使用断言

7、如果测试需要大量数据,可以提前准备好测试数据放到数据文件中,以CSV Read方式读取。

8、用内网压测,减少其他带宽影响压测结果

9、如果压测大流量,尽量用多几个节点以非GUI模式向服务器施压

官方推荐 :http://jakarta.apache.org/jmeter/usermanual/best-practices.html#lean_mean

Jmeter压测结果聚合报告分析

一般情况下,我们可以根据-o这个参数在Linux中生成对应的聚合报告,根据聚合报告我们可以分析压测的结果

根据上面的聚合报告,我们可以从index.html当中看到基本的聚合报告分析内容和结果。

dashboard结果分析:

2)APDEX(Application performance Index)
    apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意
    T(Toleration threshold):可接受阀值
    F(Frustration threshold):失败阀值

3)Requests Summary
    OK:成功率
    KO:失败率
4)Statistics 统计数据
    lable:sampler采样器名称

    samples:请求总数,并发数*循环次数
    KO:失败次数
    Error%:失败率

    Average:平均响应时间
    Min:最小响应时间
    Max:最大响应时间
    90th pct: 90%的用户响应时间不会超过这个值(关注这个就可以了)
    2ms,3ms,4,5,2,6,8,3,9

    95th pct: 95%的用户响应时间不会超过这个值
    99th pct: 99%的用户响应时间不会超过这个值 (存在极端值)
    throughtput:Request per Second吞吐量 qps

    received:每秒从服务器接收的数据量
    send:每秒发送的数据量

Test and Report informations
  • Source file:jtl文件名
  • Start Time :压测开始时间
  • End Time :压测结束时间
  • Filter for display:过滤器
  • Lable:sampler:采样器名称
APDEX(Application performance Index)

apdex:应用程序性能指标,范围在0~1之间,1表示达到所有用户均满意

  • T(Toleration threshold):可接受阀值
  • F(Frustration threshold):失败阀值
Requests Summary:
  • OK:成功率
  • KO:失败率
Statistics 统计数据

这一部分是主要内容:

  • lable: sampler的名称
  • Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
  • Average: 平均响应时间
  • Median: 中位数,也就是 50% 用户的响应时间
  • 90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
  • 95% Line : 95% 用户的响应不会超过该时间
  • 99% Line : 99% 用户的响应不会超过该时间
  • min : 最小响应时间
  • max : 最大响应时间
  • Error%:错误的请求的数量/请求的总数
  • Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
    ​       KB/Sec: 每秒接收数据量

charts讲解

Over Time(随着时间的变化)
  • Response Times Over Time:响应时间变化趋势
  • Response Time Percentiles Over Time (successful responses):最大,最小,平均,用户响应时间分
  • Active Threads Over Time:并发用户数趋势
  • Bytes Throughput Over Time:每秒接收和请求字节数变化,蓝色表示发送,黄色表示接受
  • Latencies Over Time:平均响应延时趋势
  • Connect Time Over Time    :连接耗时趋势
Throughput
  • Hits Per Second (excluding embedded resources):每秒点击次数
  • Codes Per Second (excluding embedded resources):每秒状态码数量
  • Transactions Per Second:即TPS,每秒事务数
  • Response Time Vs Request:响应时间和请求数对比
  • Latency Vs Request:延迟时间和请求数对比
Response Times
  • Response Time Percentiles:响应时间百分比
  • Response Time Overview:响应时间概述
  • Time Vs Threads:活跃线程数和响应时间
  • Response Time Distribution:响应时间分布图

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

colin12138 发表于 2021-8-3 12:57
谢谢大佬,威武
Reixhp 发表于 2021-8-4 14:45
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-1 17:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表