针对需要登录的接口如何做性能测试?

发表于:2021-6-22 09:38

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

 作者:小菠萝测试笔记    来源:博客园

  前言
  · 在实际业务场景中,很多业务都需要先登录才能正常使用。
  · 在做接口性能测试的时候,需要测试登录后才能访问的接口肯定是无法避免的。
  · 那么,我们怎么才能完成先登录后发出请求的性能脚本呢?
  思路
  1.发出登录请求
  2.提取响应的认证内容
  3.后面的请求引用认证内容
  提出问题
  做性能测试,是模拟多个虚拟用户实现并发的,那我们的登录接口也需要重复发起吗?
  可以类比一个场景
  做UI自动化的时候肯定也需要登录的,一般我们会将登录放到全局前置来操作,所以整个测试流程下来只需要登录一次。
  关键点
  一个用户只需要登录一次,避免重复发起登录请求,造成不必要的资源消耗。
  最简单的场景
  所有虚拟用户使用同一个用户账户,每次都是先调登录接口,再调登录之后接口请求吗?
  如果你的系统,业务上允许一个用户在不退出情况下,反复登录,且没有登录次数限制,这种最理想的情况,你完全可以这么做
  做完了,你可能会想,我不用一个账户,100个并发用户数,我就用100个独立账户,
  每个用户拥有独立账户
  每个虚拟用户都试用一个独立账户,还是先调登录,再调登录之后接口请求,这样可以吗,要怎么做?
  在你的线程组里面用上csv数据文件设置读取出用户账户信息,或者用JDBCrequest从数据库获取出用户信息。
  然后再在登录接口中用取出的用户信息来登录。
  这样,在性能测试时,就会循环使用你用户总量中的用户来发送请求。
  这样,理论上是行的通的,但是,现实有些骨感。
  因为做性能测试,使用的是高并发,可能存在竞争关系,可能出现后续接口,使用的关联参数取不到值的情况。
  从而导致请求报错,而这种错误,不是性能测试服务器响应报错,而是脚本问题导致报错,影响我们对性能结果的判断。
  那么,我们就会问,还有没有其他办法呢?
  终极好办法
  上面也说了一个关键点:一个用户只需要登录一次。
  既然我们一个线程就是一个模拟用户,那我们只需要针对每个线程做到只发出一次登录请求,其他接口可以无限次发起。
  具体步骤
  1.在线程组下添加一个逻辑控制器【仅一次控制器】
  2.在该逻辑控制器下添加登录请求
  3.登录请求下添加提取器,提取登录响应内容
  4.和逻辑控制器平级下添加需要并发的请求

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号