应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

i需要多少QPS才能测出BUG

  前段时间我关注了一篇文章,分享如果使用并发压测发现BUG。突然想起一个话题:
  线程不安全需要多少QPS压测才能发现BUG?
  我接触到的并发缺陷绝大部分是因为线程安全问题导致的,还有一些数据库锁的问题(这个不擅长)这里就不分享了。
  关于Java的一些线程安全的问题,可以参考旧文:操作的原子性与线程安全20190716快看,i真的不安全20190719原子操作组合与线程安全20190722线程安全集合类中的对象是安全的么?20200224Lambda表达式在线程安全Map中应用20200601
  下面我们来聊聊上面提到的问题,因为这涉及到不同类型的BUG需要多少QPS才能测出来BUG,今天来分享一下最简单的线程不安全操作i需要多少QPS才能测出来BUG。用例设计思路
  首先,我使用的同一个JVM来测试i,发现极容易出现BUG,后来放弃了这种方式。经过思考发现如果放在一个JVM里面,本身已经创建了很多线程去执行i,这种跟实际接口测试差异比我想象的大很多。其次,我创建了一个简单的Springboot项目,写一个简单的接口来实现。
  总提测下来,上面的问题需要修正,因为能不能测出来不是一个Boolean值,而是一个概率值,后面我也会用发现比例值来表示是测出BUG的难易程度。服务端设计
  之前一直用mocofuntester框架来构建服务端不行了,无法动态接口返回。所以只能简单弄一个Springboot项目。其他的就不分享了,只分享一下controller的部分。这里模拟盘了一个接口平均响应时间10ms,然后执行一个非线程安全的操作。inti;GetMapping(valuefuntest)publicResulttest1(){Thread。sleep(SourceCode。getRandomInt(20));returnResult。success(i);}GetMapping(valuegeti)publicResulttest(){returnResult。success(i);}GetMapping(valuezero)publicResultte2st(){i0;returnResult。success(i);}测试用例
  这里没有使用正经的测试框架,只用了异步线程池和粗略的sleep休眠的方法控制QPS,所以这里会有一个实际QPS统计。默认以固定QPS执行20s。先重置,后执行,最后获取结果。取消所有日志打印,避免误差统计误差数量和误差比
  测试用例模拟盘两个模型:线程模型和QPS模型。线程模型用例publicstaticvoidmain(String〔〕args){deftest{getHttpResponse(getHttpGet(http:localhost:8080userfuntest))}defget{getHttpResponse(getHttpGet(http:localhost:8080usergeti))}definit{getHttpResponse(getHttpGet(http:localhost:8080userzero))}AtomicIntegerindexnewAtomicInteger()FunHttp。LOGKEYfalsedeft1000defsize1setPoolMax(500)init()fun{output(DEFAULTSTRING)}sleep(1。0)defstartTime。getTimeStamp()size。times{fun{t。times{test()index。getAndIncrement()}}}ThreadPoolUtil。waitFunIdle()defvalueget()。getIntValue(data)defendTime。getTimeStamp()output(当前QPS:{index(endstart)1000})output(index。get(),value)output(getPercent(index。get(),index。get()value))}QPS模型用例publicstaticvoidmain(String〔〕args){deftest{getHttpResponse(getHttpGet(http:localhost:8080userfuntest))}defget{getHttpResponse(getHttpGet(http:localhost:8080usergeti))}definit{getHttpResponse(getHttpGet(http:localhost:8080userzero))}AtomicIntegerindexnewAtomicInteger()FunHttp。LOGKEYfalsedefqps100deftqps10setPoolMax(1000)init()defdecimal1000000000qpsfun{output(decimal)}sleep(1。0)defstartTime。getTimeStamp()t。times{sleepNano(decimalaslong)fun{test()index。getAndIncrement()}}ThreadPoolUtil。waitFunIdle()defvalueget()。getIntValue(data)defendTime。getTimeStamp()output(当前QPS:{index(endstart)1000})output(index。get(),value)output(getPercent(index。get(),index。get()value))}测试结果线程模型
  线程模型模仿的固定线程数去不断请求接口,这里由于接口平均响应时间10ms,每个线程执行次数设计为2000次,差不多20s执行完。
  设计QPS实际QPS误差数量误差比(百分比)109。6002018。7005042001008720。120017490。22300280180。3400285230。2850041720。02QPS模型
  由于对实际结果测试并不能很好预期,这里就先从较小的QPS开始了。全程没有触发性能瓶颈,误差部分,测5次,取误差最大的一次记录。这里模拟的线程模型的
  线程数实际QPS误差数量误差比(百分比)17600214410。054305330。4186171110。69129272240。93
  经过上面测试,对于需要多少压力才能发现可能存在的缺陷,希望本文能投提供参考。

