软件系统定制开发jmeter模拟多用户并发

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

文章目录

一、100个真实的用户

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

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

2、账号来源

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

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

(1)jmeter脚本整体布局

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

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"));      //相当于"\"自动换行out.close();fs.close();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

  • 线程组线程数设置数目等于提取到的条数,执行脚本得到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
  • 1

3.执行测试,查看结果

100用户同时登录

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发