Jmeter如何实现参数化用户,并且管理Cookie
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置首先建议大家创建一个规范的目录保存文件目录作用data保存参数result保存结果script保存
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
ios软件开发参考文献
微信小程序访问腾讯云数据库
秦皇岛服务器机柜批发
区块链数据库访问
云端数据库可以做什么
软件开发控制周期的图
电信网络安全部门要会哪些
中国网络技术在世界的地位
人民金融 创新药数据库
赣州市立医院软件开发笔试
steam怎么显示服务器错误
江苏紫气天下网络技术公司
星际争霸服务器
奉贤区高科技软件开发排行
软件开发确认收入时间
rac数据库部署
购买网络技术服务价格合理
从事软件开发一年还是初级
阿里云服务器网速很慢
软件开发测试验收通知书
海宁市快信网络技术有限公司
网络安全技术描述正确的是
his系统怎么导出数据库
求生之路2中国服务器指令
支付宝数据库开放
我的世界青云服务器
服务器ip地址怎么看
发票查询无数据库
虎丘区信息化网络技术咨询热线
余姚肿杉网络技术公司