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

Posted 测试萌萌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对需要登录的接口如何做性能测试?相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

前言

  • 在实际业务场景中,很多业务都需要先登录才能正常使用。
  • 在做接口性能测试的时候,需要测试登录后才能访问的接口肯定是无法避免的。
  • 那么,我们怎么才能完成先登录后发出请求的性能脚本呢?

思路

1.发出登录请求

2.提取响应的认证内容

3.后面的请求引用认证内容

提出问题

做性能测试,是模拟多个虚拟用户实现并发的,那我们的登录接口也需要重复发起吗?

可以类比一个场景

做UI自动化的时候肯定也需要登录的,一般我们会将登录放到全局前置来操作,所以整个测试流程下来只需要登录一次。

关键点

一个用户只需要登录一次,避免重复发起登录请求,造成不必要的资源消耗。

最简单的场景

所有虚拟用户使用同一个用户账户,每次都是先调登录接口,再调登录之后接口请求吗?

如果你的系统,业务上允许一个用户在不退出情况下,反复登录,且没有登录次数限制,这种最理想的情况,你完全可以这么做

做完了,你可能会想,我不用一个账户,100个并发用户数,我就用100个独立账户,

每个用户拥有独立账户

每个虚拟用户都试用一个独立账户,还是先调登录,再调登录之后接口请求,这样可以吗,要怎么做?

在你的线程组里面用上csv数据文件设置读取出用户账户信息,或者用JDBCrequest从数据库获取出用户信息。

然后再在登录接口中用取出的用户信息来登录。

这样,在性能测试时,就会循环使用你用户总量中的用户来发送请求。

这样,理论上是行的通的,但是,现实有些骨感。

因为做性能测试,使用的是高并发,可能存在竞争关系,可能出现后续接口,使用的关联参数取不到值的情况。

从而导致请求报错,而这种错误,不是性能测试服务器响应报错,而是脚本问题导致报错,影响我们对性能结果的判断。

那么,我们就会问,还有没有其他办法呢?

终极好办法

上面也说了一个关键点:一个用户只需要登录一次。

既然我们一个线程就是一个模拟用户,那我们只需要针对每个线程做到只发出一次登录请求,其他接口可以无限次发起。

具体步骤

1.在线程组下添加一个逻辑控制器【仅一次控制器】

2.在该逻辑控制器下添加登录请求

3.登录请求下添加提取器,提取登录响应内容

4.和逻辑控制器平级下添加需要并发的请求

下面是我在做自动化对于技术一些归纳和总结,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

在这里插入图片描述

在这里插入图片描述

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

关注我的微信公众号:【伤心的辣条】免费获取~

我的学习交流群:902061117 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

好文推荐:

35岁之后软件测试工程师靠什么养家?我能继续做测试!

App公共测试用例梳理

Python简单?先来40道基础面试题测试下

阿里二黑叹息:越来越多的年轻人从职场撤退了?

从一名开发人员转做测试的一些感悟

以上是关于针对需要登录的接口如何做性能测试?的主要内容,如果未能解决你的问题,请参考以下文章

性能测试基础概念1

性能测试到底该怎么做?

如何使用loadrunner测试页面性能

【接口/性能】Jmeter-01

做性能测试前,需要准备什么?

单点登录性能测试方案