jMeter3.3 --概述 学习1

    apache jMeter 是一个开源的工具,用于量度应用程序的性能。它本来是用于测试web 应用程序的,但是由于jMeter的扩展的功能,于是就能够支持其他测试功能啦。

    Apache jMeter 可以测试静态资源,动态资源,动态web应用的性能。

    它可以模拟高负载的一个服务器,服务器集群,大量的用户,网络等等,用于测试应用的强度;通过不同加载类型,全面分析软件性能。

    特点如下

 

    原文链接:http://jmeter.apache.org/index.html

1.0 Overview

    当你使用jMeter时,通常都会遵循如下处理过程。

1.0.1 构建测试计划

   你可以在GUI Mode下运行jMeter。然后从浏览器或原生应用中录制应用,步骤:file -> Template... ->record

   当然你也可以手动的创建,但是需要确保你知道测试计划要素的每一个概念

1.0.2 测试运行

   准备好你的测试计划后,你就可以开始负载测试了。第一步就需要配置jmeter运行的injectors(在其他的负载测试工具里面也是需要配置这些的):

   如果你准备好了这些就可以在命令行模式(Non-GUI Mode)里开始负载测试啦

    注意:负载测试是不能运行在GUI Mode下的

    使用Non GUI Mode你可以生成一个CVS或XML文件,让jMeter在负载测试的最后生成一个HTML报告。jMeter默认情况下会提供一个负载测试的总结。当然你可以使用Backend Listener来获取一个实时动态的结果。

1.0.3 测试分析

    负载测试完成后,你可以使用一个html报告来分析你的负载测试。

