kylinPET完全自研,非JMeter改造,kylinPET学习参照loadrunner,更像loadrunner。以下几点说明与JMeter很大差别

1 录制功能

kylinPET创造性使用网络监听与浏览器接口调用(包括chrome,firefox,edge,谷歌内核其他浏览器)方式进行录制,录制信息更加详细精确。甚至录制了浏览器的并发行为,以便在并发用户数时达到模拟真实浏览器行为的能力。

1)kylinPET的https录制使用特殊技术使录制适配所有网站,可以使用kylinPET录制www.taobao.com(淘宝)和jmeter录制淘宝网,可以发现jmeter录制不了淘宝网站,但kylinPET可以,证明我们录制能力强大很多

2)支持http2技术录制,目前很多网站已经使用http2技术,例如淘宝,阿里云,京东等等。可以使用浏览器F12查看“network”看到protocol列为h2(http2),而jmeter不支持http2录制

2 并发发送请求

Jmeter使用apache httpclient或java自带httpconnection库 作为http并发处理,这些库适合开发者调用,但对性能测试有缺点:http被库封装了,占用内存大(因为不是专给性能测试用,而是开发者用),无法统计TCP指标、首分片不准;而kylinPET完全自主研发http/http2协议栈,因此支持IP欺骗、TCP/SSL/DNS指标;另外,针对web2.0特殊定制内存使内存占用非常小,保障性能测试更加稳定(避免内存溢出、垃圾回收导致时间指标大);

1)可以查看kylinPET安装目录agent(执行器)的lib目录(引用库),没有引用httpclient库,证明kylinPET与jmeter并发代码完成不一样

2)kylinPET前期开发也尝试使用httpclient或java自带httpconnection库,因为开发简单,工作量小,但实践发现并发数比较大时,内存占用高,导致不稳定甚至内存溢出。后面经过大量实践与开发工作量,自己实现http协议栈处理,且对web2.0进行特殊处理,从而使内存占用大大减小,更加稳定和指标更精确;
大家可以使用kylinPET与jmeter并发100以上用户数,查看进程内存占用情况,可以发现kylinPET远小于jmeter,避免内存溢出与资源占用,更加稳定


3)随着web2.0的发展,目前很多网站已经使用ajax异步技术,一个页面同时并发多个请求;kylinPET在性能测试时,每个虚拟用户支持模拟浏览器并发能力(并发多个请求);而jmeter是串行(1个线程)执行脚本里的请求;

3 界面功能

1)kylinPET界面完全跟jmeter不一样,只是脚本是树形结构相似,这是因为业界http测试工具都是类似这种界面,例如postman,soapUI;kylinPET更像loadrunner,操作更简单,功能更强大。


2)kylinPET实现自动关联,回放与录制对比,并使用真实浏览器验证脚本多种方式降低用户使用难度,快速编写正确脚本。


----------------------------------------------------------------------------------
从上面的录制、并发逻辑、界面三点证明与jmeter差别很大,kylinPET完全自研,而且比jmeter更加强大;没必要改造jmeter,毕竟研究jmeter更费时间,看别人代码时间比自己开发时间更长