简单看了描述,我这里总结及猜测一下,应该 8 9 不离十。
楼主觉得奇怪的地方:
为什么相同的接口实现,仅仅是加了 200ms 的延时,为什么总 TPS 就涨不上去了?
为此,你先搞压力端,排除了压力端的原因。
你接着分析服务器端,发现 CPU,内存,网络啥问题也没有,“基本排除” 了服务器端的问题。
表示奇怪。
你还在搞 Jmeter,打算换一种工具。可惜结果不会有变化。
其实不奇怪。
你 200ms 的延迟是加在了 Java 实现里,使用的是 new Thread().sleep(200), 此方法及其耗费 Java 线程资源。因为你是 spring boot 的自带启动,本身的线程总数就不多,还用了这么消耗线程资源的方式来实现延时,服务器性能会大大降低。
如果你能监控到 JVM 进程中的线程状态,会发现都是 block 或者 wait。
说白了,服务器性能不行,不是因为硬件资源不行,而是被你的代码强制的暂停住了。
解决方式:
多谢肯定。
实时监控的开源产品太多了,最近我还发现了一个 :
https://github.com/AsuraTeam/monitor
这方面要考虑的太多,自己实现很难专业。
另外提到的 报表分析 ,如果做出来确实很牛,就像 听云 ,但是到这步就很难开源了, 是可以赚钱的了。
还有,你这么牛,你去文章中找其他问题去,别这里有个人回复了,你就来喷来找茬,你搞点儿新鲜的。
我的回复不是给你划重点让你深刻思考的。
你这样的还没有实锤的,纯蹭热度。
1.真不知道你在这强调什么,还是就没看懂问题。
https://www.zhihu.com/question/36996520
https://tech.meituan.com/mysql_index.html


“顺序是有影响的”,把实锤放出来。最左前缀匹配原则是有 mysql 的内部实现算法支撑的,你的 “顺序是有影响的”,依据是什么?
建议先查一下 explain。
另外,去搜索一下 otter,类似的技术你这里没提。
你引用的技术帖子已经很老了,觉得能落后 5 年,建议多看看。
外国人的轮子啊……不知道也是基于 Jmeter 的吗?
我文中写了不少为什么我要再开发一套的原因,要不你参考一下,然后告诉我 Taurus (Blazemeter reporting services ) 是不是都满足了。
额,这种提到 issue 里吧……然后堆栈完整一点儿。
看错误是比较简单的,数据库字段不能为 null。我本地是可以的,当然完整堆栈能看出是什么问题。
好的,
了解了,压测任务确实各有不同,不过只要是使用 Jmeter 的脚本,都可以上传到这个平台上进行压测。
至少可以做到:
如果你们的测试报告都是自己整理的,那么你们可能需要完备的监控截图,而我的平台监控截图比 grafana 的清晰了不少,你们可以作为参考。
也有道理!
不过平台的初衷之一是让开发等不专业的也可以执行性能测试,我们仅是管理测试脚本,管理权限就好。
你好,是接口请求的内容保存在数据库里,所以才需要读数据库。
并不是接口返回的预期值保存在数据库中。
提几个建议吧,你的代码实现:
有你分享的时间,我 Jmeter 都干完活了……行了大兄弟,别在我这掰扯这些了。
我文中写的那么多 Jmeter 的优点看来在你眼里都是 P 啊……“Jmeter,功能太丰富了,比如正则表达式,自定义变量,参数化,性能测试,定时执行等等。 这基本满足所有复杂的接口测试要求,自开发这些工具真的比不了。”
我期待你在 github 上的开源。
写的不错,大势所趋。
这个回答做到了:
talk is cheap show me the code.
这套代码工具,可以解决读接口的比对问题,也是我文中所面对的问题。
当然我的 Jmeter+Ant 还是有其优势的:
至少这两种情况,Jmeter 还是比较方便的。
我不展开了,我相信 python/node.js 能做到。
好的。我文中就是这么做的。
谢谢版主肯定。
你的一个连数据库的函数 + 一个循环 再加上 @hu_qingen 的接口测试 [JsonSchema] 关于接口测试 Json 格式比对核心算法实现 (Java 版) 这应该就是你写的 “一个断言” 的完整实现。
至于重构怎么改变大小写了,你很感兴趣……可能测试的工作就是这样吧,面对的是各种各样的问题。
没别的意思,我觉得我的这篇至少引发了你对解决问题的思考,并且你也感兴趣了,我觉得就很好。
不错,学习了。
diffy 是个好工具啊,界面也不错。应该可以搞定我的问题,即便搞不定二次开发的工作量也比较小,主要是这测试结果是在线的很赞。
接口返回值可以包含多个表的数据,再说接口可能有缓存的,都不调用 DB 的数据,直接测试数据库是不行的。
不了解这么高端的工具。
beyond compare 命令行没用过, 能把 JSON 格式化后再对比吗?
这个地方主要是对比测试,两个环境海量接口返回值的对比测试。
Json Schema 明显是没做的……你的建议很好,不过很难推行。
不仅仅是测试返回码啊~返回值的格式,甚至大小写匹配,返回值的 key value 都要一致的。