1.0.4 开始使用

    安装

    如果你想要做数据库测试(JDBC testing),那么你需要配置JDBC驱动。jMeter并不自带JDBC驱动。

    jMeter包含了JMS API的jar包,但是并不包含JMS客户端的执行,如果你想要做JMS测试,你需要从JMS供应商那里下载相应的jar包。

    建立测试计划

    jmeter版本需要与对应的java版本一致,具体可参考原文。

    原文链接:http://jmeter.apache.org/usermanual/get-started.html

    1.2 可选项

    用于扩展jMeter。

    1.2.1 java编译器

    如果你是想要扩展jMeter或者是开发jMeter插件,那么你需要完整的JDK 8 或者更高。

    1.2.2 SAX XML解析器

    jMeter自带Apache的Xerces XML解析器。你可以通过这个可选项自行配置不同的XML解析器,但是这就需要你在jMeter的classpath路径里面加入第三方的解析器,并更新jMeter.properties文件。

    1.2.3 支持邮箱

    jMeter可以扩展邮箱,用来发送测试结果。它具有POP3(S)/IMAP(S)实例和SMTP(S)实例。

    1.2.4 SSL加密

    使用SSL加密(https)来测试web服务器,需要给jMeter提供SSL,所需要的java版本也需要在1.4以上。如果你的java版本不支持SSL,那么你可以加入外部工具来执行,包括引入加密包,该加package需要jMeter的classpath路径上。当然你还需要更新system.properties,用于注册SSL供应商。

    jMeter HTTP 默认是在协议层TLS。这个是可以在jMeter的属性(jmeter.properties或者user.properties里面的https.default.protocol)里面配置的。

    jMeter的http实例接受所有的证书,不管证书是否受信任,是否过期等。

    如果服务器需要一个客户端的证书,......

    你也可以使用SSL Manager来更好的控制认证。

    这部分详见原文吧。

    1.2.5 JDBC driver

    如果你想要做JDBC测试的话,你需要增加你的数据库驱动到jMeter的classpath里面。需要确保文件是jar包而不是zip包。

    1.2.6 JMS driver

    jMeter目前包含了Apache Gernoimo的JMS API,所以你需要从JMS供应商那里增加相应的JMS客户端执行jar包

    1.2.7 ActiveMQ JMS库

    你需要增加activemq-all -X.X.X.jar 到你的classpath里面。详情参考原文。

    1.3 安装

    1.4 运行

    windows系统,点击bin目录下的jMeter.bat,Unix系统点击jMeter文件,jMeter的GUI模式就会出现。

    GUI模式只能被用在创建测试脚本,负载测试必须使用非GUI模式。

    bin目录下的一些额外脚本(windows脚本文件需要运行在win2000以上):

    LAST关键字是用在jmeter-n.cmd,jmeter-t.cmd和jmeter-n-r.cmd中,意思是已经运行的上一个测试计划。 

    环境变量JVM_ARG可以用来重写jmeter.bat的JVM设置的。例如:

   工作在Linux和Unix系统上的文件参考原文。                                                             1.4.1 jMeter的classpath

    jMeter会自动的从以下工作路径的jar包中找到一些类:

    如果你想开发新的jMeter元件,那么你应该将他们打包成jar包并且复制到lib/ext目录下。jMeter会自动找到该目录下的原件。不要将公共jar包和与插件有关的依赖jar包放到该目录下,它只能用来放jMeter的元件和插件。

    如果你不想要放置jMeter插件包到lib/ext目录下那么你可以在jmeter.properties中定义search_paths.

    工具和依赖包等等这些文件可以放在lib目录下。并且在user.classpath或者jmeter.properties中的plugin_dependency_paths中定义一下。

    其它的jar包(像JDBC,JMS implementation和其他的支持库)应该放置在lib目录下而不是lib/ext目录下,或者增加一个user.classpath.

    注意,jmeter只能找得到.jar文件,而不是.zip文件。

    你可以在$JAVA_HOME/jre/lib/ext下安装utility工具,或者你可以在jmeter.properties中设置user.classpath。

    注意,设置的classpath环境变量可能会没有用,因为jMeter是由java-jar启动的,java命令默认是忽略classpath变量的,这个时候你需要在-jar后面加上 -classpath或者-cp。这个是所有的java程序都会发生的,而不仅仅是JMeter。

    1.4.2 从模板中创建测试计划

    你可以从已有的模板去创建一个新的测试计划。

    …………

    1.4.3 开启了代理后,如何使用jMeter

    如果你正在测试具有防火墙或者代理服务器的项目,你可能需要提供防火墙/代理的主机名端口号给jMeter。具体的做法是运行jmeter.bat用命令行来设置一些参数,如下

    注意,你的设置可能对系统中的其他人可见。

 

    proxy host 和 port提供后,jmeter将会把值设置在下面的系统属性中:

     如果一个非代理主机被提供的话,那么jMeter将值设置到以下系统属性中:

    如果你不希望同时设置http和https代理的话,你可以再system.properties中定义相关属性,而不是使用命令行模式。

    代理是指可以定义在一个测试计划中,使用http request default配置,或者http request实例元素中。

    注意:JMeter也有它自己的内置的代理服务器(HTTP(S) Test Script Recorder)。这个只用在HTTP或者HTTPS浏览器对话中。

    1.4.4 命令行模式

    

    1.4.5 服务器模式

    对于分布式的测试,服务器模式下,可以远程节点上运行jMeter,并从GUI图形界面控制jMeter。你也可以使用非GUI模式去运行远程测试。在每一个服务器主机上运行jmeter-sever.bat,就可以开启服务器端。

    运行脚本时也可以自行定义防火墙/服务器代理端口的信息,如下:

    如果你想在某个的测试结束后就退出服务器,那么你可以定义jMeter的属性server.exitaftertest = true.

    在非GUI模式下从客户端运行测试,使用如下命令:

    如果属性 jmeterengine.remote.system.exit被设置为true(默认是false),那么jMeter将会在测试运行到最后停止RMI时运行System.exit(0)。

    1.4.6 通过命令行重写属性

    java系统属性和jMeter属性可以通过命令行直接重写(不是通过修改jmeter.properties). 参考如下可选项:

    命令行属性会在启动之前,打印系统开始之后生效。 

    1.4.7 打印日志和报错信息

    3.2版本后,jMeter的打印并不是通过属性(例如:jmeter.properties)配置。它并是通过Apache Log4j 2配置文件来设置的(log4j2.xml) jMeter和一些插件都必须使用SLF4J库。

    一个log4j2.xml的例子,见原文……

    1.4.8 命令行的可选项

    见原文……

    1.4.9 关闭非GUI模式

    2.5.1版本之前,jMeter使用System.exit()来退出命令行模式的测试。但是这个会导致一些问题,jMeter正常完成测试时,就不再触发System.exit()。并且一些严重错误也会触发System.exit()。

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值