环境部署
官网下载Jmeter
http://jmeter.apache.org/下载最新版本的 JMeter,解压文件到任意目录
安装JDK,配置Java环境 【直接上环境变量配置】【mac的】
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/
CLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH:
export JAVA_HOME
export CLASSPATH
export PATH
注意:应该避免JDK安装路径,Jmeter路径有中文和空格
配置Jmeter环境变量【mac的】
export JMETER_HOME=/Users/ww/Downloads/apache-jmeter-5.5
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
检查Jmeter配置是否成功
Jmeter的详细介绍
Jmeter支持哪些测试场景?
Jmeter能够对许多不同的应用程序/服务器/协议类型进行负载测试和性能测试
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- 通过JDBC连接数据库(支持各种数据库)
- LDAP
- 通过JMS的面向消息的中间件(MOM)
- 邮箱协议 - SMTP(S), POP3(S) and IMAP(S)
- 本机命令或Shell脚本
- TCP
- Java Objects
Jmeter有哪些特征?
- 功能齐全的测试编辑界面,允许快速记录测试计划(来自浏览器或本机应用程序),构建和调试 【HTTP代理服务器,类似抓包】
- 命令行模式,可以在任何装了Java环境的系统(win、linux、mac)上进行测试【移植性好】
- 提供完整且随时可查看的HTML报告
- 可以在大多数流行的响应格式(HTML、JSON、XML或任何文本格式)中提取数据,实现关联【常说的数据关联】
- 多线程框架允许通过多个线程进行并发采样,并通过单独的线程组同时对不同的方法进行采样。
- 可以对测试结果进行缓存和离线分析、离线重放
Jmetert的扩展性体现在哪里?
- 脚本化的采样器【BeanShell、Groovy】
- 随意增删的采样器
- 负载统计信息可以增删定时器
- 数据分析和可视化插件提供了出色的扩展性和个性化
- jmeter自带方法可以向测试计划提供动态输入或数据处理能力
- 通过针对Maven,Gradle和Jenkins的第三方开源库轻松进行持续集成。
Jmeter实际使用场景
- 接口测试
- 压力测试
- 分布式压力测试
- 测试 Restful 风格的API
Jmeter安装目录介绍
Jmeter安装目录说明
mac
win
bin |
|
docs | 官方接口文档,二次开发需要了解的一些接口 |
extras | 辅助库,持续集成会用到(后面讲) |
lib |
|
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 的启动文件,带cmd窗口 |
jmeterw.cmd | windows 下 jmeter 的启动文件,不带cmd窗口 |
shutdown.cmd | windows 下 jmeter 的关闭文件 |
stoptest.cmd | windows 下 jmeter 停止测试的文件 |
jmeter-server.bat | windows 下 jmeter 服务器模式的启动文件 |
jmeter-server | mac 或者 Liunx 分布式压测使用的启动文件 |
Jmeter面板介绍【重要哦】
Jmeter面板介绍
讲一下常用的菜单栏
分布式运行相关的,后面再展开讲解哦
选项,可以打开日志,修改语言,还有管理插件哦!
工具,主要看函数助手
再讲下,常用的图标
从左往右依次是
- 新建测试计划
- 选择测试计划模板创建一个新的测试计划
- 打开jmeter脚本
- 保存jmeter脚本
- 剪切
- 复制(鸡肋,不如ctrl+c)
- 粘贴
- 展开目录树
- 收起目录树
- 禁用或启用元件
- 本机开始运行当前测试计划
- 立即开始在本机运行当前测试计划
- 停止
- 关闭
- 清除
- 清除全部
- 查找
- 清除查找
- 函数助手对话框
- 帮助
查看日志
- 如果是黄色感叹号则是正常的,如果是红色数字的代表有问题【显示的数字是多少呢,warnings/errors 数量就是多少】
- 点击可以查看日志【这个日志是Jmeter工具使用加载信息的日志,并不是测试脚本运行的日志】
查看错误报告
jmeter会在 jmeter.log 文件中记录warn和error信息,而 jmeter.log 在bin目录下
关键点
- 倘若测试脚本的执行结果并不是你想要的,可以尝试在 jmeter.log 中找一找,比如:调用函数但语法错误
- 当然,Sampler的错误结果一般是不会记录到 jmeter.log ,比如:请求404
jmeter.properties【在本章节bin中说过了】【具体可以看这个】
jmeter安装目录下的bin目录
是Jmeter核心配置项文件
官方建议
将需要修改的属性值,复制粘贴到同目录下的 user.properties
好处:当Jmeter升级时,可以避免修改项需要重新应用
常用的配置
官方文档:Apache JMeter - User's Manual: Properties Reference
默认语言设置
- language=en:默认英文
- language=zh_CN:默认中文
注意:这个只有在 jmeter.properties 文件中声明才会生效,官方也提醒了
配置默认编码格式
- sampleresult.default.encoding=ISO-8859-1:默认ISO-8859-1
- sampleresult.default.encoding=UTF-8:可以改成常用的UTF-8
输出测试报告模板格式
jmeter.save.saveservice.output_format=csv
捕捉cookie
Cookies应该存储为变量
CookieManager.save.cookies=false:默认
CookieManager.save.cookies=true:将cookie存储为变量
快捷方式(ctrl+数字0-9)
- gui.quick_0=ThreadGroupGui
- gui.quick_1=HttpTestSampleGui
- gui.quick_2=RegexExtractorGui
- gui.quick_3=AssertionGui
- gui.quick_4=ConstantTimerGui
- gui.quick_5=TestActionGui
- gui.quick_6=JSR223PostProcessor
- gui.quick_7=JSR223PreProcessor
- gui.quick_8=DebugSampler
- gui.quick_9=ViewResultsFullVisualizer
post请求,若不添加Content-Type,则不会默认添加Content-type
在5.0版本之前默认是true
post_add_content_type_if_missing=false:默认
post_add_content_type_if_missing=true:添加Content-Type: application/x-www-form-urlencoded
配置远程主机 host
remote_hosts=127.0.0.1