美文网首页
1.Jmeter性能测试--基础介绍及其脚本录制

1.Jmeter性能测试--基础介绍及其脚本录制

作者: 小小一颗卤蛋 | 来源:发表于2024-06-24 15:15 被阅读0次

1、什么是性能测试?

通过特定的方式,对系统施加压力,正常异常负载以及各种峰值来对系统施加压力,得到各项性能的指标,以保证系统的正常运转。

2、性能测试的价值以及目的:

为了评估系统的能力
为了识别系统的弱点(瓶颈,弱点)
为了检查系统一些隐藏问题
为了检验系统的稳定性和可靠性

3、性能指标一指标的测算

常见指标:虚拟用户数,并发数,事务,场景,响应时间RT,TPS,QPS,吞吐量,资源利用率等
虚拟用户数:在Jmeter中一个线程 = 一个用户
并发数:在指定时间内,一定数量的虚拟用户同时对系统的某个功能进行交互,一般采用集合点来实现。
事务:一个事务代表一个完成的功能。可以是一个接口,多个接口,一个流程等,一般采用一个流程为一个事务。由测试人员自己决定。
场景: 性能测试的用例,一个场景为一个用例
响应时间RT response time,还有平均响应时间,中无数,90%,99%
基准测试:一个用户请求接口,一般为200-500ms
压力测试:N个用并发请求接口,一般不能高于2S
TPS: 每秒事务数,是重要的性能指标,用来衡量一个系统在一定时间内(1s)能处理的事务数(交互数)
若事务为一个接口,那么TPS的值与吞吐量一致
计算公式:TPS = 总事务数量/总运行时间

例如:某产品,2022年最高的一天又10万比交易,预计2023年需要TPS为多少才能合格?
总事务数为:10万,总时间为:一天(246060=86400s)
理论上:TPS=100000/86400= 1.2 个/s ---此处算的是平均值,实际上与实际不一致,一天的交易量不可能平均分配
(1)没有详细数据,此时可以采用二八原则计算TPS=100000/864000.2=4.6个/s
(2)如果有详细的数据记录,如 5万笔交易在晚上8-9点完成的,此时TPS=50000/3600=13.9 个/s
由于以上算的是2022年的TPS,那么2023年根据业务量的增长(如果增长30%)此时的TPS=50000
0.3/3600=18个/s

QPS: 每秒查询率,
RPS:每秒请求数,如果一个事务为一个请求(接口),则TPS=RPS
HPS:每秒点击率,用户衡量客户端的性能(其他三个用于衡量服务器的性能)
吞吐量: 每秒传输的数据量,衡量网络成功传输的数据量(数据的传输率),单位Byte/s。
资源利用率: 服务器:CPU,内存,磁盘,网络几个方面的。

4、性能测试的流程

总体流程:需求分析→环境搭建→测试计划→脚本开发→执行与监控→缺陷管理→结果与报告
(1)需求分析以及性能需求的确认(指标值,场景,环境,人员)。一般是客户,产品经理,项目组领导会提出性能方面的需求
(2)性能测试计划以及方案制定
基准测试:

  • 负载测试:
    1、线程组的设置50个用户(持续时间:按秒计算,这里300=60*5,意思就是运行时长为5分钟)
    2、添加HTTP cookie管理器
    3、默认请求值
    4、添加一个事务控制器,可以当作一个业务
    5、在事务控制器下添加,高斯随机定时器
    总的延时 = 固定延迟时间 + 高斯随机生成的偏差值(说明:单位都是毫秒,固定延迟300ms,偏差100ms,意思是时间延迟300-400ms之间)
    6、添加脚本(http请求)
    7、添加->监听器
    8、在最后添加一个聚合报告,添加处:添加->监听器
  • 压力测试:
    1、线程组设置,这里的线程数与同步定时器的用户数量一样
    2、添加HTTP cookie管理器
    3、默认请求值
    4、添加一个事务控制器,可以当作一个业务
    5、在事务控制器下添加,同步定时器,设置用户数量,这里与线程组的线程数一样,超时时间可设置
    6、添加脚本(http请求)
    7、添加查看结果树
    8、添加->监听器
    9、在最后添加一个聚合报告,添加处:添加->监听器
  • 稳定性测试:
  • 其他类型:配置测试,极限测试,浪涌测试等
    (3)性能测试的准备:环境需要单独部署一套,最好以生产环境保持一致
    (4)测试执行阶段
    脚本生成与增强只是冰山一角,还需要场景设计,指标监控,性能瓶颈定位以及性能调优,一般使用php+nginx+mysql+centos
    (5)性能测试报告和总结

Jmeter性能测试脚本的录制生成以及完善增强

通过jmeter代理服务器录制脚本

(1)设置客户端代理(本机的代理服务器:控制面板-->Internet选项-->连接-->局域网设置-->勾选代理服务器,输入jmeter所在电脑ip,以及8888端口)


设置客户端代理步骤.png
(2)在Jmater中添加线程组 image.png

(3)在Jmeter中添加代理服务器并设置过滤器与测试计划

image.png
代理服务器设置过滤器.png
代理服务器设置测试计划
注意:点击启动如果遇到如下问题:Root CA certificate:Apache JMeterTemporaryRootCA created in JMeter bin directoryimage.png
解决办法:如下,导入jmeter的证书
image.png

(4)录制后的脚本进行完善以及增强
删除一些不需要的脚步

录制到的脚本如下: image.png

完善和增强脚本

image.png

完善jmeter脚本的步骤:
1、删除录制到的多余的脚本接口
2、添加HTTP请求默认值(http/https协议,IP,端口(80/433))
3、添加HTTP cookie管理器,jmeter会自动处理cookie的存储和发送。
如果需要特定的cookie值,可在 JMeter 的 "View Results Tree" 监听器中,查看每个请求的响应头,找到 Set-Cookie 来获取 Cookie并设置cookie的值(可使用正则表达式抓取)

例如:此处的cookie值: image.png

4、添加用户定义的变量,添加某些页面页面可能会变化的参数,可在用户定义变量中添加,在后续的页面中需要引用时使用:${参数名} 的形式引用即可


image.png
5、为了查看请求的的结果,通常添加“查看结果树”,“聚合报告”,以及“用表格查看结果”来观察我们请求的数据信息,如下图:
image.png
image.png
image.png

各元件只执行顺序

jmeter原件的执行顺序不是按照添加的顺序执行的,一般情况下,jmeter 组件的执行顺序,和在jmeter界面上的位置没有关系,不是组件放在的前面就先执行,而是遵守下图的规则,执行顺序的优先级:从下往上,从左往右。

大致顺序如下:
线程组 - 配置原件- 前置处理器 – - 定时器 - 控制器 — 采样器 – 后置处理器 – 断言 – 监听器

同一个级别的元件按照先后顺序执行


image.png

相关文章

网友评论

      本文标题:1.Jmeter性能测试--基础介绍及其脚本录制

      本文链接:https://www.haomeiwen.com/subject/zauxcjtx.html