开源已经成为一个趋势,虽然说做测试是一个低端的行业,但是我们也应该在这个低端的行业慢慢提升自己,让自己到达理想的高度。
以前说如果你会使用loadrunner可能别人就会觉得你有一定的水平那么就会拿高薪聘请你,可是现在已经不一样了,如果你只是会实用工具还不行,而且还是那高昂的收费工具,你应该学会语言,脚本语言、开发语言~~~~~~~~~~~
以前总听他们说JMeter但是自己并没有在意,但是现在因为项目需要慢慢的弄了,这里分享一下学习过程。
一、环境搭建
1、JMeter的环境搭建这个和java开发环境差不多,首先下载一个JDK然后安装好,将环境变量配置好(省略具体)
2、JDK安装完成之后需要下载JMeter,随便搜索一下就有了。我下载到:D:\JMeter 看自己习惯(这是解压后的文件目录)
3、将JMeter下载后解压并且配置环境变量:在用户变量中,新建变量名"JMETER_HOME",变量值为:D:\JMeter\jakarta-jmeter-2.3.4,修改"CLASSPATH",加;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/jorphan.jar;%JMETER_HOME%/lib/logkit-2.0.jar 到这里就算基本完成,然后cmd 查看 java版本,如果有那么就说明你安装成功了。
4、这个时候你只需要启动JMeter 的bin目录下面的jmeter.bat文件就行 如果正常启动并且看到界面那么你就安装成功了。
大家看到成功的页面可能和我刚开始学的时候一样模糊,不知道这个怎么做,那么接下来说说JMeter的搭档,因为我用的时候就是使用JMeter和badboy一起使用的,badboy是一款自动化测试工具,但是他还有一个功能就是能够将录制、修改好的脚本导出来添加到JMeter中,这样是不是很方便,这样就有了loadrunner的意思了,但是和大小将近4G的LR比起来这个小巧精致了很多。
5、badboy 可以自己在http://www.badboy.com.au/download/index 这里下载一个最新的版本就行 是一个.EXE文件下载好直接安装就行。
6、在录制完脚本后点击File下面的export to jmeter就可以了
7、导出脚本后在JMeter中直接将该脚本添加进去就行。
到这里一个简单的东西都建立完成了
二、JMeter练手
首先要知道JMeter做性能测试的一个大概原理,因为只有这样你才知道该怎么做,其实和LR差不多。在JMeter中使用的是线程来实现,这个就好比LR中的虚拟用户数,在JMeter中我们很多时候关注的就是他的QPS(Query Per Second):每秒查询率,简单点说就是服务器每秒钟处理的查询次数。
1、JMeter启动的时候就有一个空的Test Plan ,我们只需要将之前body录制的脚本导入到这里就行了,在导入的脚本中这里只有一个线程,换言之就是只有一个虚拟用户,所以我们需要在线程组里面添加。这里添加一句:在一个Test Plan里面可以添加多个线程组,而且在运行的时候他们是并行的。
2、这里我们只需要将名字、线程数、Ramp-up period(in seconds)准备时间、循环次数设置一下就可以了,最主要的就是线程数、Ramp-up period(in seconds)运行时间、循环次数
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本
3、说道这里大家可以看看http请求,因为我们的脚本是导入的,所以这一块儿就不想洗讲解了,可以看看其他的资料。选择线程组下的添加选择sampler 进行添加http请求。
4、定时器的操作比较有用,Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量。(选择http请求菜单选择添加--->定时器--->Constant Throughput Timer) 主要说一下下面的一个参数Target throughput(in samples per minute):目标吞吐量。每分钟发送的请求数。
5、添加完虚拟用户后现在就需要添加监听器,直接就是在线程组选择“添加--->监听器--->聚合报告”就行了,接下来就是运行脚本了。
6、这里一个大概的了解入门基本结束,就只有聚合报告的一些参数解释了。这里基本和LR的差不多,在报告结果页面的samples就是代表发送了多少请求,average说的是平均响应时间。
整理这破东西差不多耗时一下午,继续学习!
JMeter 学习笔记从不懂慢慢提升(01)