如何用jmeter测试本机上的软件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用jmeter测试本机上的软件相关的知识,希望对你有一定的参考价值。

1.打开Java编译器,新建一个项目"TestLength",然后新建一个包"app".2.从Jmeter的安装目录lib/ext中拷贝两个文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"Tester"的项目中,然后引入这两个JAR文件.(具体的引入方法参考各个Java编译器的使用方法)3.在"app"包中新建一个类,名字叫"TestLength",不过这个类要继承"AbstractJavaSamplerClient"类,如果项目引入步骤二中的两个文件,就可以找到"AbstractJavaSamplerClient"类了.4."TestLength"类在继承"AbstractJavaSamplerClient"类的同时也会继承四个方法,分别是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用于设置传入的参数;"setupTest"方法为初始化方法,用于初始化性能测试时的每个线程."runTest"方法为性能测试时的线程运行体;"teardownTest"方法为测试结束方法,用于结束性能测试中的每个线程.5.具体实现代码如下:packageapp;importorg.apache.jmeter.config.Arguments;importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;importorg.apache.jmeter.samplers.SampleResult;importcom.passpod.core.t8.*;/***@author乐以忘忧**TODOTochangethetemplateforthisgeneratedtypecommentgoto*Window-Preferences-Java-CodeStyle-CodeTemplates*/publicclassTestLengthextendsAbstractJavaSamplerClientprivateSampleResultresults;privateStringtestStr;//初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法publicvoidsetupTest(JavaSamplerContextarg0)results=newSampleResult();testStr=arg0.getParameter("testString","");if(testStr!=null&&testStr.length()>0)results.setSamplerData(testStr);//设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中publicArgumentsgetDefaultParameters()Argumentsparams=newArguments();params.addArgument("testStr","");//定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值returnparams;//测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法publicSampleResultrunTest(JavaSamplerContextarg0)intlen=0;results.sampleStart();//定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transactionlen=testStr.length();results.sampleEnd();//定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transactionif(len<5)System.out.println(testStr);results.setSuccessful(false);//用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功elseresults.setSuccessful(true);returnresults;//结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法publicvoidteardownTest(JavaSamplerContextarg0)6.把上面的例子打包,然后把生成的"TestLength.jar"文件拷贝到Jmeter的安装目录lib/ext下.7.运行Jmeter,添加一个线程组,然后在该线程组下面添加一个Java请求(在Sampler中),在Java请求的类名称中选择咱们刚创建的类"app.TestLength",在下面参数列表的"testStr"后面输入要测试的字符串,然后添加一个监听器(聚合报告),设置一下模拟的用户数就可以测试了.如果测试不成功,Jmeter会在它自己个输出框中抛出这个字符串.通过上面的例子我们可以发现,使用Jmeter自定义Java测试代码,配合Jmeter自带的函数,就可以实现出LoadRunner中"JavaVuser"协议的绝大多数功能,而且是没有用户数限制和完全免费的(嘿嘿).上面的例子非常简单,而且没有任何实际意义,只是一个简单的Jmeter测试代码示例,用于抛砖引玉,希望大家一起交流,共同进步. 参考技术A ApacheJMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。它可以用于测试静态和动态资源例如静态文件、Java小服务程序、CGI脚本、Java对象、数据库,FTP服务器,等等。JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。JMeter的作用1.能够对HTTP和FTP服务器进行压力和性能测试,也可以对任何数据库进行同样的测试(通过JDBC)。2.完全的可移植性和100%纯java。3.完全Swing和轻量组件支持(预编译的JAR使用javax.swing.*)包。4.完全多线程框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样。5.精心的GUI设计允许快速操作和更精确的计时。6.缓存和离线分析/回放测试结果。一、Jmeter安装总结1、配置Java环境变量时需要注意设置的路径需要和JDK安装的路径一样2、配置Java环境变量时需要注意JDK的版本号3、配置环境变量时多个变量以分号隔开,但是确保是英文输入法的分号二、搭建测试环境总结1、检测负载机是否可以被调用,检测负载机的ip是否能被ping通2、当负载机的ip不能ping通时,有可能是防火墙拦截了,可以检测防火墙是否是启用状态,如果是暂时设置禁用防火墙3、测试的数据调用文件应该放在负载机上,并且在控制中心设置正确的数据访问路径Jmeter测试工具安装步骤:1、安装Jmeter下载Jmeter工具包并把工具包放到C盘下/javase/downloads/index.jsp3、Java环境变量配置桌面上右键选中计算机--->属性--->高级系统设置--->环境变量设置在“系统变量”--->“新建”,在变量名中输入:CLASSPATH,变量值中输入:C:\ProgramFiles\Java\jdk1.6.0_10\lib\dt.JAR;C:\ProgramFiles\Java\jdk1.6.0_10\lib\TOOLS.JAR;C:\ProgramFiles\Java\jdk1.6.0_10\BIN;再按“新建”,在变量名中输入:JAVA_HOME,变量中输入:C:\ProgramFiles\Java\jdk1.6.0_10;修改PATH变量,添加%JAVA_HOME%/bin;然后确定即可4、Jmeter环境变量配置桌面上右键选中计算机--->属性--->高级系统设置--->环境变量设置在“系统变量”--->“新建”,在变量名中输入:JMETER_HOME,变量值中输入:C:\jakarta-jmeter-2.3.4,再修改CLASSPATH变量,变量值中添加%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-1.2.jar;然后确定即可意义1、Label:定义的HTTP请求名称2、Samples:表示这次测试中一共发出了多少个请求3、Average:访问页面的平均响应时间4、Min:访问页面的最小响应时间5、Max:访问页面的最大响应时间6、Error%:错误的请求的数量/请求的总数7、Throughput:每秒完成的请求数8、KB/Sec:每秒从服务器端接收到的数据量 参考技术B 安装环境:

