春节刚刚结束,细心的小伙伴发现jmeter4.0也悄悄推出,结合大家平时的使用情况,给新版本增加的特性分析下,jmeter4.0下载地址:http://jmeter.apache.org/download_jmeter.cgi
图1
2. Jmeter4.0支持java 9版本,随着java 9的普及,jmeter旧版本不兼容这还是一个较为蛋疼的问题,毕竟大多人不愿意装两个java版本或频繁切换环境变量;
3. 正则提取表达式优化,我姑且认为是优化,虽然4.0已经重新命名为Boundary Extractor,但依然保留了原先的Regular Expression Extractor,其实仔细对比后发现,如图2,图3,
图2
图3
除了正则的部分有些变化,其他基本一致,新版本让用户填的比较通俗,这样可以让新手更好理解,更容易上手,jmeter官方给出的另一个理由是with better performances,也就是性能更佳。
4. 增加了json断言,这个对于老版本,也是有外部插件的,4.0将这个融进去了,给大家举个栗子,返回数据如图4,我根据userid判断username,具体校验格式如图5,大家可以根据案例自行揣摩下格式,新手可能容易出错,绿色部分记得要勾选,红色的一些数据信息隐去,json path格式我复制下. $..DataList[?(@.UserId=='xxxxxxx')].UserName
图4
5. Precise Throughput Timer,先带大家了解下如何控制,如图5,需要填的第一行Target throughput(in samples per “throughput period”),可能猛一看以为这一行就是控制tps,其实需要结合第二行,如图所示,10s内只允许一个请求,真实tps被控制在0.1.
图5
在之前jmeter也推出了Constant Timer与constant throughput timer,我认为这表明Jmeter官方已经在花较大的精力做综合场景控制,性能测试的核心场景也是综合场景,对于综合场景的控制,在2版本的时候,与LR还是不能相提并论,包括LR能执行过程中随意调整虚拟用户也是目前JMETER达不到的,通过一些说明可以知道jmeter还是通过线程间思考时间去控制tps,该方法略显粗糙,但随着jmeter在这方面的投入,相信差距会越来越小,或者有更多替代方案的产生。
Jmeter4.0对jms消息查看,以及录制放弃了workbench方式,录制对于我来说用的极少,有兴趣的小伙伴可以尝试新的录制插件,另外4.0修复了3.3版本遗留下来的bug做了修复,4.0总体给我的感觉还是不错的,也希望小伙伴们可以多多尝试,当然新版本的推出也会存在新的bug,对于性能测试精准度以及稳定性要求高的公司不妨缓一缓,等版本稳定后再推广使用。
一键关注公众号