用JMeter做自动化,如何获取接口的Cookie值?

发表于:2023-8-14 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:程序员馨馨    来源:51Testing软件测试网原创

  最近在利用JMeter做接口自动化测试工作,实现了很多场景的自动化,想着很多方法具有通用性,于是拿出来分享下,希望对大家有所启发。
  今天分享的是场景是:JMeter进行接口测试,两种方法获取登录接口的Cookie值。
  HTTPCookie管理器
  在JMeter中,HTTPCookie管理器(HTTPCookieManager)用于管理发送和接收的HTTP请求中的Cookie。Cookie是服务器用来在客户端和服务器之间维持会话状态的一种机制,通过在请求和响应中传递Cookie来实现状态的保持。
  这次分享的案例就是,在登录后,通过使用HTTPCookie管理器,可以自动处理和发送服务器返回的登录会话Cookie,这样可以确保在后续的请求中保持登录状态,以进行需要登录的操作。
  添加一个测试计划
  命名为:商品前台接口(测试环境)。
  添加配置元件
  1、用户定义的变量
  主要包括用户名、密码、验证码三个变量。
  2、HTTP请求默认值
  主要包括协议、服务器名称或IP、端口号、Contentencoding:
  3、HTTP信息头管理器
  这里可以填Refer、Content-Type等信息:
  4、HTTPCookie管理器
  可以填Cookie,也可不填,根据实际项目需要:
  新建线程组
  新建简单控制器
  简单控制器对结果没有任何影响,主要是为了使脚本结构清晰,一般一个简单控制器下一个请求:
  新建HTTP请求
  需要填写方法、路径、请求参数等信息。
  填写登录接口的请求信息:
  填写获取商品接口的请求信息:
  添加断言
  登录接口在登录模块已有断言,在这里的断言可加可不加,这里主要是测试查看商品信息接口,所以在查看商品信息接口下加了断言,即返回的status字段为0。
  添加监听器
  添加查看结果数,可查看请求的返回的信息。
  HTTP信息头管理器
  HTTP信息头管理器,用于管理发送给服务器的HTTP请求的信息头,信息头包含在HTTP请求中,用于传递与请求相关的元数据和其他附加信息。
  例如我们常用的HTTP头信息中,包含如下字段:
  Content-Type(内容类型):用于指定请求或响应中传输的数据的媒体类型。常用的值包括"application/json"、"application/xml"、"application/x-www-form-urlencoded"等。
  User-Agent(用户代理):用于标识客户端发起请求的用户代理(浏览器、应用程序等)。例如,"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36"。
  Authorization(授权):用于在请求中包含认证凭据,以验证用户身份。这可以是基本认证(BasicAuthentication)或其他认证机制,具体取决于服务器的要求。
  Accept-Language(接受语言):用于指定首选的自然语言,以便服务器返回相应的本地化内容。例如,"en-US,en;q=0.9"表示首选英语(美国),其次是任何英语语言。
  Referer(引荐页):指定从哪个页面链接跳转到当前页面。有时服务器会检查Referer头以验证请求的来源。
  Cookie(Cookie):用于在请求中发送已存储在客户端的Cookie信息。可以手动设置Cookie的键值对,以模拟登录状态或其他需要的会话信息。
  登录接口返回的ResponseHeaders中包含Cookie信息:
  查看商品接口请求头RequestHeaders中需要Cookie信息:
  思路就是将登录接口返回的Cookie信息,通过正则表达式提取出来,放在HTTP信息头管理器中的1个变量Cookie中,供其他接口请求时调用。
  添加一个测试计划
  命名为:商品前台接口(测试环境)。
  添加配置元件
  1、用户定义的变量
  主要包括用户名、密码、验证码三个变量:
  2、HTTP请求默认值
  主要包括协议、服务器名称或IP、端口号、Contentencoding。
  3、HTTP信息头管理器
  这里可以填Refer、Content-Type、Cookie等信息。
  新建线程组
  新建简单控制器
  简单控制器对结果没有任何影响,主要是为了使脚本结构清晰,一般一个简单控制器下一个请求。
  新建HTTP请求
  需要填写方法、路径、请求参数等信息。
  填写登录接口的请求信息:
  填写获取商品接口的请求信息:
  添加后置处理器
  即正则表达式提取器,将信息头的Set-Cookie值提取出来,保存在变量${token}中:
  查看商品信息接口时,会自动读取信息头管理器的Cookie,进行请求,获取商品信息。
  添加断言
  登录接口在登录模块已有断言,在这里的断言可加可不加,这里主要是测试查看商品信息接口,所以在查看商品信息接口下加了断言,即返回的status字段为0。
  添加监听
  添加查看结果数,可查看请求的返回的信息。
  这样,一个登录接口就成功完成了。
  版权声明:本文出自51Testing会员投稿,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号