美文网首页
Jmeter复现并发请求

Jmeter复现并发请求

作者: 不二不二熊 | 来源:发表于2020-07-28 20:08 被阅读0次

在上周五的接口压力测试中,编写的一个查询课程详情出现了失败,查看后台日志发现是MybatisPlus报错,大致错误是:selectOne but found 2。老司机一看就明白是数据库包含有多条重复数据。

经过对数据库有针对性的排查,脏数据很快被清理出来了。但是问题来了,究竟是什么原因造成脏数据的呢?我仔细排查了接口的相关代码,大致逻辑为:首先从记录表查询课程记录,如果不存在,则插入,否则就更新。相关伪代码如下:

//查询是否存在课程记录
RecordDo recordDo = recordMapper.selectOne(...);
//如果记录不存在
if(recordDo!=null){
   //插入操作
   insert();
}
else{
   //更新操作
   updateById();
}

我相信很多同学在业务中都写过类似的代码,这是一个十分常见的case。在日常使用过程中也按照预期的运行了,然而bug总是悄悄的到来,不知不觉数据库中就莫名多了一条脏数据。最开始的时候以为是之前代码没有完善,导致脏数据没有清理,然而同样的情况在后期再次出现了。凭借直觉应该是并发造成的,但是手动模拟并发比较麻烦,而常用的接口测试工具postMan似乎也是串行,于是,jmeter出现在了我的视线中。

jmeter是依据Java编写的,而最新的要求JDK1.8。这条要求相信对于大家都是十分easy。

主体界面 添加并发线程/循环次数 设置http请求 添加分析报告,选项1&2

最后启动最上方绿色三角即可进行测试。

很快,bug无处遁形,我能清晰的观看到在简单的并发操作下,同时插入了两条一样的数据。当然,如果解决并发下重复提交的问题,这就涉及到分布式锁了,这并不在本章节的范围之类了。本次仅仅是通过jmeter模拟并发请求来复现bug,如果你的项目也需要用到并发测试,那么我强烈推荐你使用jmeter,简单实用。

相关文章

  • Jmeter复现并发请求

    在上周五的接口压力测试中,编写的一个查询课程详情出现了失败,查看后台日志发现是MybatisPlus报错,大致错误...

  • 二、并发编程与线程安全

    1、并发模拟 Postman:Http请求模拟工具 Apache附带的工具 JMeter 2、并发的测试代码 3、...

  • Jmeter post请求 Body Data的JSON参数设置

    想复现solr的性能问题,使用jmeter压测solr的update接口,但是post请求的参数老是提示不正确,花...

  • 深入理解Jmeter常用定时器

    前言 jmeter并发测试每个请求之间是没有延时的,但实际工作有时候需要增加固定时间来测试,那么可以Jmeter定...

  • jmeter http请求界面解释

    jmeter http请求界面解释 JMeter Http请求界面

  • jmeter case编写

    一、jmeter接口case编写(发送get、post请求,检查点) 1)新建线程组(并设置线程以及并发策略) 2...

  • 常用的性能指标简介

    并发用户数模拟用户,在同一个时间发起请求的人的数量jmeter中,模拟这个并发用户: 线程不同的性能测试工具,模拟...

  • JMeter学习之一

    jmeter.bat 与 jmeter server.bat 的区别 当并发量大时采用分布式并发时启动。 在测试计...

  • java.net.NoRouteToHostException:

    由于项目需要,用jmeter做了一下压测总共发送20W次的请求,设置的并发为1k。然而进行到最后发现后面的请求几乎...

  • Linux下进行JMeter分布式压力测试

    在使用JMeter进行压力测试时候,往往因为运行JMeter机器本身性能问题导致实际并发量并不大。为了达到高并发量...

网友评论

      本文标题:Jmeter复现并发请求

      本文链接:https://www.haomeiwen.com/subject/zfsqrktx.html