jmeter多用户并发登录教程

发布于:2024-06-04 ⋅ 阅读:(140) ⋅ 点赞:(0)
有时候为了模拟更真实的场景,在项目中需要多用户登录操作,大致参考如下

jmx脚本:百度网盘链接
提取码:0000

一: 单用户登录

先使用1个用户登录(先把1个请求调试通过)

  1. 发送一个登录请求,线程数:1,时间:1,循环次数:1
    在这里插入图片描述
  2. 启动后查看返回结果,查看返回登录成功后 OK
    (为什么请求1次返回3个结果呢,这个项目对登录接口做了重定向2次,既先使用get自动请求网站1次获取sessionid)
    再通过HTTP Cookie管理器自动获取到sessionid进行登录

在这里插入图片描述

  1. 设置多个线程数进行登录(线程组设置-线程数:10,时间:1,循环次数:1),给登录加一个断言
    在这里插入图片描述
    在这里插入图片描述

  2. 执行后查看结果,有的请求会被挤下线,被挤出来的没有对服务器造成任何压力
    在这里插入图片描述
    这里涉及到多点登录限制------浅谈一下多点登录和单点登录的区别
    多点登录:同一账号可以在不同终端同时登录,同时收发信息
    多点登录原则:多点登录限制(禁止用户多点在线):一个端同一个账号只能登录一个实例,例如一个账号在网站端登录后,后一个人使用这个账号在网站端登录,前一个人会被挤下去并会收到通知“你已在别处登录…”
    单点登录:指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的系统。简而言之,多个系统,统一登陆。
    最简单的单点登录实现方式,用cookie作为媒介存放用户凭证。 用户登录系统之后,会返回一个加密的cookie,当用户访问子应用的时候会带上这个cookie,授权以解密cookie并进行校验,校验通过后即可登录当前用户。
    依豆瓣网站电影Top250为例:https://movie.douban.com/top250?start=
    豆瓣旗下有:读书、音乐、同城、阅读、FM等等
    简单理解:就是如果登录了豆瓣,如果还需要访问子应用,就不需要再次使用账号了,可以直接访问

优化,单用户请求过多会被挤下线,而且和想要的测试也不一样,帐号提前在数据库创建,然后使用CSV元件引如

二、多用户登录实现1
  1. 在当前线程组下添加CSV数据文件设置,文件名:你准备的txt帐号和密码文件,文件编码UTF-8,其他可默认
    在这里插入图片描述
  2. 登录接口引入CSV变量,然后线程组内的设置不变,继续执行
    在这里插入图片描述
  3. 查看多用户请求结果,从断言上看没有报错,就是全部10个帐号都登录成功了
    在这里插入图片描述
三、多用户登录实现2
  1. 既然项目是先获取sessionid的,那么先请求一次,添加1个登录前请求(主要是获取返回的sessionid)
    在这里插入图片描述

  2. 给登录前接口加一个正则表达式(主要是来提取sessionid)
    在这里插入图片描述

  3. 给登录接口添加一个HTTP信息头管理器,添加一个cookie参数
    在这里插入图片描述

  4. 给登录接口添加断言,和上面一致
    在这里插入图片描述

  5. 先跑1个请求,线程组和上面设置一样,返回登录成功的数据
    在这里插入图片描述
    跑多个账户登录

  6. 添加一个CSV,设置和上面的一致
    在这里插入图片描述

  7. 更改线程组:线程数10,时间1s,循环1
    在这里插入图片描述

  8. 设置登录参数变量
    在这里插入图片描述

  9. 启动查看结果,从01帐号到10帐号登录成功
    在这里插入图片描述

扩展: 模拟真实场景(1个用户可以搜索N次),增加一个搜索请求
  1. 添加一个仅1次控制器,把登录前和登录接口加入到仅一次控制器
    在这里插入图片描述
  2. 线程组设置: 线程数:2 时间:1s 循环:永远, 持续时间:2s
    在这里插入图片描述
  3. 搜索请求添加一个信息头管理器
    在这里插入图片描述
  4. 发送请求,查看结果(除了登录前和登录接口请求3次意外,其他的都是搜索请求,有可能是用户1或用户2或用户3的搜索了很多次)
    在这里插入图片描述

网站公告

今日签到

点亮在社区的每一天
去签到