一、下载安装jmeter

提前安装好jdk1.8
下载地址:https://jmeter.apache.org/download_jmeter.cgi
下载好以后解压到盘符。
image.png

进入到盘符jmeter目录下 -> 进入”bin”目录 -> 双击”jmeter.bat”打开
image.png
配置jmeter环境变量
image.pngimage.png
环境变量配置进入dos(最好使用管理员身份进入)查看是否配置成功 命令”jmeter —version”image.png

二、使用jmeter

测试http AIP:http://httpbin.org/#/

2.1、jmeter测试http

打开jmeter -> 创建线程组
image.png
线程组 ->创建http请求
image.png
HTTP请求 -> 查看结果树
image.png

打开”测试http AIP” 测试POST请求 -> 点击”POST” -> 点击”Try it out” -> 点击”Execute”,查看Request URL、Response body、Response headers是否数据。image.pngimage.png

回到jmeter -> 选中http请求 -> 添加参数(如下图1) -> 点击执行,察看结果树(图2)
PS:所有的http请求类型都是一样填写方式是
image.pngimage.png

2.2、jmeter设置http请求默认值

右键点击”线程组” -> 添加 -> 配置元件 -> HTTP请求默认值
image.png
添加需要常用的数据 -> http拖拽到”HTTP请求”上面
image.png
再次执行http请求 -> 协议、服务器不用填写,执行即可.
image.pngimage.png

三、Jmeter接口测试

3.1、变量

在请求过程中,有时我们需要在请求中设置一些变量来测试不同的场景。

Jmeter支持以下类型变量:

  • 用户自定义变量
  • 函数生成变量
  • BeanShell变量
  • 数据文件变量

3.3.1、用户自定义变量

设置步骤:选中请求 -> 添加 -> 前端处理器 -> 用户参数 设置变量名称为 user,值为 yyy
image.png
在请求是引用变量如下所示:变量引用格式:${user}
image.png

3.3.1.1、设置线程多次请求

需求:htpp请求中,用户参数有多个用户变量值,点击一次”执行”,请求所有配置用户变量。

用户参数 配合 用户组变量,”每次迭代更新一次”选中√
image.png

选中”线程组” -> 设置”线程数”,最后在”察看结果数”看下结果是否执行了线程数。
image.png

3.3.2、函数生成变量

作用:Jmter有许多内置的函数,可以生成随机数。
创建步骤:点击菜单栏”工具” -> 函数助手对话框 -> 下拉选择_Random函数
image.png

选择”Random” -> 添加范围最大值 和 最小值 -> 点击”生成”,系统自动复制
image.png

选中请求 -> 配置”参数变量”
image.png

3.3.3、BeanShell变量

什么是Bean Shell ?

  • Bean Shell 是一种完全符合java语法规范的脚本语言,并且又拥有自己的一些语言和方法;
  • Bean Shell 是一种松散类型的脚本语言(这点和JS类似);
  • Bean Shell 使用Java写成的,一个小型的、免费的、嵌入式的java源代码解释器,具有对象脚本语言特性,非常精简。
  • Bean Shell 执行标准Java语言和表达式,另外包括一些脚本命令和语法。

官网:http://www.BeanShell.org/

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交互的桥梁,常用方法:

  1. //定义jmeter变量
  2. vars.put(String key, String value);
  3. //从Jmeter中获取变量
  4. vars.get(String key);

log:写入信息到jmeter.log文件,使用方法:

log.info("hello,yyy");

3.3.3.1、BeanShell创建

选中请求 -> 右键选择”添加”-> 前置处理器 -> BeanShell PreProcessor
image.png

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)

image.png
image.png

csv文件中多个值(图1),想要全部执行,需要修改线程执行次数(图2),再次运行,http就所有值都运行出来(图3)
image.png
image.png
image.png

3.2、在url中添加参数请求

方式一:选中执行的”HTTP”请求 -> 参数 -> 点击”添加” -> “名称:”、”值” 添加参数
image.png
方式二:也可以在当前”http请求”中的url里填写也行
image.png

3.3、传递HTTP请求体的参数

Request body (POST)

在Post请求中参数一般在body中传递,Jmeter也支持在body中传递参数。如果传递Json格式的参数,在Body Data编辑框输入如下参数

{"username":"yyy"}

另外还需要指定参数的格式,因此需要添加HTTP信息头管理器
添加步骤:选中请求 -> 添加 -> 配置元件 -> HTTP信息头管理器,然后在管理器里面添加参数类型 Content-Type : application/json 如下图所示:
image.png接口测试教程素材.rar