1.  默认系统都是需要登录,才能操作其它接口,所以需要添加一个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,如果放置在事物管理器下,则只有该管理器下的接口才会调用到,其他和该事物平级的接口则不会被调用
    2. 分析实际案例一,本案例添加了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%2BsP5h3pyPNaydZQK3eXpQk1xFZdBZuuXsbuhKADTW1HEJtk8NzAbXhWN4ZLCJHrqzvsjSgLmCph2X1O3gBZrenzuA4yVizUSUo5RFobUz5v%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=
      • 修改完成之后,进行调试,调试成功
    3. 分析实际案例二
      • 响应结果提示:,"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进去,如下所示:

    4. 分析实际案例三,1线程循环3次,首先登录,然后提交请求,系统只成功了第一笔提交数据,第2、3笔提交失败

      • 原因分析:由于使用了HTTP Cookie管理器,但是却没勾选每次反复清除Cookies,导致第2、3次循环使用的cookie依然是第一次循环获取的cookie值,只需要勾选即可,如下:
      • 修改完成之后,进行调试,调试成功

此时,不管多个用户还是单个用户,都可以实现并发查询

Jmeter的Cookie管理器调试与参数化的更多相关文章

  1. JMeter HTTP Cookie管理器的跨域使用

    Jmeter的一个测试计划只能有一个cookie管理器,当多个manager同时存在时,无法指定是用的哪一个manager.如果想让cookie manager跨域使用,修改JMeter.proper ...

  2. jmeter 使用cookie管理器

    1.jmeter.properties  中 将CookieManager.save.cookies 设置为true 2.添加一个cookie管理器,什么都不用填 3.把需要用到的请求放到登录后面.后 ...

  3. Jmeter 中Cookie管理器的使用

    Jmeter中有好几个地方可以管理Cookie,比如 Http Cookie Manager HTTP Header Manager jmeter.property文件中: #CookieManage ...

  4. JMeter学习-012-JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

    前文我们讲过了若何获取登录后的 Cookie 信息,不知如何获取登录 Cookie 的朋友,敬请参阅我之前写的博文:Fiddler-005-获取 Cookie 信息.参阅上篇文章,获取到 Cookie ...

  5. JMeter 配置元件之-HTTP Cookie管理器-实现 Cookie 登录

    下面以购物App常用的收藏功能为例,讲述如何在 JMeter 中使用 cookie 进行登录态操作.具体的操作步骤如下所示: 第一步.录制查看收藏列表的 HTTP请求: 录制查看收藏列表的HTTP请求 ...

  6. Jmeter--HTTP Cookie管理器

    一.什么情况下需要用到Cookie 一般情况下对于HTTP请求的用户登入操作,需要用到Cookie来模拟用户操作,或者对一些业务只有在用户登入之后才能进行操作,比如:常见的场景有购买商品.下单.支付等 ...

  7. Jmeter系列(49)- 详解 HTTP Cookie 管理器

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 简单介绍 功能一 首先,它像网络浏览器 ...

  8. jmeter cookie管理器 使用方法---新手学习记录1

    首先得抓包: 我已post方法为例: POST /api/datasources/lemontest/jaql HTTP/1.1 Host: 192.168.1.107:8081 Content-Le ...

  9. Jmeter之HTTP Cookie 管理器

    Jmeter所支持的Cookie标准有很多,同时jmeter也提供两组程序实现这些cookie标准,分别是httpclient3与httpclient4.http cookie 管理器中的Implem ...

随机推荐

  1. Python:值得学习的二十个技巧

    本文为大家介绍20个值得记住的 Python 技巧,可以提升您编程技巧, 并为您节省大量时间. 在平常编程过程中,以下技巧大多非常有用. 1 字符串反转 使用切片反转字符串. str1="q ...

  2. Viterbi算法

    clc;clear all;close all; Start_Pi = [-1,-1];State_k = ['H','L'];% 转移矩阵Transition_matrix = [-1,-1.322 ...

  3. Ubuntu替换清华源或者阿里源

    倒腾pygame包的问题(Ubuntu 19.10),安装好pip后,又要安装一个pygame的包,倒腾了两天两夜,硬是因为网络问题(可能被强大的墙阻挡了),安装不成功,后面在网上找了篇帖子,用清华源 ...

  4. Jquery Javascript 跳转页面传递参数以及获取url的参数

    传递参数: window.location='editCourse.html?dataId='+dataId+''; 获取url中的参数(封装的方法):    function getUrlParam ...

  5. 认识 YUV

    什么是 YUV YUV是一种颜色编码格式,可以说YUV流媒体是原始流数据,大部分的视频领域都在使用.与RGB类似,但RGB更多的用于渲染时,而YUV则用在数据传输,因为它占用更少的频宽.当然,实时通讯 ...

  6. Oracle dd-m月-yy转yyyy-mm-dd

    表名称:TEST_LP 字段:PROD_DATE 1 SELECT '20' || SUBSTR(T.PROD_DATE, INSTR(T.PROD_DATE, '-', 1, 2) + 1, 2) ...

  7. 基于socket的netty demo

    前面一文说了 基于http的netty demo 和http不一样,http可以用浏览器来充当客户端调用,所以基于socket的netty,必须要编写客户端和服务器的代码 实现功能: 客户端给服务器发 ...

  8. 第一章节 BJROBOT ROS 网络配置及移动控制【ROS全开源阿克曼转向智能网联无人驾驶车】

    版权声明:该教程版权归北京智能佳科技有限公司所有,未经公司授权禁止引用.发布.转载等,否则将追究其法律责任. 使用前说明:本使用文档说明略微简明,请结合指导视频进行操作会更容易理解!! 第一章节 BJ ...

  9. C#处理医学图像(一):基于Hessian矩阵的血管肺纹理骨骼增强对比

    在医院实际环境中,经常遇到有问题的患者,对于一些特殊的场景,比如骨折,肺结节,心脑血管问题 需要图像对比增强来更为清晰的显示病灶助于医生确诊,先看效果: 肺纹理增强: 肺结节增强: 血管对比增强: 骨 ...

  10. 【函数分享】每日PHP函数分享(2021-1-12)

    str_pad() 使用另一个字符串填充字符串为指定长度 . string str_pad ( string $input, int $pad_length[, string $pad_string= ...