jmeter java request需装java什么版本

使用JMeter进行性能测试之Java请求 - 非惟天时,抑亦人谋.
- ITeye博客
博客分类:
看了两篇关于如何用JMeter进行HTTP请求及数据库方面做性能测试的文章(如下两个链接),感受到这款工具的强大和易用。我在这里延续一下,对另一种常用的测试类型"Java请求",做个入门级的介绍。
"Java请求"测试是指通过JMeter工具对Java Class进行压力测试。JMeter可设定测试时的并发线程数、循环次数或测试时长等,模拟出巨大的负载后便可观察在不同压力下程序的强度和分析出整体性能。
一.启动JMeter
http://jmeter.apache.org/download_jmeter.cgi
Linux环境下运行 $安装目录/bin/jmeter.sh
Windows下运行 $安装目录/bin/jmeter.bat
二.编写用例
针对"Java请求"类型的测试,需要基于JMeter测试框架编写用例。
1、新建一个普通的Java工程;
2、将 $JMeter安装目录/lib/ 目录引入工程;
3、新建Java Class,如下的"PerformanceTest ",并继承"AbstractJavaSamplerClient";
代码示例:
import org.apache.jmeter.config.A
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerC
import org.apache.jmeter.protocol.java.sampler.JavaSamplerC
import org.apache.jmeter.samplers.SampleR
* @author xuanyin
public class PerformanceTest extends AbstractJavaSamplerClient {
private static long start = 0;
private static long end = 0;
* 执行runTest()方法前会调用此方法,可放一些初始化代码
public void setupTest(JavaSamplerContext arg0) {
// 开始时间
start = System.currentTimeMillis();
* 执行runTest()方法后会调用此方法.
public void teardownTest(JavaSamplerContext arg0) {
// 结束时间
end = System.currentTimeMillis();
// 总体耗时
System.err.println("cost time:" + (end - start) / 1000);
* JMeter界面中可手工输入参数,代码里面通过此方法获取
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
* JMeter测试用例入口
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult sr = new SampleResult();
sr.sampleStart();
* Start~End内的代码会被JMeter
* 纳入计算吞吐量的范围内,为了使
* 性能结果合理,无关代码不必放此
* True/False可按测试逻辑传值
* JMeter会对失败次数做出统计
sr.setSuccessful(true);
sr.sampleEnd();
} catch (Exception e) {
e.printStackTrace();
4、导出成Jar并置于 $JMeter安装目录/lib/ext/ 下,若有依赖Jar也置于 $JMeter安装目录/lib/ 下;
5、启动或重启JMeter。
三、运行用例
1、主界面左侧“测试计划”,右键菜单-&添加-&Threads(Users)-&线程组;
2、再选中刚才新增的"线程组",右键菜单-&添加-&Sampler-&Java请求;
3、再选中刚才新增的"Java请求",右键菜单-&添加-&监视器-&聚合报告;
4、选择想测试的类名,并在"线程组"选项中输入循环次数及并发线程数;
5、点击菜单栏上"运行"-&启动后便开始运行,在"聚合报告"查看结果数据。
若在"Java请求"选项中未找到测试用例类名: 则请先确认用例是否继承了JMeter框架的基类; 其次保证用例Jar文件在 $安装目录/lib/ext/ 下; 尝试重启JMeter。
如有使用问题,欢迎一起探讨。
养成给代码做性能对比的习惯,是一名合格程序员基本的素质。
浏览 23667
浏览: 95018 次
来自: 杭州
要实现枚举值与数据库表值字段之间的顺利转换,还有一种变通方法。 ...
代码:
ObjectMapper mapper = new O ...
请问ObjectMapper的writevalue方法是线程安 ...
JSON转POJO时,若JSON中的某个字段在POJO中未定义 ...
楼主这篇文章非常不错哦,正在选择一个json-lib,有数据有 ...Jmeter执行Java请求
Jmeter作为一款简洁的性能测试工具,原理就是多线程执行,功能看似没有loadrunner那么强大,但是在满足简单需求中还是起到非常大的作用(loadrunner的场景玩起来就跟玩艺术一样),基本上Jmeter可以满足大部分测试需求。在刚解除Jmeter后,发现跟soapui功能可以媲美,只是说soapui在webserver方面比较有名气,而Jmeter大部分人都以性能工具拿来与Loadrunner相比,而忽视了Jmeter在接口测试的强大。当然每款工具都有存在的价值,也有优缺点,还是那句话,满足你需求的都是好工具。
在使用Jmeter后,接口方面跟soapui一样使用的都是httpclient那套框架去支撑,而又是纯java编写,并且开源,所以想到自己编写一些简单脚本来测试一下java方法的实现。
1.安装Jmeter,这里不多说
2.安装eclipse并打开,新建项目,把Jmeter的lib\ext目录下的ApacheJMeter_java.jar、ApacheJMeter_core.jar文件添加进该项目的Build
3.新建包-新建class文件,先写一个测试方法,具体查看下面实例
实例:测试方法类
public&class&TestDemo&{
&&&&public&int&Tdemo(int&a,int&b){
&&&&&&&&int&sum&=&0;
&&&&&&&&sum&=&a+b;
&&&&&&&&return∑
4.再新建一个class文件,继承AbstractJavaSamplerClient,并重写,具体查看下面实例
public Arguments getDefaultParameters();设置可用参数及的默认值,设置了在Jmeter中则要输入。
public void setupTest(JavaSamplerContext arg0):每个线程测试前执行一次,做一些初始化工作;
public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数可以获得参数值;
public void teardownTest(JavaSamplerContext arg0):测试结束时调用;
实例:Jmeter请求
public&class&TestLength&extends&AbstractJavaSamplerClient{
&&&&private&SampleResult&results;&
&&&&private&String&a;
&&&&private&String&b;
&&&&private&String∑&&&&
&&//设置可用参数及的默认值;
&&&&public&Arguments&getDefaultParameters()&{
&&&&&&&&Arguments&params&=&new&Arguments();
&&&&&&&&params.addArgument("num1","");
&&&&&&&&params.addArgument("num2",""&);
&&&&&&&&return&params;
&&&&//初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法
&&&&public&void&setupTest(JavaSamplerContext&arg0)&{
&&&&&&&&&results&=&new&SampleResult();&&&&&&
&&&&//测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
&&&&public&SampleResult&runTest(JavaSamplerContext&arg0)&{
&&&&&&&&&a&=&arg0.getParameter("num1");
&&&&&&&&&b&=&arg0.getParameter("num2");
&&&&&&&&&results.sampleStart();&&&&&//定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
&&&&&&&&&try{
&&&&&&&&&&&&&TestDemo&test&=&new&TestDemo();
&&&&&&&&&&&&&sum&=&String.valueOf(test.Tdemo(Integer.parseInt(a),&Integer.parseInt(b)));
&&&&&&&&&&&
if&(sum&!=&null&&&&sum.length()&&&0)&{
&&&&&&&&&&&&&&&&&results.setResponseData("结果是:"+sum,&null);
&&&&&&&&&&&&&&&&&results.setDataType(SampleResult.TEXT);
&&&&&&&&&&&&&}//会显示在结果树的响应数据里&&
&&&&&&&&&&&&&System.out.println(sum);//会输出在Jmeter启动的命令窗口中
&&&&&&&&&&&&&results.setSuccessful(true);
&&&&&&&&&}catch(Throwable&e){
&&&&&&&&&&&&&results.setSuccessful(false);
&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&}finally{&&&&&&&&&&&&
&&&&&&&&&&&&&results.sampleEnd();&&&&&//定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction&&&&&&&&
&&&&&&&&&}
&&&&&&&return&results;
&&&&//结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法
&&&&public&void&teardownTest(JavaSamplerContext&arg0)&{
5.使用eclipse打成jar包,选择File--&Export--&选择jar
file,然后选择输入路径完成就OK了;
6.将此jar包放入Jmeter的\lib\ext目录下;
7.打开JMeter;
8.创建线程组、Java
Request、查看结果树,进行测试;可以看到脚本中System.out.println()输出在命令窗口中
9.通过以上方法的学习,在以后则可以直接测试开发写好的方法
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 jmeter测试java接口 的文章

 

随机推荐