小皮球的故事 发表于 2017-6-12 17:06:10

Jmeter 的一些东西

最近改用Jmeter了,记录点东西
#和LoadRunner的区别
##编写脚本
LR提供.net,java,c三种语言的支持,Jmeter只支持Java一种语言的开发,直接提供api的只是其中一种叫JavaRrequest的Sampler
只要继承他的AbstractJavaSamplerClient类,打个包丢lib下面,就可以了,有点像Junit
不过开源项目嘛,各种Processer,Listener之类的东西都是可以自定义开发的,就是麻烦一点

##接口
LR里面有个transcation的概念,主要有三个属性:name,duration,status.
通过它提供的api,可以在业务开始的时候调用lr.start_transcation(name)开始一个事件,在结束的时候lr.end_transcation(name,passOrNot)来完成一个事件,这样就自动计算了处理花费的时间,并记录了最终状态
,在contorller上就会体现出name业务的一次执行,TPS或者RPS图标上可以观察到相应的曲线
Jmeter里也有这么个东西,不过因为Jmeter里的业务处理部分叫Sampler,所以叫SampleResult.
每个Sampler每次执行,都需要return一个SampleResult.这个Result包含的内容很多,不光上面的包含name,duration,status,还可以保存request和respones,而且还能嵌套,一个Result可以包很很多SubResult.
最终这些结果都被"Listener"接收到(Sampler,Listener的概念不说了,网上google一下一堆)
主要接口
ampleStart()
sampleEnd()
setSuccessful()
setSampleLabel()
setRequestHeaders()
setResponseData()##监控,结果展示和分布式
这方面Jmeter相比来说太弱,不说了
推荐个插件jmeter-plugin
Transactions per Second
Response Times Over Time
PerMon Metrics Collector

##多线程
LR里面有个叫Vuser的东西,一个Vuser可以认为是一个独立的线程,也可以设置让他是一个独立的进程,不设置默认50个Vuser一个进程.每个Vuser是一个测试脚本的完整实例.
顺便说一句,LR的api只有从主线程里调用才起作用,别的现成调用都不干活,不过这都不是事
Jmeter么...... 一个测试计划下面可以有多个线程池,线程池是用来执行各种Sampler的,可以设置线程的数量,执行次数
每个线程会都会把线程池下面的东西(sampler,controller之类的)顺序执行一遍

##上下文
LR没有
Jmeter通过JMeterContextService.getContext()可以获得一个JMeterContext,这里面能包含一个工作线程中的大部分有用的信息,比如:
getPreviousResult()获取上一个sampler的结果
getVariables()获得一个JMeterVariables,这个东西就是个Map,Value是个Object,这样可以在线程里任何地方存取你需要的任何类型,很灵活也很好用

未完待续...

目前,个人感觉性能测试还是LR好用,可惜收费,还很贵,而且只能Windows
Jmeter怎么看怎么像个自动化接口测试的东西

jingzizx 发表于 2017-6-12 17:49:30

:victory:

测试就是来开荒 发表于 2017-6-14 09:41:02

jmeter才是最灵活的方式. 比lr好很多.
只是用起来需要一些专业知识, 所以不像lr那样容易.
jmeter是在自动化概念上封装了性能测试场景, 其实lr也是一样.
lr也是可以写自动化脚本的.

对于初级入门来说, lr毕竟会好些, 操作人性化, 报表功能强大.
lr较难在linux上跑, 企业级别的测试, lr也撑不起来, 需要自己编写工具.

目前lr和jmeter都是只用在偏前端的一些性能测试场景中, 偏重业务场景分析.
后端测试jmeter可能会用上, lr就不行了

小爸爸 发表于 2017-6-14 09:42:03

LR好用主要就是报表,可以实时统计回来数据,最后测试结果太大的时候还能是使用SQL数据库暂存
应付百万并发连接的测试没啥问题,主要还是看脚本写的质量了

芭比哇玩123 发表于 2017-6-14 09:43:07

.最近我也在使用jmeter,针对于百度,我只是并发100个请求,响应时间惨不忍睹,我观察我的内存和cpu信息,发现内存一直没有变化,cpu倒还是有波动
2.其实最令我关注的还是服务器这块,监控服务器,数据库,网络等这些信息,个人感觉还是lr应该会强大很多的。
3.lr 的名气实在太大了,很多客户指定需要lr的分析报告。

所以我不得不把重新投入到lr的怀抱

测试就是来开荒 发表于 2017-6-14 09:45:35

LR在数据统计展示和稳定方面,确实比jmeter好用. jmeter好处就是能做些深入的二次开发
页: [1]
查看完整版本: Jmeter 的一些东西