jmeter单独jar包测试
上一篇 / 下一篇 2014-03-21 16:01:16 / 个人分类:Jmeter
引用自定义jar包(求个税)、结合eclipse编码
编码时需要引入的jmeter相关jar包在之前日志中说明过,此处只贴出代码,仅供参考。以下实现的是个税的简单计算,在界面输入工资总额和扣除的五险一金,计算个税和所得工资。
主要步骤:
1.导入Jmeter jar包,继承AbstractJavaSamplerClient 类,并实现其runTest方法。
首先设置需要传入的参数key(addArgument)
然后从获取从界面传入的参数值value(getParameter),调用计算方法,就可以得出最后结果。
2.打包为jar包,粘贴到相应位置,重启jmeter,新建线程组--java请求,选择对应的jar包,添加监听器查看计算结果。
packagecom;
importorg.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
importorg.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
importorg.apache.jmeter.samplers.SampleResult;
importorg.apache.jmeter.config.Arguments;
publicclassExampleextendsAbstractJavaSamplerClient {
privateSampleResultresult;
privateStringtotal;
privateStringwxyj;
privateStringsnum;
/**
*线程执行循环体,根据jmeter的设置运行
*/
publicSampleResult runTest(JavaSamplerContext arg0) {
//TODOAuto-generated
method stub
/**
*step1:征税额:计算(应发工资-五险一金-起征点)
step2:判断征税额所属级别确定税率和速算扣除数
step3:计算个税
*/
result=newSampleResult();
result.sampleStart();
doublecount = Integer.parseInt(total) - Integer.parseInt(wxyj) - Integer.parseInt(snum);
doubleresultnum= chooseLevel(count);
doublewage = Integer.parseInt(total) - Integer.parseInt(wxyj) -resultnum;
System.out.println("个税:"+resultnum);
System.out.println("实际工资:"+wage);
result.sampleEnd();
result.setSuccessful(true);
result.setSamplerData("工资:"+wage+"\r\n"+"个税:"+resultnum);
returnresult;
}
/***
*设置需要传入的参数,会显示在jmeter界面中
*/
publicArguments getDefaultParameters() {
//设置需要传入的值:key
Arguments ag =newArguments();
ag.addArgument("所在城市:","深圳");
ag.addArgument("起征点:","3500");
ag.addArgument("总额:","");
ag.addArgument("扣除五险一金:","");
returnag;
}
/***
*初始化方法,在runtest前执行
*/
publicvoidsetupTest(JavaSamplerContext context) {
//获取jmeter中传入的值:value
//result =new SampleResult();
total=context.getParameter("总额:");
wxyj=context.getParameter("扣除五险一金:");
snum=context.getParameter("起征点:");
}
/***
*结束方法,在runtest运行完成后执行
*/
publicvoidteardownTest(JavaSamplerContext context) {
}
publicdoublechooseLevel(doublecount){
if(count<=1500){
returncount-30;
}elseif(count>1500 && count<=4500){
return(count*0.1)-105;
}elseif(count>4500 && count<=9000){
return(count*0.2)-555;
}elseif(count>9000 && count<=35000){
return(count*0.25)-1005;
}elseif(count>35000 && count<=55000){
return(count*0.30)-2755;
}elseif(count>55000 && count<=80000){
return(count*0.35)-5505;
}elseif(count>80000){
return(count*0.45)-13505;
}else
return-1;
}
}
TAG: