Jmeter(一)简介以及环境搭建
刚刚在打扫卫生的时候,就一直在思考近一年以来所学知识及体系。知识太过于碎片化,整理的东西全写在笔记本上,日常工作不可能全部用到,所以复习很重要。因此开始准备将一些知识写在随笔里边,用于知识体系的重建,知识的总结。
敲定了之后,便开始动手吧!
就从Jmeter开始吧!那么就先介绍一下今天的猪脚吧!
What can I do with it?
Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications.
It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.
Apache JMeter features include:
- Ability to load and performance test many different applications/server/protocol types:
- Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
- SOAP / REST Webservices
- FTP
- Database via JDBC
- LDAP
- Message-oriented middleware (MOM) via JMS
- Mail - SMTP(S), POP3(S) and IMAP(S)
- Native commands or shell scripts
- TCP
- Java Objects
- Full featured Test IDE that allows fast Test Plan recording (from Browsers or native applications), building and debugging.
- Command-line mode (Non GUI / headless mode) to load test from any Java compatible OS (Linux, Windows, Mac OSX, …)
- A complete and ready to present dynamic HTML report
- Easy correlation through ability to extract data from most popular response formats, HTML, JSON, XML orany textual format
- Complete portability and 100% Java purity.
- Full multi-threading framework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
- Caching and offline analysis/replaying of test results.
- Highly Extensible core:
- Pluggable Samplers allow unlimited testing capabilities.
- Scriptable Samplers (JSR223-compatible languages like Groovy and BeanShell)
- Several load statistics may be chosen with pluggable timers.
- Data analysis and visualization plugins allow great extensibility as well as personalization.
- Functions can be used to provide dynamic input to a test or provide data manipulation.
- Easy Continuous Integration through 3rd party Open Source libraries for Maven, Graddle and Jenkins ---------官方介绍(传送门:http://jmeter.apache.org/)
个人见解:Jmeter是一款十分优秀的工具,不过笔者觉得它和平常的工具不一样;首先Jmeter是跨系统的,在windows、Mac、Linux均可使用;一方面在于它支持丰富的协议(HTTP、FTP、JDBC、SOCKET。。。);功能方面也相对比较健全(各种各样的逻辑处理,如条件判断,循环,仅一次等等);各种检查点,对文本、Java对象均可进行处理;丰富的图表展示;此外还有许多第三方插件支持以及第三方集成;且最重要的是开源的。。。
Jmeter安装:
Jmeter是在JVM上运行的,因此必须先要安装JDK,不过切记一点,截至今天,Jmeter已经更新到3.3版本,它是不支持JDK1.9的,切记!

传送门(http://jmeter.apache.org/download_jmeter.cgi)
至于JDK安装以及环境变量配置,此处便不再列举;
Jmeter环境变量配置:
1,变量名:JMETER_HOME
变量值:E:\apache-jmeter-3.2(根据自己的解压目录而定,笔者使用的是Jmeter3.2的版本)
2,变量名:CLASSPATH
变量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
OK,环境变量配置结束,可以至E:\apache-jmeter-3.2\bin(安装目录下bin目录)下寻找jmeter.bat文件,双击打开。(可能安装会遇到各种各样的问题,笔者曾经在某些技术群中发现有不用配置环境变量便可以使用(至于到底什么情况,不是当事者也不清楚);还有找不到bat文件(系统默认将后缀名进行隐藏掉了嘛))


看到上方小黑窗,随后下方Jmeter的弹窗跳出来。那么恭喜你,Jmeter已经被你给拿下了。
可以观察该小黑窗中的同时内容,
Don't use GUI mode for load testing, only for Test creation and Test debugging !
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
& adapt Java Heap to your test requirements:
Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file
不要使用GUI模式进行负载测试,只用于测试创建和调试!---------------------what mean?
GUI模式----便是下方的弹窗,此处的意思便是推荐使用GUI模式进行创建脚本以及调试脚本,不推荐进行负载测试(所谓负载测试是属于性能测试的一种类型,通过测试系统在资源超负荷情况下的表现,以发现设计上的错误和验证系统的负载能力,在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力;负载测试的目的是确定并确保系统在超出最大预期工作量的情况下仍能正常运行,此外,负载测试还要评估性能特征;例如:响应时间、事务处理速率和其他与时间相关方面),因此可以看出负载测试是比较浪费系统资源的,GUI界面本身便很浪费资源,因此如果出现大并发或者机器处于大负载的情况下,非但不会得到你想要的结果,机器是必然会出现卡死的情况。
不过,小黑窗的下方一段话也给出了解决方案:
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
& adapt Java Heap to your test requirements:
Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file
对于负载测试使用no-GUI的方式进行运行:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
这段命令便是NO-GUI的方式运行。
或者进行修改堆内存的大小:
Jmeter的默认堆为512m,因此,如果使用Jmeter进行负载测试建议将堆内存进行修改到合适的大小;
修改方法:
至E:\apache-jmeter-3.2\bin,使用文本编辑器模式将jmeter.bat文件打开,进行修改heap:

修改此处的堆内存大小只是一种手段,但并不是万能的。因此,做负载测试还是需要进行谨慎分析,再下结论。
OK,本篇先记录到这。。
Jmeter(一)简介以及环境搭建的更多相关文章
- 简介及环境搭建跑通Hello
简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...
- Redis入门很简单之一【简介与环境搭建】
Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件 [Redis简介] <一>. NoSQL ...
- 1.SpringMVC的简介和环境搭建
SpringMVC的简介: SpringMVC 和 Struts一样是一个MVC框架,和Spring无缝连接,和struts2类似, Spring MVC属于SpringFrameWork的后续产品, ...
- 一、springBoot简介与环境搭建
前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...
- Monkey简介及环境搭建(1)
简介:Monkey是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用 ...
- PyQT5速成教程-1 简介与环境搭建
本文由 沈庆阳 所有,转载请与作者取得联系! PyQt简介 一个良好的界面是人机交互中十分重要的一环. Python作为脚本语言,起初并未拥有GUI开发的部分.但随着其开放的扩展性,使得Python不 ...
- Jmeter 接口测试知识梳理——环境搭建篇
Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! 环境搭建篇 很多文章介绍 ...
- Mybatis简介、环境搭建和详解
简介: 1.Mybatis 开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1 底层是对JDBC的封装 3.myb ...
- go语言之行--简介与环境搭建
一.Go简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后 ...
- Jenkins + Jmeter +Ant自动化集成环境搭建(一)
所需工具 一.jmeter 工具下载 https://jmeter.apache.org/ 配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...
随机推荐
- GoLand tool tips
goland format code (on save ) preference -> tool -> file watcher then ,select go fmt 2, highl ...
- centos7 用yum安装java8
1.查看yum源中是否有相关套件yum -y list java* 2.上图中可以看到有两个自己想用的套件,经过试验发现用yum install java-1.8.0-openjdk 时最后 /usr ...
- HTTP redirect 重定向到 HTTPS
最近帮一个顾客做网站, 需要HTTPS. 之前接触的SSL certificate直接上传到plesk 上面勾选重定向即可. 在此先吐槽下godaddy 服务贵功能还少. 用代码从HTTP来重定向到 ...
- js 数字数组按大小排序
var num = [7,8,6,5,2] //倒序排列 num.sort((a,b)=>{return b-a}) //正序排列 num.sort((a,b)=>{return a-b} ...
- zookeeper 学习资料
zookeeper 学习资料 学习资料 网址 Zookeeper 教程(菜鸟教程) https://www.w3cschool.cn/zookeeper/
- 手动制作openstack CentOS 镜像
https://docs.openstack.org/image-guide/centos-image.html This example shows you how to install a Cen ...
- sql查询:存在A表而不在B表中的数据
A.B两表,找出ID字段中,存在A表,但是不存在B表的数据. 方法一:使用 not inselect distinct A.ID from A where A.ID not in (select ID ...
- C166-变量和函数指定物理地址之二
按照<RENAMECLASS Compiler Directive>http://www.keil.com/support/man/docs/c166/c166_renameclass.h ...
- tomcat端口号被占用的问题
错误原因:8080端口被其他的应用占用! 在网上查了下解决方案,有些说在任务管理窗口关闭javaw.exe,有些说shutdown一下tomcat,亲测在某些场合下可用. 下面是摘自其它博客园里文章的 ...
- ML: 降维算法-LE
PCA的降维原则是最小化投影损失,或者是最大化保留投影后数据的方差.LDA降维需要知道降维前数据分别属于哪一类,而且还要知道数据完整的高维信息.拉普拉斯特征映射 (Laplacian Eigenmap ...