• 0
  • 0
分享
  • jmeter模拟多用户并发——软件测试圈
  • TIMI 2022-07-25 11:10:12 字数 1415 阅读 1386 收藏 0

一、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 后置处理程序存储返回值到文件中。

1.png

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

  • 正则表达提取----->获取想要的字段内容

2.png

  • 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();

3.png

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

4.png

二、100个用户同时登录

1.设置线程组

  • 线程数:并发用户数

  • Ramp-up时间(秒):启动所有线程所需要的时长

(1)0---->代表同时并发;

(2)100---->线程数100,时间100秒。代表每隔1s启动一个线程(100/100=1)

  • 循环次数:Loop Count

(1)默认值是1;

(2)2---->线程数100,循环次数2。代表启动200个线程;

(3)勾选“永远”,会一直执行,需要人工停止,一般配合调度器使用。

5.png

2.模拟多用户登录

  • 线程组下添加----->CSV 数据文件设置

将存储用户账号、密码的文件引入,并命名变量名称,在登录时调用。

6.png

  • 调用,传参${name}

注释:本系统账号密码一致,所以只需要调用一列值

/api/v1/oauth/token?username=${name}&password=${name}&scope=all&grant_type=password

7.png

3.执行测试,查看结果

100用户同时登录

8.png


作者:三千花灯

原文链接:https://blog.csdn.net/belief_009/article/details/123731897

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •  Apifox 自动化测试模块新升级,在流程测试原有功能上新增了测试步骤循环、判断、等待时间的流程控制条件,以及测试步骤分组管理等能力。当业务需要多种判断时,流程控制可用于控制测试步骤的复杂执行顺序,更能模拟用户真实的使用场景,提升测试人员对复杂测试场景的工作效率。循环当测试步骤需要重复执行时,可以通过设置固定数量的有限循环来快速实现。同时支持设置中止条件或遇错处理的逻辑判断,以保证循环能按需运行。注意:右侧运行参数设置模块也有循环功能,但该功能是针对的是整个测试用例。场景实例宠物店需要在当天营业结束后,对今日售出的每个宠物进行信息查询并将「在售」状态变更为「已售出」。假设今日售出 ...
            0 0 1334
            分享
          •   在过去几年中,随着敏捷实践的应用不断增加,质量保证与开发人员之间的关系也在不断发展。这两个角色之间的区分变得越来越模糊,这就这两种角色演变的一个很好的例子。  传统上,质量检查工程师的角色与职位,测试和验证代码质量更加一致。质量保证人员可以采用瀑布式方法进行工作,可以将无法部署的代码打回给开发人员,或者对代码进行了测试和验证通过,版本会发布到生产中。测试和验证不是开发人员关注的流程,交接仅仅是一种规范。  敏捷为开发人员和质量保证专业人员带来了新的思维定势,并承担了许多新的责任,这不仅有利于软件的交付,而且使我们的工作更加出色。  这是成为QA专业人士进入敏捷组织时的期望。  Dev-QA...
            0 0 1763
            分享
          • 1. JMeter是什么?         Apache JMeter 是Apache组织的开放源代码项目,是一个纯Java桌面应用,用于压力测试和性能测试。它最初被设计用于Web应用测试但后来扩展到其它测试领域。可以到http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi下载源代码和查看相关文档。 2. 用它能做什么?         A...
            0 0 1705
            分享
          • 一·准备环境需要一台 Windows Server 2016,XAMPP,GVIM和以下靶机安装包配置电脑IP安装XAMPP选择英文等待安装完成配置为以管理员权限启动 XAMPPXAMPP控制面板配置默认的文本编辑器在浏览器登录 phpMyAdmin默认IP127.0.0.1选择“账户”→“root@localhost”→“修改权限”修改“root@localhost”密码由于修改了 root 密码,phpMyAdmin 使用 root@localhost 连 接数据库,还需要修改 phpMyAdmin 的配置文件在 XAMPP 控制面板选择编辑 phpMyAdmin(config.inc.p...
            0 0 1557
            分享
          •   微信 Andoid 6.5.10 开始,微信官方提供了 Trace 导出工具,开发者可以在开发者工具 Trace Panel 中使用该功能。  1、安装 adb 工具  安装 brew:  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"   安装完成验证: brew --version  安装 adb: brew cask install android-platform-tools  运行ad...
            0 0 2091
            分享
      • 51testing软件测试圈微信