Jmeter如何实现参数化用户,并且管理Cookie
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置首先建议大家创建一个规范的目录保存文件目录作用data保存参数result保存结果script保存
千家信息网最后更新 2025年01月23日Jmeter如何实现参数化用户,并且管理Cookie
谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置
- 首先建议大家创建一个规范的目录保存文件
目录 | 作用 |
---|---|
data | 保存参数 |
result | 保存结果 |
script | 保存脚本 |
- 如下所示
- 设置目录的好处,就是文件路径可以使用相对路径,这样可以跨系统(window、linux),跨平台而不用修改路径
- 首先要在用户变量中设置一个变量path,值为../data/,..的意思代表当前目录往上一个目录
- 然后在data目录新增一个.csv格式的文件,建议新增一个txt格式的文本文件,然后改成.csv格式文件
- 变量如下
- 变量如下
- 添加CSV元件,线程右键》添加》配置元件》CSV数据文件设置
- 配置如下:
- 调用参数
- 配置如下:
- 默认系统都是需要登录,才能操作其它接口,所以需要添加一个HTTP Cookie 管理器,默认Cookie管理器是关闭的,需要修改jmeter配置文件jmeter.properties,该文件在jmeter\bin\路径下,找到#CookieManager.save.cookies=false 修改为CookieManager.save.cookies=true,保存配置文件重启jmeter
- 点击测试计划右键》添加》配置元件》HTTP Cookie 管理器
- Cookie管理器的作用就是帮你自动管理系统登陆获取的cookie,其它接口需要用到的时候自动调用
- Cookie管理器的作用域解释:不同的线程cookie不会互相调用,cookie管理器如果放置在测试计划下,则线程下的所有接口都可以自动调用cookie,如果放置在事物管理器下,则只有该管理器下的接口才会调用到,其他和该事物平级的接口则不会被调用
- 点击测试计划右键》添加》配置元件》HTTP Cookie 管理器
- 分析实际案例一,本案例添加了cookie管理器,实际请求还是报错
- 响应结果提示:status":400,"error":"Bad Request",Missing cookie 'timeZone' for method parameter of type in
- 查询请求使用的cookie管理器,管理器调用的cookie参数
- 由于cookie管理器不是万能的,如果遇到报错,就要实际结合接口请求进行分析,手动进行查询调试,手动的cookie如下:
- cookie值详细如下:
sid=c4d29545-3409-4117-81be-a6562a6f8c2f; mip_curr_lang=zh-CN; user_info=%7B%22id%22%3A%22u_10212853605%22%2C%22parentId%22%3A%22d_9743384365%22%2C%22name%22%3A%22%E8%B0%A2%E7%94%B0%22%2C%22fdLangType%22%3A%22zh-CN%22%2C%22fdPositionName%22%3A%22%E6%B5%8B%E8%AF%95%E5%B7%A5%E7%A8%8B%E5%B8%88%22%2C%22fdEmail%22%3A%22tian2.xie%40meicloud.com%22%2C%22loginName%22%3A%22xietian1%22%2C%22fdEnglishName%22%3A%22%22%2C%22fdTimeZone%22%3A%22Asia%2FShanghai%22%2C%22fdEmployeeNumber%22%3A%2220215183%22%2C%22fdDepartmentEnglishName%22%3A%22Midea%20Holding%20Group_Midea%20Group_Shenzhen%20Midea%20Cloud%20and%20Intelligent%20Technology%20LTD_Midea%20Cloud%20Department_MQ%20Technology%20PlatformDevops%20Platform%20Research%20and%20Development%22%2C%22fdDepartmentName%22%3A%22%E7%BE%8E%E7%9A%84%E7%BE%8E%E7%9A%84%E9%9B%86%E5%9B%A2%E6%B7%B1%E5%9C%B3%E7%BE%8E%E4%BA%91%E6%99%BA%E6%95%B0%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8%E7%BE%8E%E4%BF%A1%E4%BA%91%E4%BA%8B%E4%B8%9A%E9%83%A8_%E7%BE%8E%E6%93%8E%E6%8A%80%E6%9C%AF%E5%B9%B3%E5%8F%B0_Devops%20%E5%B9%B3%E5%8F%B0%E4%BA%A7%E5%93%81%E7%A0%94%E5%8F%91%22%2C%22locale%22%3A%22zh_CN%22%2C%22fdHierarchyId%22%3A%22x526x1460494117x7509007994x7659897777x9732499571x9743384365x10212853605x%22%2C%22shiroid%22%3Anull%7D; OAM_LANG_PREF=v1.0~cHJlZmVycmVkTGFuZ3VhZ2U9emh+ZGVmYXVsdExhbmd1YWdlTWFya2VyPWZhbHNl; oam_locale=zh; mip_lang=zh; mideatest_sso_token=eOXIT3uFt6jYti%2FYd3JLHcaL2nd0xvXmBE7enJMQJsWkLsvg9Uu4FA%3D%3D; MAS_TGC_UAT=eyJhbGciOiJIUzUxMiJ9.WlhsS05tRllRV2xQYVVwRlVsVlphVXhEU21oaVIyTnBUMmxLYTJGWVNXbE1RMHBzWW0xTmFVOXBTa0pOVkVrMFVUQktSRXhWYUZSTmFsVXlTVzR3TGk1SVlrdFdURWhrYlZCa2JVcHVTRXQwUmsxcGRrSjNMbGR4VldGYVdrczBiVTFSYm5CM2MydDViWEl3VGxGVVVGaDVWWEJXTTJWa2FsRnFSV05wVUc5MVgxWlZSek5pUVZwdVUyNUNObFpFZVdGWVZubDZiV2hvVXpGdWF6UnllbnB5WVRkSWJYUklXVVZtTm1KRFJrZzBabWszVmpOZldXaGZjMDlYYVhOM112c3RkVXhMZFhsa1JETmxORzVMVUdwbGEzZFJWRUZzUTIxbFFUVjNZMVpaTVdWRVJsaFhPWEZOVTJWa2NrYzVRVlZJUXpOR1UyWjJNWFJRZEdwUmVXRk1PV3d3ZWtoUVpsQk9iRmxYYW5GeGFYVmlPREZNYVU1bVVGOXBWbm80ZHpJeWMxTkNOVEJtTW5CcVgxUlJVbEpyTW1oQlVuRmlUWEF6YzFoMVlYaG1RMUJMVnpOd01sZFJaRGRhUmxKMlltOW1TM1p4VDBndU1YTkdMVE5aVEdoUExXTTJTREZuY0ZkTVJtdEtkdz09.XI9uAFyY6XWSA7CRcmMwGuNvIcAig6wF5wlVF4o9qE8F6jKEfq6OHoFqZg40jO87RyAW3fivDzrNZkJmo9AIyw; ObSSOCookie=DoSRzdMFH1aFXJM9XH5G×××wj0dG2BDxv01ftZRX1PLroXfL6MPfHpSHXHCn0gJBn195Iccn4CvlQ0cydDfUfaMGTKM5%2FQzzWBuGownsQIPc9WTP4rZNbbIOsZ2tGcg%2Btl5FK7QqmsKRYg9PknRhklmgUKeq%2FWamFaPJgwuyhGQ%2BKqxCut%2FwpnpBtccz0McnG%2BsP5h4pyPNaydZQK3eXpQk1xFZdBZuuXsbuhKADTW1HEJtk8NzAbXhWN4ZLCJHrqzvsjSgLmCph3X1O3gBZrenzuA4yVizUSUo5RFobUz5v%2FWvp3zKkp%2FkfM%2FT%2FzrPTGUGkwduxXugMIM%2BNAyIXnY%2FokAg3sokv345cjMcgnGHY%3D; language=zh-CN; timeZone=8 - 结合响应报错,原来是调用的cookie丢失了; language=zh-CN; timeZone=8,导致请求失败,见红色字体
- 因为自动cookie管理器会报错,所以需要把cookie管理器放置到登录事物管理器下,这样cookie管理器就不会影响到查询请求设置的cookie,设置如下
- 由于ObSSOCookie变量是cookie管理器进行管理的,所以可以打开debug sample查看该变量在cookie中的命名,如下
- 经过调试,只需要在查询请求下的表头,增加一个Cookie变量,值为ObSSOCookie=${COOKIE_ObSSOCookie}; language=zh-CN; timeZone=
- 修改完成之后,进行调试,调试成功
- 响应结果提示:status":400,"error":"Bad Request",Missing cookie 'timeZone' for method parameter of type in
- 分析实际案例二
- 响应结果提示:,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.ServletRequestBindingException","message":"Missing cookie 'language' for method parameter of type String"
- 提交请求使用的cookie管理器,管理器调用的cookie参数
- 结合响应报错,原来是调用的cookie丢失了: language=zh-CN,导致请求失败,可以在HTTP Cookie管理器中维护该字段,如下:
- 调试结果,提交成功
- 此时,每个该域名下的请求,Cookie参数都会被添加language=zh-CN进去,如下所示:
- 响应结果提示:,"status":400,"error":"Bad Request","exception":"org.springframework.web.bind.ServletRequestBindingException","message":"Missing cookie 'language' for method parameter of type String"
- 分析实际案例三,1线程循环3次,首先登录,然后提交请求,系统只成功了第一笔提交数据,第2、3笔提交失败
- 原因分析:由于使用了HTTP Cookie管理器,但是却没勾选每次反复清除Cookies,导致第2、3次循环使用的cookie依然是第一次循环获取的cookie值,只需要勾选即可,如下:
- 修改完成之后,进行调试,调试成功
- 原因分析:由于使用了HTTP Cookie管理器,但是却没勾选每次反复清除Cookies,导致第2、3次循环使用的cookie依然是第一次循环获取的cookie值,只需要勾选即可,如下:
- 首先要在用户变量中设置一个变量path,值为../data/,..的意思代表当前目录往上一个目录
此时,不管多个用户还是单个用户,都可以实现并发查询
如果文章对你有帮助,可以在右下角点击关注功能,欢迎转发、拍砖,本人会持续推出与测试有关的文章,与大家分享测试技术,每一篇原创文章都是用心编写,杜绝抄袭复制,微信公众号与本平台文章同步,方便大家查阅
QQ技术交流群:加群请输入验证信息51CTO
微信二维码关注公众号:
关注之后,回复资源下载,即可获取本人共享的各种资源下载地址
管理
文件
参数
变量
目录
实际
接口
分析
查询
测试
配置
用户
成功
元件
文章
系统
线程
结果
路径
事物
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
重庆星月网络技术有限公司
财务数据库
山东济南服务器
网络安全学习报告
网络安全活动方案幼儿园
余姚祭月网络技术有限公司
重庆web前端软件开发
运维管理软件开发费用
游戏软件开发工作高吗
应该设计数据库外键吗
广东智能养老软件开发专业制作
php 链接数据库 乱码
缺乏网络安全的危害
服务器被黑客入侵的经历
帝国cms的数据库时间转换
yum 源服务器
华为手机6g网络技术
dede 连接数据库
cs软件开发用什么语言
浙江多功能软件开发行业
在后台数据库的英文表达
维普数据库有哪些检索途径
海外邮件服务器
网络安全空间学什么待遇如何
唯橙网络技术有限公司
软件开发有交换生吗
公安局网络安全要求
数据库的表需要修复
好视通连接到服务器失败怎么回事
手游怎样启动服务器