市场营销策略有哪些(市场营销策略有哪些教程)市场营销策略有哪些(市场营销策略有哪些教程)市场营销策略有哪些?十种有效的市场营销策略一个企业想要获得成功的发展,需要努力提升企业的市场份额,而想要提高企业市场份额……机械设计基础课程设计(如何做机械设计课程设计)机械设计基础课程设计(如何做机械设计课程设计)机械装置总体设计今天和大家演示一遍机械设计课程设计的总体思路,老同学可以复习一下,新同学可以熟悉机械设计过程,掌握机械设计的……快手宏楠怎么了(网红宏楠触碰高压电不幸离世)快手宏楠怎么了(网红宏楠触碰高压电不幸离世)近日,著名网红段子手宏楠,因为在钓鱼的时候不幸误触高压线,撒手人寰。其实,钓鱼人都会避开高压线,也都懂得一些最基本的钓鱼……房屋常识公积金贷款买房什么时候到帐公积金贷款买房交证开始后多很多朋友们现在对于房产方面的知识了解的偏少,不管是从购房的角度,或者是装修房子的角度,我们都需要对房产方面的一些知识进行了解,所以小编今天就在网上搜集了一些房产方面相关的知识来……房屋常识请问公积金贷款需要什么多久才能放贷很多朋友们现在对于房产方面的知识了解的偏少,不管是从购房的角度,或者是装修房子的角度,我们都需要对房产方面的一些知识进行了解,所以小编今天就在网上搜集了一些房产方面相关的知识来……台媒关注大陆百强城市前10名长三角占4席2022年中国百强城市排行榜长三角城市在十强中占4席。(图片来自于台媒)华夏经纬网7月5日讯:据台湾旺报报道,大陆华顿经济研究院近日发布2022年中国百强城市排行榜,北京……刑事辩护全覆盖试点如何推进?专家应拓展至侦查领域11月6日,中国政法大学国家法律援助研究院与北京尚权律师事务所联合主办的第十六届尚权刑事辩护论坛举行。本次论坛上,多位与会专家学者围绕推进刑事辩护全覆盖、律师权益保障等话题展开……房屋常识公积金贷款有房产证吗公积金贷款买房为什么不给房产证很多朋友们现在对于房产方面的知识了解的偏少,不管是从购房的角度,或者是装修房子的角度,我们都需要对房产方面的一些知识进行了解,所以小编今天就在网上搜集了一些房产方面相关的知识来……房屋常识公积金贷款购房需要个税完税凭证吗很多朋友们现在对于房产方面的知识了解的偏少,不管是从购房的角度,或者是装修房子的角度,我们都需要对房产方面的一些知识进行了解,所以小编今天就在网上搜集了一些房产方面相关的知识来……为什么有人说成都是一座来了就不想走的城市,到底好在哪里?为什么说成都是一个来了不想走的地方?看到题主的提问,我自告奋勇的来说说自己的看法吧,不一定正确,仅作参考吧!我是一个土生土长在四川的成都人,当没有离开成都之前,不知……现金日记账如何登记(资深出纳教你3步填写现金)现金日记账如何登记(资深出纳教你3步填写现金)很多会计人员都是从出纳做起的,刚入行做出纳的时候,相信很多人都被日记账为难过,而登记日记账又是出纳最最基础的技能。今天给大家……小学优秀老师,所带孩子无差生,直言语文高分不难,只需坚持3点闺蜜是个小学语文老师,教了十几年的语文,最近几年每年都被评为特级优秀教师,她带出来的学生语文成绩都非常好,在我们这非常有名,很多家长孩子要上小学都找关系要送她带的班上。说……
巴金三部曲(巴金人间三部曲)巴金三部曲(巴金人间三部曲)《〈第四病室〉手稿珍藏本》为读者提供了接近巴金心路历程的罕见文献。(均华文出版社供图)今年是一代文学巨匠巴金先生诞辰115周年,《〈第四……巴金三部曲(巴金)激流三部曲《家》、《春》、《秋》,爱情三部曲《雾》、《雨》、《电》,《憩园》、《第四病室》、《寒夜》,五卷《随想录》(包括《随想录》、《探索集》、《真话集》、《病中集》、《无题……巴金的爱情三部曲(巴金爱情三部曲是什么)巴金的爱情三部曲(巴金爱情三部曲是什么)巴金爱情三部曲是《雾》、《雨》、《电》。《爱情三部曲》是1988年6月人民出版社出版的图书,是巴金创作的长篇小说系列之一,主题是探……洋葱歌(洋葱哥被曝同时交往6女友后道歉)洋葱歌(洋葱哥被曝同时交往6女友后道歉)洋葱哥董康潮这一次是洗不干净了,他原本就是球场渣男人设,专门以单挑女生、噩耗女生为噱头的篮球网红,他的身高只有1。72米很矮,而且……印度公布航天计划路线图,明年首次载人航天,想象中的宏伟实现难印度航天远景规划,明年和2024年都是很重要的节点,包括:首次载人航天、对月球南北极探测、火星和金星的探测,甚至发射航天器出太阳系像旅行者号探测器那样对外星系探险。以印度……滑铁卢是什么意思(滑铁卢)滑铁卢是什么意思(滑铁卢)滑铁卢是比利时的一个小镇。1815年6月18日,拿破伦的军队在这里与以英国为首的联军激战,最后全军覆没,被迫再度宣布退位,最后流放到南大西洋的圣……女人学会舍得(女人做到三个舍得)女人学会舍得(女人做到三个舍得)想掌握家中的财政大权吗?这个问题想必对于每一个已婚女人来说,都不陌生。即便是女性越来越独立,即便无数人提倡婚后AA,其实仍然有大部分女人认……科幻变为现实,科学家推出寿命计算器,准确率高达98如果某款软件,可以让你知道自己的生命还剩多少时间,你会去使用吗?就像一部名为《倒忌时》的影片中,只要人们下载使用一个名为CountDown的App,就能够看到自己的生命还剩下多……奥陌陌的出现,给高智商的科学家们出难题了?它的身份,又变了又变了,奥陌陌是外星产物?能加速,也能减速,让科学家沸腾奥陌陌这个名词对于天文爱好者来说,这是一个重要的发现,它是人类已知的第一进入太阳系的神秘物体。科学家们关于奥陌陌来……我们真的存在吗?人是怎么存在的?我们到底是什么?我们真的存在吗?我听过的大多数理论都像你知道你不能证明你的存在,所以我们不存在。许多人都曾有过这样的想法,你们都生活在我的世界里,你……周二精彩英语演讲TED为什么二十岁之后的十年至关重要FOLLOWUS轻松学英语一个有用有趣有温度的英语干货分享平台鲸小爱英语精彩英语演讲栏目为什么20岁之后的十年至关重要资深心理咨询师MegJay为20几……谁说Reno6星黛紫是花瓶?真实体验告诉你,什么叫颜艺俱佳随着时间的流逝,暑假也进入倒计时阶段,最近后台也有不少小姐姐咨询,OPPOReno6是否值得购买?实际上,她们主要看中了OPPOReno6的颜值和影像功能,但并不知道具体表现到……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网