扫码阅读
手机扫码阅读
i++需要多少QPS才能测出BUG
349 2024-04-03
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:i++需要多少QPS才能测出BUG
文章来源:
FunTester
扫码关注公众号
文章摘要
本文讨论了通过并发压测发现线程不安全BUG的问题,并尝试回答“线程不安全需要多少QPS压测才能发现BUG”的问题。作者指出,线程安全问题是并发缺陷的主要来源,并通过一系列文章分享Java线程安全问题。
用例设计思路
作者首先尝试在同一个JVM中测试i++的线程不安全性,但由于这种方式与实际接口测试差异较大,因此改为在一个简单的Springboot项目中通过接口实现。提出能否测出BUG并不是绝对的,而是一个概率问题,将通过发现比例值来表示测出BUG的难易程度。
服务端设计
作者弃用了moco_funtester框架,转而使用Springboot项目,并分享了controller部分的代码。代码模拟的接口平均响应时间为10ms,并执行了一个非线程安全的操作。
测试用例
在测试中,作者没有使用正规的测试框架,而是采用了异步线程池和粗略的sleep方法来控制QPS。测试用例包括了线程模型和QPS模型两种,分别模拟固定线程数请求接口和控制QPS的请求。
测试结果
线程模型和QPS模型的测试结果显示了设计QPS、实际QPS、误差数量和误差比例。结果表明,随着QPS的增加,误差数量和误差比例也随之增加。这些数据对于理解在什么程度的压力下可能揭露出潜在的线程不安全缺陷提供了参考。
作者通过测试,希望能够为发现潜在缺陷所需的压力水平提供参考,并在文末列举了相关的专题和社群资源。
想要了解更多内容?
查看原文:i++需要多少QPS才能测出BUG
文章来源:
FunTester
扫码关注公众号
FunTester的其他文章
CompletableFuture实现异步转同步
在很早之前的文章服务端性能优化之异步查询转同步?
测试写代码的好处
在软件开发过程中,测试人员负责确保软件产品的质?
Java 序列化10倍性能优化对比测试
今天分享 Java 对象序列化的不同方法,并对不同序列化方式的性能进行基准测试。
应对自动化测试9大挑战
本文讨论了最常遇到的关键挑战,以及如何帮助简单地或自动地应对这些挑战。
基于代码的自动化和无代码自动化
在之前的文章AI如何影响测试行业中提到了随着更先进的技术进入由AI/ML支持的连续测试领域,组织尤其是测试从业人员常常正在争论哪种更好,是通过编程语言完成自动化测试还要采用无代码测试解决方案呢?
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线