一、下载安装jmeter
提前安装好jdk1.8
下载地址:https://jmeter.apache.org/download_jmeter.cgi
下载好以后解压到盘符。
进入到盘符jmeter目录下 -> 进入”bin”目录 -> 双击”jmeter.bat”打开
配置jmeter环境变量
环境变量配置进入dos(最好使用管理员身份进入)查看是否配置成功 命令”jmeter —version”
二、使用jmeter
测试http AIP:http://httpbin.org/#/
2.1、jmeter测试http
打开jmeter -> 创建线程组
线程组 ->创建http请求
HTTP请求 -> 查看结果树
打开”测试http AIP” 测试POST请求 -> 点击”POST” -> 点击”Try it out” -> 点击”Execute”,查看Request URL、Response body、Response headers是否数据。
回到jmeter -> 选中http请求 -> 添加参数(如下图1) -> 点击执行,察看结果树(图2)
PS:所有的http请求类型都是一样填写方式是
2.2、jmeter设置http请求默认值
右键点击”线程组” -> 添加 -> 配置元件 -> HTTP请求默认值
添加需要常用的数据 -> http拖拽到”HTTP请求”上面
再次执行http请求 -> 协议、服务器不用填写,执行即可.
三、Jmeter接口测试
3.1、变量
在请求过程中,有时我们需要在请求中设置一些变量来测试不同的场景。
Jmeter支持以下类型变量:
- 用户自定义变量
- 函数生成变量
- BeanShell变量
- 数据文件变量
3.3.1、用户自定义变量
设置步骤:选中请求 -> 添加 -> 前端处理器 -> 用户参数 设置变量名称为 user,值为 yyy
在请求是引用变量如下所示:变量引用格式:${user}
3.3.1.1、设置线程多次请求
需求:htpp请求中,用户参数有多个用户变量值,点击一次”执行”,请求所有配置用户变量。
用户参数 配合 用户组变量,”每次迭代更新一次”选中√
选中”线程组” -> 设置”线程数”,最后在”察看结果数”看下结果是否执行了线程数。
3.3.2、函数生成变量
作用:Jmter有许多内置的函数,可以生成随机数。
创建步骤:点击菜单栏”工具” -> 函数助手对话框 -> 下拉选择_Random函数
选择”Random” -> 添加范围最大值 和 最小值 -> 点击”生成”,系统自动复制
选中请求 -> 配置”参数变量”
3.3.3、BeanShell变量
什么是Bean Shell ?
- Bean Shell 是一种完全符合java语法规范的脚本语言,并且又拥有自己的一些语言和方法;
- Bean Shell 是一种松散类型的脚本语言(这点和JS类似);
- Bean Shell 使用Java写成的,一个小型的、免费的、嵌入式的java源代码解释器,具有对象脚本语言特性,非常精简。
- Bean Shell 执行标准Java语言和表达式,另外包括一些脚本命令和语法。
Jmeter有哪写Bean Shell?
- 定时器:BeanShell Timer
- 前置处理器:BeanShell PreProcessor
- 采样器:BeanShell Sampler
- 后置处理器:BeanShell Sampler
- 断言:BeanShell断言
- 监听器:BeanShell Listener
Bean shell 可以理解为可以写一些java脚本去处理请求
Bean shell 常用内置变量
Jmeter在它的BeanShell中内置了变量,用户可以通过这些变量与Jmeter进行交互,其中主要的变量以及其它使用方法如下:
vars - (JmeterCariables):操作jmeter变量,这个变量实际引用了Jmeter线程中的局部变量容器(本质上是Map),它是测试用例与BeanShell交互的桥梁,常用方法:
//定义jmeter变量
vars.put(String key, String value);
//从Jmeter中获取变量
vars.get(String key);
log:写入信息到jmeter.log文件,使用方法:
log.info("hello,yyy");
3.3.3.1、BeanShell创建
选中请求 -> 右键选择”添加”-> 前置处理器 -> BeanShell PreProcessor
3.3.4、数据文件变量
3.3.4.1、CSV数据文件变量
- CSV数据文件变量是指从外部csv文件读取数据出来作为变量。
- 设置步骤:请选择请求 -> 添加 -> 配置元件 -> CSV数据文件设置
- 创建csv文件(最好不用记事本创建,推荐用Nodepad++)文件编码为UTF-8文件内容:
例如:文件名称 “user_data.csv”
内容:yyy,8888
- 注意:如果当前线程中,使用csv数据,变量名一定不要重复。因为csv数据的优先级比较低。
内容 yyy,8888 , 变量 user = yyy ,pwd = 8888 (如当前图1)。http请求的参数”值”对应着变量(当前图2)
csv文件中多个值(图1),想要全部执行,需要修改线程执行次数(图2),再次运行,http就所有值都运行出来(图3)
3.2、在url中添加参数请求
方式一:选中执行的”HTTP”请求 -> 参数 -> 点击”添加” -> “名称:”、”值” 添加参数
方式二:也可以在当前”http请求”中的url里填写也行
3.3、传递HTTP请求体的参数
Request body (POST)
在Post请求中参数一般在body中传递,Jmeter也支持在body中传递参数。如果传递Json格式的参数,在Body Data编辑框输入如下参数
{"username":"yyy"}
另外还需要指定参数的格式,因此需要添加HTTP信息头管理器
添加步骤:选中请求 -> 添加 -> 配置元件 -> HTTP信息头管理器,然后在管理器里面添加参数类型 Content-Type : application/json 如下图所示:接口测试教程素材.rar