51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2194|回复: 5
打印 上一主题 下一主题

[资料] Jmeter 的一些东西

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-12 17:06:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近改用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一下一堆)
主要接口
  1. ampleStart()
  2. sampleEnd()
  3. setSuccessful()
  4. setSampleLabel()
  5. setRequestHeaders()
  6. 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怎么看怎么像个自动化接口测试的东西

评分

参与人数 1测试积点 +10 收起 理由
lsekfe + 10 赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

3#
发表于 2017-6-14 09:41:02 | 只看该作者
jmeter才是最灵活的方式. 比lr好很多.
只是用起来需要一些专业知识, 所以不像lr那样容易.
jmeter是在自动化概念上封装了性能测试场景, 其实lr也是一样.
lr也是可以写自动化脚本的.

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

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

使用道具 举报

该用户从未签到

4#
发表于 2017-6-14 09:42:03 | 只看该作者
LR好用主要就是报表,可以实时统计回来数据,最后测试结果太大的时候还能是使用SQL数据库暂存
应付百万并发连接的测试没啥问题,主要还是看脚本写的质量了
回复 支持 反对

使用道具 举报

该用户从未签到

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

所以我不得不把重新投入到lr的怀抱
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2017-6-14 09:45:35 | 只看该作者
LR在数据统计展示和稳定方面,确实比jmeter好用. jmeter好处就是能做些深入的二次开发
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-11 05:06 , Processed in 0.066648 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表