先登录的接口做性能测试?如何做?超强总结...


前言

我们的实际工作中,需要先登录,然后才能做某些操作的现象非常常见。
但是,对于一个刚刚学会用jmeter做性能测试的人来说,这可能是自己的性能测试之路的第一个坎。

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

首先,从这个诉求中,我们至少能提取出两个重要信息。
需要登录;登录后才能做。

以为着登录之后的接口,都有登录认证,判断是否登录,登录认证未通过,那么接口请求就会失败。

那么好了,问题来了。我做性能测试,是需要用多个虚拟用户来实现并发的。

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

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

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

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

当然可以,做法也非常简单,就是在你的线程组里面用上“csv数据文件设置”读取出用户账户信息,或者用JDBCrequest从数据库获取出用户信息,然后再在登录接口中用取出的用户信息来登录。

这样,在性能测试时,就会循环使用你用户总量中的用户来发送请求,这样,理论上是行的通的,但是,现实有些骨干,因为我们做性能测试,使用的是高并发,可能存在竞争关系,就可能出现后续接口,使用的关联参数可能取不到值,从而导致请求报错,而这种错误,不是性能测试服务器响应报错,而是脚本问题导致报错,影响我们对性能结果的判断。

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

场景三:
用一定量的用户登录一次,登录之后,再去调其他接口,是不是也可以呢?下面,我就重点讲讲这种做法。

请添加图片描述

是不是,看了上面的动画,还是没有明白?

解释一下:
我们在一个普通的线程组下面,新增一个逻辑控制器中的‘仅一次控制器’,在这个控制器下面,新增一个 login登录接口的请求;

再在仅一次逻辑控制器平级的位置添加如 ‘重置密码’‘修改密码’等接口(模拟你的需要登录之后才能调用的接口),因为接口需要关联,所以,在登录接口下添加一个后置处理器(json提取器),提取出参数,最为后续接口的输入参数,实现接口关联。

从上面,是不是发现,线程数设置5,登录接口总共调用5次,而其他接口,在整个测试运行过程中,一直运行。

请添加图片描述

从最后的这个聚合报告,我们也可以看出,login接口,总共调用5次,重置密码接口分别对5个用户进行了并发请求(从后缀可以看出),只是需要明确,并发请求,并不代表整个过程每个用户的并发总次数相等(从样本总数不同可以看出)。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有坚持不懈的努力,才能铸就辉煌的未来;只有勇往直前的奋斗,才能实现人生的突破。相信自己的能力,追逐梦想的脚步永不停歇,让每一次努力都成为向成功迈进的阶梯,不负春风,不畏艰险!

只有拥有坚定的信念,才能在困难面前勇往直前;只有付出不懈的努力,才能让梦想变为现实。相信自己,不断挑战,奋斗不止,你将创造出属于自己的辉煌人生!

只有拼尽全力,才能看到自己的无限潜力;只有奋斗不息,才能迎接辉煌的未来;只有坚持不懈,才能超越一切困难。相信自己,努力向前,收获属于你的辉煌!

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值