jmeter模拟多用户并发

在测试时,常遇到需要模拟多用户并发的场景。 例如:模拟100个用户同时登录(需要100个账号,并且同时登录系统)
jmeter具体操作步骤如下:

一、100个真实的用户

1、一个账号模拟100虚拟用户同时登录和100账号同时登录

  • 区别
    (1)1个账号100个人用,同时登录;
    (2)100个人100个账号,同时登录。
  • 相同
    (1)两个都是100人同时登录,具体看项目需求。

2、账号来源

(1)利用“注册”或“创建”账号接口,创建100个用户;
(2)“查询”接口,保存100个账号的账号、密码到一个文件。

3、提取100个账号、密码的文件

(1)jmeter脚本整体布局

线程组(一级)---->请求默认值、请求头、http请求、察看结果树(二级)----->正则表达式、BeanShell 后置处理程序(三级)。

HTTP请求默认值:是存放系统通用ip的位置(协议:http; 服务名称或ip:127.0.0.1);
HTTP信息头管理:接口请求之前需要带的信息,部分接口不带不能运行(Authorization、Content-Type、Accept、User-Agent),例如必须带的token就在信息头中存放;
登录请求:请求方法、请求路径、消息体;正则表达式提取token
创建请求:请求方法、请求路径、消息体;参数化用户名,创建多个用户;
查询账号:请求方法、请求路径、消息体;正则表达式提取用户名、密码;BeanShell 后置处理程序存储返回值到文件中


(2)查询请求中的正则表达式和BeanShell 后置处理程序

  • BeanShell 后置处理程序---->将提取到的字段内容存储在指定文件4.csv中
FileWriter fs=new FileWriter("D://近期//4.csv",true);
BufferedWriter out =new BufferedWriter(fs);

out.write(vars.get("username")+","+vars.get("id"));    //username、id为正则定义名称
out.write(System.getProperty("line.separator"));      //相当于"\n"自动换行

out.close();
fs.close();


线程组线程数设置数目等于提取到的条数,执行脚本得到100个用户的账号和密码

二、100个用户同时登录

1.设置线程组

  • 线程数:并发用户数
  • Ramp-up时间(秒):启动所有线程所需要的时长
    (1)0---->代表同时并发;
    (2)100---->线程数100,时间100秒。代表每隔1s启动一个线程(100/100=1)
  • 循环次数:Loop Count
    (1)默认值是1;
    (2)2---->线程数100,循环次数2。代表启动200个线程;
    (3)勾选“永远”,会一直执行,需要人工停止,一般配合调度器使用。


补充:同步定时器:
(1)作用:阻塞线程,直到指定的线程数量到达后,在一起释放,可以瞬间产生很大的压力;
(2)使用同步定时器时,循环次数要勾选为永远

2.模拟多用户登录

  • 线程组下添加----->CSV 数据文件设置
    将存储用户账号、密码的文件引入,并命名变量名称,在登录时调用。
  • 调用,传参${name}
    注释:本系统账号密码一致,所以只需要调用一列值
/api/v1/oauth/token?username=${name}&password=${name}&scope=all&grant_type=password

3.执行测试,查看结果

100用户同时登录

在这里插入图片描述


最后给大家分享一下我的一些学习资料:

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

关注下方我的微信公众号免费领取!↓ ↓ ↓ ↓ ↓

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一款开源的性能测试工具,可以用于模拟多用户并发登录。下面是使用JMeter模拟100用户并发登录的步骤: 1. 下载和安装JMeter:首先,你需要从JMeter官方网站(https://jmeter.apache.org/)下载并安装JMeter。 2. 创建测试计划:打开JMeter,创建一个新的测试计划。右键点击测试计划,选择"Add" -> "Threads (Users)" -> "Thread Group",然后在右侧的"Number of Threads (users)"字段中输入100,表示要模拟100个并发用户。 3. 添加HTTP请求:在刚创建的线程组下,右键点击选择"Add" -> "Sampler" -> "HTTP Request",然后在右侧的"Server Name or IP"字段中输入登录页面的URL。 4. 添加参数:如果登录页面需要用户名和密码作为参数进行登录,可以在HTTP请求中添加参数。在HTTP请求下,右键点击选择"Add" -> "Config Element" -> "HTTP Request Defaults",然后在右侧的"Parameters"字段中添加用户名和密码参数。 5. 添加断言:为了验证登录是否成功,可以添加断言来检查返回结果。在HTTP请求下,右键点击选择"Add" -> "Assertions" -> "Response Assertion",然后在右侧的"Patterns to Test"字段中输入一个关键字,用于判断登录是否成功。 6. 运行测试计划:保存测试计划,并点击工具栏上的绿色运行按钮来运行测试。JMeter将模拟100个并发用户登录,并记录性能指标和结果。 这是一个简单的示例,你可以根据实际情况进行更复杂的配置和测试。希望对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值