设为首页 收藏本站
查看: 521|回复: 0

[经验分享] 【性能测试入门】 使用JMeter/Tomcat/Visual VM

[复制链接]
YunVN网友  发表于 2017-2-5 07:15:14 |阅读模式
  当Web应用的系统性能成为用户访问瓶颈的时候,作为系统的构建者,Code Monkey DSC0000.gif 自然无法置身事外。专业的性能测试,自然需要有专门的测试部门来负责主导,然而作为程序猿,关注性能、了解一点和系统性能相关的知识,无论是对工作、还是从完善自身知识体系的角度来考虑都大有裨益。在这篇博客中,使用的工具包括JMeter、Tomcat和Visual VM,重点在于JMeter的入门使用。
  【使用工具】
  JMeter: DSC0001.gif 用于对Web应用进行性能测试,是Apache组织的顶级项目之一。作为一个顶级项目,都意味着会有一个专门的项目管理委员会,JMeter官网如是说。JMeter最初是被设计用来对JServ服务器进行性能测试的,而JServ即是Apache Tomcat的前身,因此使用JMeter测试基于Tomcat的Web应用优势非常明显。
  Tomcat:最流行的Java Web容器,由Sun公司最初开发、然后成为开源项目,并捐赠给Apache组织。从在校学生编写的Java EE版本的Hello World程序,到一线互联网公司的大型Web站点,都可以看到它的身影。
  Visual VM:JDK自带的一个可视化的JVM监控程序,可以从CPU、内存、类加载、线程数目等多个维度 DSC0002.gif 对JVM进行监控,可以安装Visual GC插件、对垃圾回收GC进行详细的追踪。
  
【安装与配置】

1. 下载安装:
   访问JMeter官网首页http://jmeter.apache.org,点击左侧导航Download Releases,进入JMeter下载页面
http://jmeter.apache.org/download_jmeter.cgi,下载apache-jmeter-2.12.zip压缩包,解压到磁盘任意
目录,如E:\study。 DSC0003.gif
  
2. 环境变量:
    为了从命令行直接启动JMeter,而不是每次都进入到JMeter的安装目录启动,需要进行环境变量的设置。
添加变量JMETER_HOME,值为JMeter的安装目录:E:\study\apache-jmeter-2.12。然后将JMeter的\bin目录
添加到Path变量的最前面,内容为:%JMETER_HOME%\bin;
    参照JDK的环境变量配置方式即可,因此没有理解难度。
  
3. 堆内存设置:
    进入JMeter的\bin目录,打开JMeter的启动脚本jmeter.bat,找到如下行内容:
        set HEAP=-Xms512m -Xmx512m
    将该行修改为如下内容即可:
        set HEAP=-Xms1024m -Xmx1024m
    说明:其实堆内存设为512m完全可以满足JMeter的基本使用。需要说明的是启动JMeter作为一个JVM实例,和Tomcat一样,都拥有自己运行时的数据区域。 DSC0004.gif 这里只是展示一种思路,一旦出现各种关于JVM的疑难杂症,知道为什么、如何去处理即可。
  
4. 界面语言:
    JMeter启动时自动判断当前系统平台的Locale、使用合适的语言显示操作界面,但是本地化做的不彻底、展示的是中英文夹杂的界面,让人失望。 DSC0005.gif 因此直接修改配置,展现英文界面。进入JMeter的\bin目录,打开jmeter.properties,将注释掉的如下行去掉注释即可。 DSC0006.gif
    language=en
  
5. 启动JMeter:在命令行下键入jmeter或者jmeter.bat
  
6. 界面风格:
    选择菜单“Options -> Look and Feel -> Nimbus”,使用一种比较有灵气(nimbus)的操作界面。
  
DSC0007.jpg
 
  【简单使用】
  
    1. 创建测试计划(Test Plan):启动JMeter之后、重命名Test Plan为build-web-test-plan
  
DSC0008.jpg
  2. 添加线程组(Thread Group):右键选择菜单“Add -> Threads(Users) -> Thread Group”,将该节点重命名为Jmeter Users,同时设置线程属性:如下三个属性分别设为500,1,10
  Number of Threads(users):线程数目,使用线程模拟的用户的数目。
  Ramp-Up Period:上升周期,在多长的时间内创建所有的线程数目。
  Loop Count:循环次数,如果需要一直重复发送请求、勾选复选框Forever。
  
DSC0009.jpg
 
  3. 添加取样器(Sampler):右键选择菜单“Add -> Sampler -> HTTP Request”,创建HTTP请求,并且将其重命名为Home Page,同时设置如下参数
  Server Name or IP:设为localhost。
  Port Number:设为80。
  
DSC00010.jpg
 
  4. 设置监听器(Listener):右键菜单“Add -> Listener -> Graph Results”创建图形化的结果输出,同时可以添加View Results in Table、Summary Report监听器。
  
DSC00011.jpg
 
    5. 保存测试计划:选择菜单“File -> Save Test Plan as”,命名为build-web-test-plan.jmx
  6. 启动Tomcat:端口号设为80,同时添加线程池配置,参考:Tomcat学习笔记 - 【性能优化与监控】
  7. 启动Visual VM:在命令行下键入命令jvisualvm.exe
  8. 执行测试计划:点击工具栏“Start”按钮,切换到Graph Results节点,看到如下信息
DSC00012.jpg
    

  在发送大量并发请求前后,CPU、堆内存,线程数目的变化情况,可以看到在处理完大量并发请求前后,线程的数目发生的显著的变化。
  
DSC00013.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-337546-1-1.html 上篇帖子: [转]Tomcat(6.0.14) Session创建机制简介 下篇帖子: 关于Tomcat与GlassFish交替使用的注意事项
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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