jmeter学习笔记

本文详细介绍了JMeter的基础知识,包括线程组、取样器、逻辑控制器、事务管理器等核心组件的用法,强调了在性能测试中事务管理器的重要性。同时,讲解了数据驱动、定时器、关联、数据库连接以及分布式部署等内容,并提供了实际的测试实例和常见问题解决方案,帮助读者全面掌握JMeter的使用技巧。
摘要由CSDN通过智能技术生成

一、jmeter基础知识
元件:
1、线程组:线程组也可以看作是一个虚拟用户组。线程组中的每一个线程都可以理解为一个虚拟用户:

  • Ramp-Up Period:多少时间内启动完这些进程,如果设置5个线程,150秒所有线程启动完,那么就是每30秒启动一个线程。
  • 循环次数:决定线程循环次数,设置10次,即每个线程循环10次,50个线程就是循环500次。

2、取样器:用来模拟用户操作,向服务器发出Http请求、webservice请求或是java请求的,并接收服务器的影响数据。
3、逻辑控制器:控制jmeter的测试逻辑,特别是发送请求的,可以改变请求的执行顺序,可以把取样器组合起来使用,已达到各种测试目的。

  • 事务管理器:通常进行性能测试时,我们一般仅考虑主要的数据返回,不考虑页面渲染所需要的数据(例如:css、js、图片等)。但当我们需要衡量打开一个页面(页面渲染完成)的性能时,我们就需要考虑完成页面渲染所需要的图片、css、js等资源文件,因为这些数据的传输等也会消耗系统、网络等资源。因而测试页面的性能,尤其是含有大图片、大文件等,就必须要考虑这些资源的性能消耗,需要设置事务管理器。当单看主要数据和页面数据性能测试结果还是有比较大的差异的,因而在进行页面性能测试的时候,事务控制器是必不可少的利器,页面性能测试结果也会更加的准确。
  • switch控制器:不执行该节点,执行其他节点
  • 随机控制器:其下属节点在执行中,随机读取某一个执行

4、断言:预设的结果,检查结果是否符合预期
5、监听器:添加结构监听,可以保存测试结果到文件,可以表格或是图形的形式展示结果
6、前置处理器:请求发送前会做一些环境或者参数的准备工作,比如连接一个数据库等等
7、配置元件:模拟大量用户操作我们需要做参数化,可以在文件中读取测试数据
8、后置处理器:放在取样器之后,用来处理服务器的返回结果,例如登录后返回一个web应用程序登录后会返回一个sessionid,这个sessionid在登录之后的业务操作过程中会作为验证条件,验证用户是否合法登录
9、定时器:比如说固定哪个时间点大家一起跑,规定时间的
作用域:
• 取样器(sampler)元件不和其它元件相互作用,因此不存在作用域的问题。
• 逻辑控制器(Logic Controller)元件只对其子节点中的取样器 和 逻辑控制器作用。
• 除取样器 和逻辑控制器 元件外,其他6类元件,如果是某个sampler的子节点,则该元件公对其父子节点起作用。
• 除取样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler ,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等)。
执行顺序:
在同一作用域名范围内,测试计划中的元件按照如下顺序执行。
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。
(6)断言(Assertions)(除非Sampler 得到的返回结果为空)。
(7)监听器(Listeners)(除非Sampler 得到的返回结果为空)。
二、数据驱动
jmeter的test plan中,支持如下4种参数化方式:
函数助手:_CSVRead
CSV Data Set Config:CSV数据控件
User Defined Variables:用户定义的变量
User Variables:用户参数
。。。
三、jmeter定时器
四、jmeter关联
五、连接数据库

扩展:FTP上传下载压力测试、多文件参数化
mysql压力测试
jmeter分布式部署

练习实例:
在这里插入图片描述
脚本可以使用badboy录制或者自己写:
body data:
在这里插入图片描述
在这里插入图片描述
响应断言:
在这里插入图片描述
聚合报告:
在这里插入图片描述
#Samples:表示你这次测试中一共发出了多少个请求,如果测试计划模拟10个用户,每个用户迭代10次,这里就会显示100
Average:平均响应时间 — 默认情况下是单个 Request 的平均响应时间,当使用了事务控制器时,也可以以事务为单位显示平均响应时间
Min:最小响应时间
Max:最大响应时间
Error%:错误率,本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量 —— 默认情况下表示每秒完成的请求数( Request per Second )
KB/Sec:每秒从服务器端接收到的数据量

问题总结:
1、302错误、no cookie
该线程组没有设置信息头、cookie等
2、 响应内容出现乱码:
Jmeter在访问接口的时候,响应内容如果有中文可能会显示乱码,原因应该是响应页面没有做编码处理,jmeter默认按照ISO-8859-1编码格式进行解析
a、进入Jmeter的bin目录下,找到jmeter.properties文件,以文本形式打开
本例目录:F:\tools\apache-jmeter-5.1\bin
b、找到sampleresult.default.encoding这个参数,此行默认是注释的。
可以看到说明,默认值是ISO-8859-1
c、将ISO-8859-1修改成utf-8,去掉注释符号,重启Jmeter

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值