刚刚在打扫卫生的时候,就一直在思考近一年以来所学知识及体系。知识太过于碎片化,整理的东西全写在笔记本上,日常工作不可能全部用到,所以复习很重要。因此开始准备将一些知识写在随笔里边,用于知识体系的重建,知识的总结。

  敲定了之后,便开始动手吧!

  就从Jmeter开始吧!那么就先介绍一下今天的猪脚吧!

  Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
                                                                ----百度百科
  The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

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, HTMLJSONXML 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(一)简介以及环境搭建的更多相关文章

  1. 简介及环境搭建跑通Hello

    简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...

  2. Redis入门很简单之一【简介与环境搭建】

    Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件  [Redis简介] <一>. NoSQL ...

  3. 1.SpringMVC的简介和环境搭建

    SpringMVC的简介: SpringMVC 和 Struts一样是一个MVC框架,和Spring无缝连接,和struts2类似, Spring MVC属于SpringFrameWork的后续产品, ...

  4. 一、springBoot简介与环境搭建

    前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...

  5. Monkey简介及环境搭建(1)

    简介:Monkey是Android SDK自带的测试工具,是一个命令行工具,可以运行在模拟器中或者实际设备中,它向系统发送伪随机的用户事件流(如按键输入,触摸屏输入,手势输入等),实现对正在开发的应用 ...

  6. PyQT5速成教程-1 简介与环境搭建

    本文由 沈庆阳 所有,转载请与作者取得联系! PyQt简介 一个良好的界面是人机交互中十分重要的一环. Python作为脚本语言,起初并未拥有GUI开发的部分.但随着其开放的扩展性,使得Python不 ...

  7. Jmeter 接口测试知识梳理——环境搭建篇

    Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! 环境搭建篇 很多文章介绍 ...

  8. Mybatis简介、环境搭建和详解

    简介: 1.Mybatis  开源免费框架,原名叫iBatis,2010在google code,2013年迁移到github 2.作用: 数据访问层框架 2.1  底层是对JDBC的封装 3.myb ...

  9. go语言之行--简介与环境搭建

    一.Go简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后 ...

  10. Jenkins + Jmeter +Ant自动化集成环境搭建(一)

    所需工具 一.jmeter 工具下载 https://jmeter.apache.org/  配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...

随机推荐

  1. 几种常见的微服务架构方案简述——ZeroC IceGrid、Spring Cloud、基于消息队列

    微服务架构是当前很热门的一个概念,它不是凭空产生的,是技术发展的必然结果.虽然微服务架构没有公认的技术标准和规范草案,但业界已经有一些很有影响力的开源微服务架构平台,架构师可以根据公司的技术实力并结合 ...

  2. MySQL Binlog和Relaylog生成和清理

    =====================================================================================binlog文件生成:在每条二 ...

  3. day 54 JS 之 jquery

    jQuery入门 2017-07-10 jQuery快速入门. jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Doc ...

  4. Python基础_私有变量访问限制

    Python内置了一些特殊变量,以前后上下划线标注,同时我们自己要想定义一些变量,不想让外部访问,又该怎么做呢?更多内容请参考:Python学习指南 访问限制 在class内部,可以有属性和方法,而外 ...

  5. 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解)

    不多说,直接上干货! 环境: windows10系统(64位) 最好先安装jre或jdk(此软件用来打开oracle自带的可视化操作界面,不装也没关系:可以安装plsql,或者直接用命令行操作) Or ...

  6. python中in,not in,比较运算符,格式化输出,编码

    一,python中的in,和not in python中in的作用是检测或查找,例如: c = ‘你好大号胡覅但是啊飞碟说’ b = ‘你好’ print(b in c ) 结果: True c = ...

  7. java项目中异常处理情况

    一,基本概念   异常是程序在运行时出现的不正常情况.是Java按照面向对象的思想将问题进行对象封装.这样就方便于操作问题以及处理问题.  异常处理的目的是提高程序的健壮性.你可以在catch和fin ...

  8. OpenGL纹理

    如果不用头文件,把所有东西堆在同一个cpp文件中,会出现“超出GPU内存的错误!” 1 //我们自己的着色器类 #ifndef SHADER_H #define SHADER_H #include & ...

  9. JavaScript 继承总结

    http://blog.csdn.net/yincheng01/article/details/6841953 Metro C++ http://www.cnblogs.com/michaelxu/a ...

  10. 关于Firedac的一点看法

    Firedac集成在Delphi中已经有几个版本了,偶尔也拖到Form上试着用用,虽然知道Firedac有可能是最终的(或很很长时间内)数据访问技术,可一直不能接受它,其中最大的原因就是过于“复杂” ...