我也不知道为什么喜欢在博客开头用一个引用,反正看着舒服。
JMeter系列第一篇,安装篇。转载请注明出处http://blog.lzoro.com
碎碎念
前段时间公司的新项目上线了一段时间之后,随着运营规模的变大,老大要求对系统进行一个摸底,那么肯定有人要为这个伟大的工作献身了,是的,那个人就是我。谁让我是就是打杂的呢。消消气好了,毕竟代码只是副业。
摸底,那是摸什么底呢,当然是我们系统的底啦,知(看)己(bug)知(好)彼(多),方(需)能(要)百(好)战(好)百(改)胜(进)。所以就有了以下内容的诞生。
说实话,从事Java的时间也不算短了,但是以前还真的很少进行性能测试有关的工作,趁这次好好恶补了一下,写几篇博客沉淀一下,不然牛都白吹了。
什么是性能测试
是不是很一板一眼,没错,我也这么觉得。<百度百科>性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当> 负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。
性能测试,就个人的理解通俗来讲,在单元测试和集成测试和回归测试等常规测试的基础上(就是代码逻辑在正常情况下表现正常的情况),模拟大量用户高并发(短时间)地对系统进行访问,来收集系统在高并发情况下可能出现的问题,以及各项系统性能指标。
那么,问题来了。该怎么进行性能测试呢,所谓磨刀不误砍柴工,当然要是你是牛逼得上天了的人,完全可以自己写代码来处理,但考虑到牛逼到上了天的人应该不会来看我这篇博客。
所以工具还是要有的,所以主角就要登场了,有请,JMeter先生,请发表。
什么是JMeter
嗯,大家好,我是JMeter,在介绍我自己之前,有句话不知当讲不当讲(作者:讲)。本来我想介绍一下我一个同行,他叫LoadRunner,HP家的小伙子,听说好像比我牛逼一点,反正我是不服,所以还想说要不介绍一下他,大家对比一下。
简单来说,JMeter就是一个Java开发的性能测试工具,嗯。(JMeter:就这样?)<还是来自百度百科(作者懒)>本工具是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
下载安装
环境说明
1、Windows10 双核 8G
2、JDK1.8
3、JMeter3.2
JMeter是利用Java进行开发的,所以JDK环境也是必备的,如果你的机子没有JDK环境,那么请安装一个,如果你不会安装JDK,那么请放弃吧
JMeter
- 下载地址:官网
-
安装步骤:不好意思,没有安装步骤。
1、下载
2、存放到自己喜欢的软件目录
3、解压缩
4、进入bin目录
5、双击jmeter.bat
6、是不是很惊喜
写了这么多,安装(根本就没有安装)就这么一点,是不是有种被骗的感觉。鉴于你看到这里了,博主肯定不能让你失望,所以祭出优下面的大招。优化配置
鉴于个人自己是跑过测试的,所以深知上万并发测试跑到一半OOM(内存溢出)那种痛苦,所以决定分享一下优化配置(我知道你们可能已经看过了,但是请你装作不知道再往下看看吧,会有惊喜的)
1、进入JMeter的bin目录
2、找到jemeter.bat,并用文本编辑器打开
3、找到set HEAP那行
3.1、修改为:set HEAP=-Xms1024m –Xmx1024m
3.2、或调整堆内存中新生代:set NEW=-XX:NewSize=256m-XX:MaxNewSize=256m。
3.3、或调整永久代:set PERM=-XX:PermSize=128m-XX:MaxPermSize=256m
注:具体的值示自己机器而定,3.2和3.3在JMeter3.2中好像已经去除了,可以自己动手实验一下。
分布式使用
单台机器可以跑的并发量和配置有很大关系,但是也是有上限的,所以JMeter也有提供分布式使用,Apache家果然是良心出品。
介绍一下怎么配置:
1、进入JMeter的bin目录
2、找到jmeter.properties,并用记事本打开
3、找到remote_hosts那行,进行修改,格式:remote_hosts=127.0.0.1:1099,192.168.1.1:1099,192.168.1.2:1099
表示有三台远程机器,一台本机,两台局域网内机器,机器之前用","分隔,端口默认1099
5、分别在配置的机器上安装JMeter,并启动jmeter-server.bat(Linux下是.sh)
6、在本机启动jmeter.bat
7、配置好测试计划后,按下图启动就OK了
注意:可以会有部分从机器无法通信,这个时候就需要检查防火墙有没有开放相应的端口了,Good luck~~
好了,本篇博客教学到此为止,如果有描述不对的地方,欢迎指正,反正我是不会改的。
等一下,是不是看了这么久,心里卧槽:说好的惊喜呢,一点都没有好吗?
没错,我就是要骗你看完的
[自娱自乐,其实根本就没人看]
下回预告
下篇博客:Jmeter的具体使用,包括新建测试计划,Beanshell和CSV进行参数化,结果监听,服务器监控等,不定期更新,敬请期待。