• 0
  • 0
分享
  • 用JMeter做自动化,如何获取接口的Cookie值?——软件测试圈
  • 曼倩诙谐 2023-08-24 16:00:47 字数 2212 阅读 1572 收藏 0

  最近在利用JMeter做接口自动化测试工作,实现了很多场景的自动化,想着很多方法具有通用性,于是拿出来分享下,希望对大家有所启发。

  今天分享的是场景是:JMeter进行接口测试,两种方法获取登录接口的Cookie值。

  HTTPCookie管理器

  在JMeter中,HTTPCookie管理器(HTTPCookieManager)用于管理发送和接收的HTTP请求中的Cookie。Cookie是服务器用来在客户端和服务器之间维持会话状态的一种机制,通过在请求和响应中传递Cookie来实现状态的保持。

  这次分享的案例就是,在登录后,通过使用HTTPCookie管理器,可以自动处理和发送服务器返回的登录会话Cookie,这样可以确保在后续的请求中保持登录状态,以进行需要登录的操作。

1.PNG

  添加一个测试计划

  命名为:商品前台接口(测试环境)。

2.PNG

  添加配置元件

  1、用户定义的变量

  主要包括用户名、密码、验证码三个变量。

3.PNG

  2、HTTP请求默认值

  主要包括协议、服务器名称或IP、端口号、Contentencoding:

4.PNG

  3、HTTP信息头管理器

  这里可以填Refer、Content-Type等信息:

5.PNG

  4、HTTPCookie管理器

  可以填Cookie,也可不填,根据实际项目需要:

6.PNG

  新建线程组

7.PNG

  新建简单控制器

  简单控制器对结果没有任何影响,主要是为了使脚本结构清晰,一般一个简单控制器下一个请求:

8.PNG

  新建HTTP请求

  需要填写方法、路径、请求参数等信息。

  填写登录接口的请求信息:

9.PNG

  填写获取商品接口的请求信息:

10.PNG

  添加断言

  登录接口在登录模块已有断言,在这里的断言可加可不加,这里主要是测试查看商品信息接口,所以在查看商品信息接口下加了断言,即返回的status字段为0。

11.PNG

  添加监听器

  添加查看结果数,可查看请求的返回的信息。

12.PNG

  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信息:

13.PNG

  查看商品接口请求头RequestHeaders中需要Cookie信息:

14.PNG

  思路就是将登录接口返回的Cookie信息,通过正则表达式提取出来,放在HTTP信息头管理器中的1个变量Cookie中,供其他接口请求时调用。

15.PNG

  添加一个测试计划

  命名为:商品前台接口(测试环境)。

16.PNG

  添加配置元件

  1、用户定义的变量

  主要包括用户名、密码、验证码三个变量:

17.PNG

  2、HTTP请求默认值

  主要包括协议、服务器名称或IP、端口号、Contentencoding。

18.PNG

  3、HTTP信息头管理器

  这里可以填Refer、Content-Type、Cookie等信息。

19.PNG

  新建线程组

20.PNG

  新建简单控制器

  简单控制器对结果没有任何影响,主要是为了使脚本结构清晰,一般一个简单控制器下一个请求。

21.PNG

  新建HTTP请求

  需要填写方法、路径、请求参数等信息。

  填写登录接口的请求信息:

  填写获取商品接口的请求信息:

22.PNG

  添加后置处理器

  即正则表达式提取器,将信息头的Set-Cookie值提取出来,保存在变量${token}中:

23.PNG

  查看商品信息接口时,会自动读取信息头管理器的Cookie,进行请求,获取商品信息。

  添加断言

  登录接口在登录模块已有断言,在这里的断言可加可不加,这里主要是测试查看商品信息接口,所以在查看商品信息接口下加了断言,即返回的status字段为0。

24.PNG

  添加监听

  添加查看结果数,可查看请求的返回的信息。

25.PNG

  这样,一个登录接口就成功完成了。


作者:程序员馨馨    

