jmeter脚本开发:jmeter工具的学习(二)
1|0一. Jmeter环境安装与配置
Apache下的开源免费的工具
java开发——运行环境jre、jdk,跨平台
1. 安装jdk1.8
2. 下载免费的jmeter(大于3.2版本),解压
3. 启动jmeter
- bin下的 jmeter.bat jemter.sh
- 双击ApacheJmeter.jar或java -jar ApacheJmeter.jar
同一个系统中,可以启动多个jmeter(相同版本、不同版本),不配置JMETER_HOME
2|0二. Jmeter文件结构
- bin:启动脚本、配置文件
- docs:api文档
- lib:lib/ext 放第三方插件
- extras:扩展之外的一些东西
- printable_docs:离线文档
3|0三. Jmeter GUI工具介绍
工具菜单
更改显示语言:options > choose language > Chinese simple
在jmeter.properties中配置language=zh_CN
右键操作
运行
日志\清空日志
帮助
4|0三. Jmeter脚本的组成部分
1. 线程组Threads:场景设计
2. 取样器Sampler:编写脚本
3. 监听器Listener:结果报告
5|0四. Jmeter工作原理
模拟多用户操作向服务器发起请求,并收集响应结果用于数据分析
6|0五. Jmeter元件
测试计划:脚本容器
线程组:用于场景设计
取样器:用于制作不同协议脚本
逻辑控制器:条件控制
前置处理器:预处理
后置处理器:信息提取
断言:信息验证
定时器
测试片段:管理测试用例
配置元件:原始器件
监视器:结果监控分析
配置元件
监视器
定时器
前置处理器
后置处理器
断言
测试片段
非测试元件,代理服务器
取样器是不共用的,优先级最低的
线程属性
Ramp-Up时间:代表启动耗时多少。以下场景代表1s内启动100个线程,运行1次就结束。如果Ramp-Up改为5,表示5s内启动100个线程,循环1次。这个不能平均为1s启动20个。注意100以上的线程,建议使用10s以上的时间来启动,如果1s内启动100个线程,很突然并发,服务器的压力会陡然上升
如果循环次数为4,表示100是这个线程组的包,100这个线程组反复循环4次,不是100中某一个线程循环4次,应该看作一个整体。第0-10s这个时间点已经把100个线程启动好了,已经循环了一次,然后10s后开始循环第二次,第三次...,后面的三次循环的时间看具体使用了多少,有可能1s内完成了300次调用,那么总共耗时等于11s,如果用了2s,那么总共耗时等于12s
调度器:计划在某个时间点做什么事情。循环次数永远 + 持续时间10s,以下场景表示不限循环次数,在10s内启动100个线程,一直持续10s,总共耗时等于20s,20s之后就会结束,至于结束用了1s还是2s,有可能会变成21s,22s。会超过20s多一点点
循环次数=4 + 持续时间10s,以下场景表示10s内启动100个线程,循环一次,10s后开始循环后面三次,有可能后面三次只消耗了1s,但计划的时间是20s,所以剩下9s的时间用来等待结束。一般不会这样使用
启动延迟2s,以下场景表示0-2s时间段不做任何事情,从2s-12s,启动100个线程,然后一直运行下去
线程数10,循环10次和线程数100,循环1次,有什么区别?
前者10个线程一起打包循环,10次循环是循环了10个线程组,后者1次循环只循环了1个线程组,这里面有100个线程,跑了1次
线程组和线程是两个完全不同的东西
7|0六. Jmeter脚本制作:两种方式三种方法
7|11. 手动编写脚本(万能法)
选协议
接口报文:接口文档\api文档\swagger\ F12 fiddler
编码这里不管是不是中文都勾上
7|22. 录制——badboy录制
打开badboy
录制操作行为
导出为jmeter文件格式
jmeter打开文件
优缺点:接口参数比较多时,很方便
部分js不支持,导致无法录制;大量杂质;https无法录制
7|33. 录制——http代理服务器
jmeter中添加线程组
在测试计划下,右键添加非测试元件,选择添加http代理服务器,启用代理
浏览器设置代理,访问被测试系统
停止代理,关闭浏览器代理设置
优缺点:http\https都可录制
代理配置有点复杂,脚本中含有杂质
端口:默认8888,可改可不改
HTTPS Domains:一般不用写
目标控制器:要改成测试计划 > 线程组
Prefix:前缀,分组才有用
建议在Requests Filtering中添加建议排除,排除掉一些杂质
__EOF__

本文链接:https://www.cnblogs.com/my_captain/p/12582468.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?