JMeter在Window XP / 2003 / W7 /W8基本都可以运行,前提是要安装好JDK包,JMeter是基于JAVA开发的压力测试软件。该次配置实例是在W8-64位系统中完成。
安装包:
Ø Apache Jmeter 2.10 至2013年11月5日时为最新版本
Ø JDK版本jdk-7u45-windows-x64(下载的时候注意自己系统版本)
下载地址:
Jmeter 2.10 :

JDK :

安装步骤:

安装步骤不做具体介绍,JDK安装下一步,下一步就OK。JMeter不需要安装,压力包解压出来即可使用。

实例环境:

压力测试目标:ECSHOP商场
压力测试目的:测试ECHSOP商场300人同时登陆查看评论时,服务器压力
压力测试脚本设计:
1. 打开ECSHOP登陆页面
2. 输入账户密码登陆ECSHOP
3. 进入用户中心
4. 查看评论
5. 退出ECSHOP管理平台
压力测试预期效果:自己的测试环境,压力测试效果就不做讲解,只对配置步骤讲解。
测试步骤:

脚本录制,JMeter启用WEB代理,浏览器把代理上网设置为JMeter所在的IP地址,自己电脑就是127.0.0.1代理端口默认8080。至于浏览器修改代理上网服务器,不做截图。
下面图片是录制相应的步骤

测试验证脚本

录制完脚本后,运行一次。运行之前添加一个监听器,用于查看脚本运行情况,建议用观察结果树监听器,可以看到来回的HTTP交互,如下图一。

运行,如下图二。

运行完后通过结果树查看脚本运行结果,中间栏为脚本运行请求过的页面,都是绿色表示页面请求和响应都正常。再查看下关键页面的请求和响应参数,
登陆的请求正常,账号songmin密码123456 正常提交,看下响应数据,如下图三。

在响应数据中,看到有登陆成功的关键字。OK 脚本没问题,其他页面不去验证了,测试时,根据测试流程验证关键的几个页面请求和响应数据,是否和正常操作对应,如下图四。

开始测试

添加相关监听器,也就是相应的输出报表,步骤同测试验证脚本。

增加压力测试数据,如下图五。

查看报表,就是所选择的监听器,然后看到每个页面的响应时间,错误率,请求次数等,如下图六。
步骤阅读

如何用jmeter测试关联接口

参考技术A

前面介绍过如何用Jmeter做简单的接口测试,此处一些基础的东西不再赘述,不明白的可以去查看前面的教程。
关联接口适用的场景
比如,有一个打开个人中心的接口,必须得要先登录才能够调用该接口,那么就需要关联接口的调用了,即前一个接口的响应数据,作为后一个接口的入参。

1.测试关联接口最重要就是要使用 正则表达式提取器 (注意大小写问题,尤其是响应结果的参数名称的大小写要和这里提取的保持一致,要不然提取不到)

3.因为笔者提取的这几个字段是使用在header里面的,那么就如图填写,如果你们的接口是把这几个参数放在请求体里面的,那么就同理放在http请求里面。

4.如图配置好,还有其他的基础信息,点击运行,就可以成功调用了,如下图。

以上是关于如何用jmeter测试本机上的软件的主要内容,如果未能解决你的问题,请参考以下文章

如何用Jmeter做接口测试

JMeter学习笔记15-如何用JMeter做接口测试

如何建立和使用Jmeter测试环境

如何用JMeter对MySQL数据库进行压测

如何用jmeter 完成http请求

如何用jmeter测试关联接口