前言
Jmeter 已经是测试必备技能之一,日常工作中使用十分广泛。之前都是断断续续的学,断断续续的用,每次要使用的时候基本上都已经忘记的差不多啦,还要重新找资源重新学习一遍,十分消耗时间。特此写一遍笔记总结归纳一下,方便日后自己使用及与他人分享。
环境部署
目录介绍
目录介绍
文件/目录 | 作用 |
---|
bin | 包含启动、配置等相关命令、自己写的脚本默认另存为该目录下 | docs | 官方接口文档,二次开发需要了解的一些接口 | extras | 辅助库,持续集成会用到 | lib | 核心库,包含 JMeter 用到的各种基础库和插件 | lib\ext | 官方提供的第三方插件 | license | 包含 non-ASF 软件的许可证 | printable_docs | 离线的帮助文档,可以查看函数等内容 | LICENSE | Jmeter 许可说明 | NOTICE | Jmeter 简单信息说明 | README.md | Jmeter 官方基本介绍 |
bin目录介绍
文件 | 作用 |
---|
jmeter.properties | JMeter 核心配置文件,各种配置基本在这完成 | log4j.conf | JMeter 日志配置管理 | jmeter.log | JMeter 运行日志记录,什么输出信息、警告、报错都在这里进行了记录 | jmeter.bat | windows 下 jmeter 启动文件 | shutdown.cmd | windows 下 jmeter 关闭文件 | stoptest.cmd | windows 下 jmeter 测试停止文件 | jmeter-server.bat | windows 下 jmeter 服务器模式启动文件 | jmeter-server | mac 或者 Liunx 分布式压测使用的启动文件 |
jmeter.properties 配置项
- 待修改配置复制粘贴到同目录下的 user.properties , 避免升级时丢失自定义配置
- 语言配置只能在配置文件jmeter.properties中才能生效
language=en
CookieManager.save.cookies=true
jsyntaxtextarea.font.family=宋体
jsyntaxtextarea.font.size=20
sampleresult.default.encoding=UTF-8
remote_hosts=127.0.0.1
log_level.jmeter=INFO
log_level.jmeter.junit=DEBUG
jmeter.save.saveservice.output_format=csv
jmeter.hidpi.mode=true
jmeter.hidpi.scale.factor=1.2
jmeter.toolbar.icons.size=32x32
jmeter.tree.icons.size=24x24
jsyntaxtextarea.font.size=18
jsyntaxtextarea.font.family=consolas
post_add_content_type_if_missing=true
面板介绍
常用菜单
- run 分布式运行相关的
- option 打开日志,修改语言,还有管理插(需要先安装插件管理器)
- tools 看函数助手
常用图标
- 从左往右依次是
- 新建测试计划
- 选择测试计划模板创建一个新的测试计划
- 打开jmeter脚本
- 保存jmeter脚本
- 剪切
- 复制
- 粘贴
- 展开目录树
- 收起目录树
- 禁用或启用元件
- 本机开始运行当前测试计划
- 立即开始在本机运行当前测试计划
- 停止
- 关闭
- 清除
- 清除全部
- 查找
- 清除查找
- 函数助手对话框
- 帮助
测试计划
添加测试计划
-
默认添加 -
测试计划的作用
- 测试计划描述了 Jmeter 在执行时,一系列的步骤
- 一个完整的测试计划包含了一个或多个【线程组、逻辑控制器、采样器、监听器、定时器、断言和配置元素】
-
测试计划添加测试元件
- 通过右键点击树中的元件,选中要添加的元件
- 也可以通过合并(merge)或打开(open)从文件中加载和添加元件
-
配置树中的元件
- 树中的每一个控件都能通过右边内容区显示
- 树中的每一个控件都能在树中随意拖动
-
运行测试计划
- 可以通过ctrl+r运行测试计划
- 通过右侧的数字:活动线程数/线程总数,这仅适用于本地运行的测试;
- 使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程【分布式压测时,master机不会显示所有远程salve机的线程总数】
- 仅在调试测试计划时,才应该使用上面的 GUI 模式【界面模式】,如果实际运行负载测试的时候,应该使用CLI模式【命令行模式、无界面模式】
-
暂停运行测试计划
-
停止线程(ctrl + .)【硬中断】
- 许多采样器(Samplers)都是可中断的,这意味着可以提前终止活动采样
- stop命令将检查所有线程是否已在默认超时(即5000 ms = 5秒)内停止
- 如果有线程还没被停止,则会发送一条信息;此时可以再发送一次 stop 命令,但如果还是失败的话,就得退出 Jmeter 来清理
- 默认超时可以通过配置项改变 jmeterengine.threadstop.wait=5000 # 单位毫秒
-
关闭线程(ctrl + ,)【软中断】
- 线程会在当前运行任务结束后停止,不会中断活动线程正在执行的任务
- 会出现一个【正在停止测试】的窗口(如下图),直到所有线程都运行完成了才会关闭
- 如果停止时间太久,也可以直接发stop命令
- 在Linux CLI模式下,是没有快捷键来停止线程运行的,所以Jmeter 在 CLI模式下会监听特定端口上的命令(默认端口4445,可以通过 jmeterengine.nongui.port 修改)
- 如果 4445 端口被占用了,Jmeter 会自动选择备用端口
- Jmeter 将尝试监听下一个更高的端口,直到到达Jmeter属性 jmeterengine.nongui.maxport 为止,该属性默认为4455
-
在CLI模式下,如何停止线程执行
- 在bin目录下,运行脚本
- stoptest.cmd / stoptest.sh 【硬中断】
- shutdown.cmd / shutdown.sh 【软中断】
测试计划属性
线程组
添加线程组
-
右键单击测试计划按照下图依次选择 -
Thread Group的简单理解
- 线程组是一个测试计划的开始点
- 在一个测试计划中的所有元件都必须在某个线程组下
- 线程组决定 Jmeter 执行测试计划的线程数
-
Thread Group提供的主要作用
- 设置线程数
- 设置ramp-up period
- 设置执行测试的次数
-
Thread Group的独立性
- 每个线程都会独立的运行测试计划,互不干扰,
- 多个线程用于模仿对服务器的并发访问。
线程组属性
自定义线程组
- 安装自定义线程组
- 选项- 插件管理器 - Available Plugins - 选择 Custom Thread Groups
Stepping Thread Group
参考
https://www.cnblogs.com/poloyy/p/15257716.html https://www.cnblogs.com/Zfc-Cjk/p/8975619.html
|