目录
1、cookie管理器
cookie管理器专门用来管理客户端的cookie信息,一般用于需要登录的场景保持与服务器的会话,如果不设置cookie管理器,则无法在jmeter中保持会话。
添加方式:线程组--》添加--》配置元件--》cookie管理器,cookie管理器一般不需要专门设置,添加了就可以了
以mms医药管理系统为例子:
登录之后,服务器给浏览器发送了一个cookie,后续的接口在发送请求时需要携带这个cookie,如果你没有携带这个cookie,那么服务器就认为你没登录,把你重定向到登录界面
登录接口:
请求方法:post
请求url: http://192.168.47.130:8080/mms/Login/loginUser
请求头:content-Type: application/x-www-form-urlencoded; charset=UTF-8
请求参数:username: admin
password: 1234
登录后会自动发起一个获取登录用户名的请求
请求方法:get
请求url: http://192.168.47.130:8080/mms/Login/GetLoginName
如果不设置cookie管理器
登录请求
登录后请求
察看结果树结果
在该线程组下设置察看结果树之后,启动线程组,察看接口请求结果
可以查看到获取登录名这个接口,认为你没有登录系统,设置了重定向,查看第二个HTTP请求--GetLoginName时,查看响应体直接是回到了登录页面,让你去登录
设置cookie管理器之后察看结果树结果
设置cookie非常简单,只要点击线程组---》配置元件--》HTTP Cookie管理器添加上就行,不用任何操作,再次启动线程组,可以看到在获取登录名的接口中返回了json数据,没有在重定向
2、JMeter参数化
把测试数据组织起来,用不同的测试数据调用相同的测试方法
本质:使用参数的方式来替代脚本中的固定测试数据
实现方式:
-
定义变量(最基础)
-
文件定义的方式(所有测试数据都固定的情况下)
-
数据库的方式(灵活)
-
函数的方式(灵活)
2.1、用户定义变量
作用:定义全局变量
位置:测试计划--》线程组---》配置元件---》用户定义的变量
练习:
-
请求:百度一下,你就知道
-
要求:使用用户定义的变量配置被测系统的协议,域名和端口
操作步骤:
-
添加线程组
-
添加用户定义的变量
-
添加HTTP请求,在请求中引用用户定义的变量,格式为${变量名}
-
添加察看结果树
用户自定义变量如下:
在HTTP请求中的调用:
2.2、用户参数
作用:针对同一组参数,当不同用户来访问时,可以获取到不同的值
位置:测试计划--》线程组--》前置处理器--》用户参数
练习:
请求:百度一下,你就知道
要求:第一个用户请求附带参数:name=“张三”&age=28;第二个用户请求附带参数:name=”李四“&age=30
操作步骤:
1、添加线程组
2、添加用户参数
3、添加请求
4、添加察看结果树
运行之后,点击察看结果树---》点击请求--》点击Request Body可以看到请求的url,生成的俩个请求,请求参数不同
使用“用户参数化”的步骤?
1、添加线程组,设置线程数为n(表示模拟的用户数)
2、添加用户参数
-
第一列添加多个变量名
-
后续每一列为一组用户数据
3、添加HTTP请求,引用定义的变量名。格式:${变量名}
4、添加察看结果树
2.3、CSV数据文件设置
作用:让不同的用户在多次循环时,可以取到不同的值
位置:测试计划--》线程组--》配置元件--》CSV数据文件设置
思考:性能测试时,有多个用户登录,登录后循环添加商品,每次添加的商品参数不能相同,该怎么做?练习:
要求:循环请求3次我,每次请求时附带参数username,password,code的值不同
操作步骤:
1、定义CSV