51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1278|回复: 0
打印 上一主题 下一主题

使用 jmeter 进行审批类接口并发测试

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-1-9 01:17:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
背景:

页面上单据审核操作,单据并发操作时会多笔成功提交,出现提交多个支付申请的问题

难点:

数据自动创建
接口请求需要登录后执行
动态获取审核单据的请求参数
最大限度模拟并发操作,降低请求间隔
解决思路:
使用数据抛送接口创建数据
使用jmeter头和cookie管理器,保存登录session
通过查询类接口,获取审核请求所需参数
线程组添加同步定时器,确保请求的同时性
具体实现:
使用数据抛送接口,来进行数据的创建,有以下注意点
随机生成项目单据号,确保数据可创建成功
保存创建数据的项目单据号,方便之后查询接口使用
在实现登录和提交操作时,进行了两种场景模拟
场景a:

使用单用户登录,模拟同一用户多浏览器登录进行并发提交。起初将登录和提交请求放到同一线程
组中,但是发现在短时间内使用同一用户进行单点登录时,会有部分登录报错,故将登录请求单独
放置在一个线程组中,提交请求放在另一线程组,之后将登录线程组中cookie传输到请求线程组中
(此种方式其实是模拟单用户在同一浏览器多开并发)。

由于登录和发送请求设置不同线程组,需要在线程组间传递cookie,具体为需要修改jmeter.properties
文件,设置CookieManager.save.cookies=true,取出登录后cookie参数,并传递到执行审核请求的线
程组

整体结构:

声明参数为全局变量:

拼接cookie信息:

设置同步计时器,确保单据并发提交:




场景b:

在真实场景中,单用户并发操作的较少,同时操作同一单据的场景,更多的是多个不同用户。模拟此种
场景,要做到的是多线程时,每个线程使用不同的用户登录并进行操作。此处的实现方式,是获取线程
编号,然后为线程指定登录账号(如线程1读取账号1,线程2读取账号2),在这种不同用户的场景下,
就需要将登录和提交请求放置在同一线程组中,顺序执行操作即可

整体结构:

获取线程ID并指定账号:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 03:00 , Processed in 0.064907 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表