泽众软件
首页 关于我们 下载与支持 咨询电话:400-035-7887/021-6072 5088
当前位置:泽众软件测试网-产品新闻-正文

为什么性能测试工具performanceRunner压力机的性能能够增加5倍?

发布时间:2021-05-07
对于性能测试工具,它的性能脚本执行效率,决定了在一个加压的机器上,能够运行多少个虚拟用户(virtual user)。比如,执行一个测试脚本的时间是100ms,相对于执行相同的测试脚本时间为20ms,就相差了5倍。
 
在早期的performanceRunner(简称PR)版本,单台压力机的较大虚拟用户大概在300-500左右。当使用更高的虚拟用户,会导致性能数据不准确,无法达到较大压力。
 
PR的较新版本,改进了测试脚本的核心算法,使得单个脚本的执行时间大幅度缩减,这样就可以执行更多的VU。
 
我们知道,PR和JMeter都采用了beanshell作为脚本。根据各个脚本语言的性能对比测试(与python、js、java等),我们可以发现,beanshell是性能较糟糕的脚本语言。因此,其实不是非常适合用来做高性能处理。具体的内容,如果读者有兴趣可以去搜索网站上关于beanshell的相关文章。
 
那么,如果提升beanshell脚本的执行效率,就是PR执行器提升VU的核心问题。
通过研究我们发现,beanshell的脚本执行,具有2个步骤:第一,把脚本编译成语法树;第二,执行语法树上的语法元素。从编译原理的角度来看,编译的复杂度比执行高很多,也就是说,beanshell的测试脚本执行,大多数的时间用在编译上。
对于性能测试而言,单个脚本基本是不改变的,但是它需要倍执行上万次,甚至百万次。
如果我们能够让系统只执行一次编译,之后都只执行语法树,而不再编译,是不是可以大幅度提升系统的性能?
 
按照以上的原来,我们在PR中,对测试脚本执行进行了优化,果然,性能得到大幅度提升,比原来快了5倍以上!!!也就是执行测试脚本的所消耗时间,缩短到不足原来的20%。
这样,我们就使得加压机上的较大VU格式,提升到能够支持2000 VU(在十代i7上)。
带来的好处是显而易见的。比如,我们要执行4万VU的一次性能测试,原来较多只能执行较大VU格式为200的设备的前提下,我们需要200台设备,才能够达到需要。现在,在十代i7的设备下,我们可以只使用20台设备,即可实现4万VU的性能测试
 
节省了大量的设备,同时也减少了软件安装部署、执行监控的时间。对于需要进行海量压力加压的客户而言,价值非常高。
 
推荐阅读:
 
性能测试指标有哪些
 
app性能测试工具有哪些
 
web性能测试工具有哪些
 
java性能测试工具有哪些
 
性能测试调优步骤与经验
沪ICP备07036474号 2003-2021 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
公众
账号

扫描二维码
关注泽众微信公众号

泽众官网公众号
问题
反馈
返回
顶部

方案咨询

×
提交信息

我们会在24小时内,给您电话回复!或者直接电话咨询,400-035-7887,给您专业的解答。

您的信息已成功提交!

我们的客服人员稍后会与您联系