Jmeter压测过程中需要多用户token使用问题

背景

在测试的时候,经常会有模拟用户登录,拿到用户 token 后再去请求接口的场景。

这个模拟用户登录就会分为两种,一种是单用户,另一种是多用户。

日常自动化测试的时候可能一个用户对应 n 个用例就可以满足大多数场景;

如果是在压力测试的场景下面,可能就会略显单调,也无法满足一些真实业务场景。

对于单用户的情况下,和我们常规的多接口有依赖的测试其实没什么太大的差别。

所以这里主要讲的是多用户产生多个 token 的情况。

场景接口

一个是登录拿 token,一个是有 token 才能请求

  1. 登录接口处理
    登录接口属于预请求,所以我们一般会选择把它放在 setUp 线程组里面
    首先要先准备好多个用户可进行登录,这里需要用到csv数据文件配置进行多用户登录
    在这里插入图片描述

在这里插入图片描述
然后是把登录的 HTTP 请求配置好做好登录参数化
在这里插入图片描述
由于后面要用到 token,所以要先把 token 提取出来,这里用的是json提取器
在这里插入图片描述
由于我们会有多个用户进行登录,但是这一个提取操作每次都会把 token 赋值到 token这个变量上面,是覆盖的操作。

换句话就是说,每登录一个用户,这个 token 的值就会是最后一个登录的用户的 token,。

换个思路,每次它会覆盖,那么把这些 token 存到一个地方,然后业务接口去这个地方取就可以了。

如果没有用户登录这一步,给的直接是 token,那么我们也是直接把这个 token 放到 csv 文件里面,然后让 jmeter 去循环使用里面的 token。

那么要做的东西其实就很确定了,就是在提取到 token 后,把这个 token 写到一个 csv 文件里面。

要想做到这一步,需要在登录接口后面加一个后置的处理。

在这里插入图片描述

String p1 = System.getProperty("user.dir");

String p2 = System.getProperty("file.separator");

String p3 = "user_token.csv";

String path = p1 + p2 + p3;

FileWriter fileWriter = new FileWriter(new File(path), true);

BufferedWriter writer = new BufferedWriter(fileWriter);

writer.append(vars.get("token")+"\n");

writer.close();

把用户名和提取到的 token 写进到 csv 文件里面,这个文件在的位置是 jmeter 下的bin目录。

这里是对文件路径做了处理,可以适配所有操作系统的。不会出现说指定了一个 windows 系统的路径,然后放到 linux 系统下面就跑不了了。

还有最重要的一个是,要修改 setUp 线程组的属性,把循环次数改成 100 。因为前面的 csv 文件里面有 100个用户,这样它才会触发100次登录。(具体根据自己需要的用户量设置,如果自己的登录用户有50个则这里的线程数可设置为50个,跑出来就有50个token)
在这里插入图片描述
运行setUp线程后就能在jmeter目录中看到user_token.csv文件
在这里插入图片描述

在这里插入图片描述
拿到这100个token后即可运行对应需要多用户并发的接口
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CesareCheung

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值