jmeter优点是:开源免费,小巧,丰富的学习资料和扩展组件
缺点是:1.不支持IP欺骗,分析和报表能力相对于LR欠缺精确度(以分钟为单位)
| 工具 | 用户量 | 分析报表 | IP欺骗 | 费用 | 体积 | 扩展性 |
| Loadrunner | 多(万) | 精确(s) | 支持 | 收费 | 大(单位gb) | 不能扩展 |
| Jmeter | 少 | 较差(min) | 不支持 | 免费 | 小(MB) | 有扩展组件 |
地址:http://www.oracle.com/
环境变量 :
校验:cmd命令行里输入 java -version
地址:Apache JMeter - Download Apache JMeter
解压安装包即可
启动3种方式:进入bin目录,双击jmeter.jar ; 双击ApacheJMeter.jar ;命令行输入java -jar ApacheJMeter.jar
1. bin目录介绍(存放可执行文件和配置文件)

jmeter.bat: windows的启动文件(重要)
jmeter.log: Jmeter工具运行的日志文件
jmeter.propertites: jmeter工具的配置文件(重要)
jmeter.sh: linux的启动文件
jmeter-server: linux分布式测试的启动程序
jmeter-server.bat: windows分布式测试的启动程序
是jmeter的api文档,用于开发扩展组件

用户帮助手册

存放jmeter依赖的jar包和用户扩展所依赖的jar包(ext目录下)

临时的:菜单Options->Choose Language->Chinese(Simplified)
永久的:修改配置文件,bin\jmeter.properties文件,改成"language=zh_CN",然后重启jmeter


1. 元件:多个类似功能组件的容器(类似于类)

| 取样器 | 发送请求 |
| 逻辑控制器 | 控制语句的执行顺序 |
| 前置处理器 | 对请求参数进行预处理 |
| 后置处理器 | 对响应结果进行提取 |
| 断言 | 检查接口的返回结果是否与预期结果一致 |
| 定时器 | 设置等待 |
| 测试片段 | 封装一段代码,供其他脚本调用 |
| 配置元件 | 测试数据的初始化配置 |
| 监听器 | 查看jmeter脚本的运行结果 |
2. 组件:实现独立的某个功能(类似于方法)
如取样器里的HTTP请求,逻辑控制器里的循环控制器,事务控制器

元件的作用域是靠测试计划的树形结构中的父子关系来确定的。

提示:所有的组件都是以取样器为核心运行的。组件添加的位置不同,生效的取样器也不同。
同一个作用域下不同类型元件:
同一个作用域下多个相同类型元件:
举例:整理执行顺序
定时器1 - HTTP请求1 - 定时器1 - 定时器2 - HTTP请求2 - 定时器1 - 定时器3 - HTTP请求3
作用:线程组就是控制jmeter用于执行测试的一组用户
特点:
不控制顺序如图:

如果要顺序执行线程组,设置如下:

执行结果如图:

setup线程组-前置处理,初始化
普通线程组-编写脚本,可以看做一个虚拟用户组,每一个线程都可以理解为一个虚拟用户
teardown线程组-后置处理,环境恢复等

(1)模拟10个用户并行执行:


(2)模拟5个用户5s内启动完成


(3)模拟2个用户各循环3次



(4)模拟2个用户运行5s


(5) 模拟2个用户等待5s后开始执行,持续时间2s

(6)案例分析:
相同点:从请求数量来说,完全相同
不同点:场景不同

a.如何配置来发送http请求?
发送 GET 请求(请求参数在路径中 ):
URL协议:协议、服务器域名或IP、端口、方法(GET)、路径、编码格式
参数 :
发送POST请求(请求参数在消息体数据中):
URL:协议、服务器域名或服务器域名或IP、端口、方法(POST)、路径、编码格式
参数:
b.重定向
GET https://www.baidu.com/s



HTTP请求的响应数据和HTTP请求-1的响应数据一样
重定向的原因分析 :
第一个HTTP请求中,URL错误,导致服务器产生了重定向,提供了新的URL路径
需要修改取样结果的编码格式->修改jmeter.properties文件:
# The encoding to be used if none is provided (default ISO-8859-1)
sampleresult.default.encoding=UTF-8