如何使用Jmeter进行登陆后的并发操作

目录

一、脚本组织

二、疑惑

三、总结


记录一下如何使用Jmeter进行并发操作。如有不同意见,欢迎讨论。

一、脚本组织

如图所示 ,登陆和支付请求都加上了定时器,根据查看结果树,可看出所有用户登陆完成后,才进行支付请求的提交,且登陆和支付发起请求的时间几乎是同时(详细的请求信息可以通过 用表格查看结果 进行查看,严格来讲还是做不到同时发起请求,但是时间间隔极小,可以认为同时进行)。

 csv数据文件:需要进行参数化的请求参数,这里有个小坑,就是如果新建txt文本,然后再重命名为csv文件,在编辑csv文件时,如果数值是复制粘贴到csv文件的,且复制的数值较长时,直接粘贴的时候,会变成科学记数法的形式,双击或在前面加英文的逗点,复制的数值最后几位会变成0000,这个问题不知道怎么解决。最正确的方式就是直接用txt文本编辑参数,参数用英文的逗号间隔,缺点是不太好编辑,效率和速度没那么快。

HTTP cookie管理器:这个配置元件要放在线程组下,不能放在HTTP请求下!我的看有些文章是放在HTTP请求下的,但是我试过,请求失败提示没有登陆。cookie管理器直接添加就行了,不用做什么配置。

HTTP信息头管理器:主要添加Content-Type:application/json;charset=UTF-8

下面我们看一下用表格查看结果:

如图所示,加上同步定时器后,几乎可以认为是同一时间发起的请求,不加同步定时器时,开始时间差距还是很明显的。这个可以自己尝试一下。

二、疑惑

可能有人跟我一样想过这样一个问题,这样设置,会不会登陆之后,后面所有请求都是使用同一个cookie发起的请求呢,后续的业务请求是否都是使用第一个或是某一个登陆用户的cookie发起的请求呢?之前也有想过好像也有人说过可以把登陆后cookie或session保存到一个文件,然后再后面的请求添加cookie管理器,cookie管理器取保存好的cookie或session。我也这么试过,但是一直调不通,可能是方法不对吧。

下面看看按当前的脚本设置,后续的请求所使用的cookie是否相同:

第一个登陆的cookie

 第二个登陆的cookie

 第三个登陆的cookie

下面汇总一下

1JSESSIONID=DC7B28B4F4F9E68C489F64EEECEE6DA9
2JSESSIONID=3FACDD1EC0836E41B2D3ABBD2C0E41D6
3JSESSIONID=D6AB05E70D821F4AA0F03C9FEA6167C7
4JSESSIONID=59C62C414C8885CE0EB471AB6FF5D8B1
5JSESSIONID=A92A2F83BA2464CDCD2663C49302A533
6JSESSIONID=EA42EDB202E68D51C742D61FB2248002

 现在看看支付请求所携带的cookie是否都是同一个

第一个请求

 第二个请求

第三个请求

第四个请求

 

后面两个请求就不贴出来了。

从上面的结果可以看出:所有的请求使用的cookie都不相同!

三、总结

个人认为以上的结果是真正意义上的并发!

如果登陆了100个用户,但后续的请求都是使用同一个cookie,这并不能算是并发,起码与实际业务场景无法对应。

如果请求的结果是 登陆-支付-登陆-支付-登陆-支付……,这明显也不是并发,来一个发一个,来一个发一个,怎么能算并发呢!

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值