来源:http://www.51testing.com/html/00/n-7797300.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   某系统的批量程序和联机程序同时发起交易、操作数据库同一张表时,出现了交易间相互影响导致交易失败。  分析原因为事务A对数据库表操作全表删除时,数据库机制会自动触发产生排他行锁,当行锁数达到“升级到表锁前允许的最大行锁数”时,会自动升级为表锁。但因事务B已对数据库表产生了排他行锁,则事务A自动升级表锁失败。直至事务A消耗掉了数据库“最大锁资源数”,系统会报错“锁资源耗尽”、交易失败。  因此,设计程序时,如涉及多事务操作数据库同一张表,需考虑事务间的关联影响,是否会引发事务冲突。  下文将详细描述和分析该问题。  1 数据库锁  首先介绍一下数据库锁的相关概念。  1.1 行锁、页锁和表锁 ...
            14 14 1749
            分享
          • 12月6日,健康保障科技平台水滴公司发布了2022年第三季度财报。根据财报,水滴公司的总营收为7.722亿元,较2021年第三季度的7.793亿元同比下降0.91%;归属于水滴公司的净利润为1.696亿元,而2021年第三季度的净亏损为4.770亿元。值得一提的是,虽然水滴公司的净利润较2021年第三季度扭亏,但整体业绩情况并不乐观,尤其是其总营收已连续五个季度出现了同比下降的情况,从2021年第三季度至2022年第三季度,水滴公司的总营收分别同比下降9.7%、27.27%、26.57%、25.33%和0.91%。净利润算是较为亮眼的指标之一,根据历年财报,水滴公司在2018年至2021年的净...
            0 0 598
            分享
          • 自动化测试相比手工测试有些难度,但是相比较开发项目而言,自动化测试是很容易学习和入门的。 万事开头难,贵在坚持~!今天接着和大家探讨Python + Selenium2 基于Web 应用程序的自动化测试。 在上一篇讲了搭建Windows环境(传送门),今天接着安装浏览器驱动:用浏览器驱动打开网站,执行测试。 Selenium2 默认支持Firefox (GeckoDriver),除此以外,还支持IE (InternetExplorerDriver)、Opera (OperaDriver) 和 Chrome(ChromeDriver)。对 Sa...
            4 2 3881
            分享
          •   随着互联网技术的日益发展,测试开发工程师要达到“保障质量、提升效率”目标,提升效率更体现在方方面面。作为测试开发工程师,需要掌握基本开发技能,对代码能力也有一定的要求,这也是对项目多一道强有力的保障。  在功能测试遇到BUG时,测试开发工程师需在编译器中调试代码,一边追根溯源,一边监测代码质量。而“追根溯源”这一步最重要的依据就是系统输出日志,日志也是开发人员定位问题的第一检查场所。因此,为提升这部分工作效率,小编想通过ELK搭建一套日志收集、存储、展示的工具,来解决目前存在的日志查看效率低下、缺少可视化界面等问题。  1、什么是ELK  ELK由又Elasticsearch、Logsta...
            15 14 1667
            分享
          • 在我们自动化过程中,能否构建一个健壮和可靠的测试是UI自动化测试能否成功的关键因素之一。然而在自动化过程中试着去执行的时候,常常会出现各种不同的状况,当使用脚本定位元素或者去验证程序的运行状态时,有时候会发现找不到元素,这可能是由于突然的资源受限或者网络延迟或者机器性能等各种因素引起的响应速度太慢导致的,这时候测试报告就会返回测试失败的结果。其实元素是正常加载的,只是加载的时间晚了一点,那么遇到这种情况我们该怎么解决呢?我们需要在测试脚本中引入延时机制,来使脚本的运行速度与程序元素的加载速度匹配。通俗意义上讲,就是我们需要使脚本和程序的响应能够同步。我们有三种等待机制,强制等待、隐式等待和显式...
            0 0 2447
            分享
      • 51testing软件测试圈微信