jmeter5测试JAVA程序,JMeter学习(十七)JMeter测试Java 目的:对Java程序进行测试

目的:对Java程序进行测试html

目录java

1、核心步骤web

2、实例apache

3、JMeter Java Sampler介绍服务器

4、自带Java Request Samplerapp

1、核心步骤eclipse

1.建立一个Java工程;性能

2.将JMeter的lib目录下的jar文件添加进此工程的Build Path;测试

3.建立一个类并实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写;ui

public Arguments getDefaultParameters();设置可用参数及的默认值;

public void setupTest(JavaSamplerContext arg0):每一个线程测试前执行一次,作一些初始化工做;

public SampleResult runTest(JavaSamplerContext arg0):开始测试,从arg0参数能够得到参数值;

public void teardownTest(JavaSamplerContext arg0):测试结束时调用;

4.Export为Runnable Jar File;

5.将此jar包放入JMETER_HOME\lib\ext目录;

6.以管理员身份打开JMeter;

7.建立线程组、Java Request、查看结果树,进行测试;

2、实例

1.在eclipse里面新建一个工程:JavaForJMeter

2.把{Jmeter_home}\lib目录下的全部jar添加进此工程的Build Path;

3.添加类Hello,代码以下:

2048aa4778de430ea4dfd733.html

2048aa4778de430ea4dfd733.html

package com.test.webservice;

public class Hello {

public String sayHello()

{

return "Hello";

}

public String sayHelloToPerson(String s)

{

if(s == null || s.equals(""))

s = "nobody";

return (new StringBuilder()).append("Hello ").append(s).toString();

}

public int sum(int a,int b)

{

return a+b;

}

}

2048aa4778de430ea4dfd733.html

2048aa4778de430ea4dfd733.html

4.添加类perftest,并继承AbstractJavaSamplerClient,并添加代码以下:

注意:System.out等的输出会显示在启动JMeter时的命令窗口内,但过多的输出会影响性能的准确性。

2048aa4778de430ea4dfd733.html

2048aa4778de430ea4dfd733.html

package com.test.webservice;

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

import com.test.webservice.Hello;

public class perftest extends AbstractJavaSamplerClient {

private String a;

private String b;

/** Holds the result data (shown as Response Data in the Tree display). */

private String resultData;

// 这个方法是用来自定义java方法入参的。

// params.addArgument("num1","");表示入参名字叫num1,默认值为空。

//设置可用参数及的默认值;

public Arguments getDefaultParameters() {

Arguments params = new Arguments();

params.addArgument("num1", "");

params.addArgument("num2", "");

return params;

}

//每一个线程测试前执行一次,作一些初始化工做;

public void setupTest(JavaSamplerContext arg0) {

}

//开始测试,从arg0参数能够得到参数值;

public SampleResult runTest(JavaSamplerContext arg0) {

a = arg0.getParameter("num1");

b = arg0.getParameter("num2");

SampleResult sr = new SampleResult();

sr.setSampleLabel( "Java请求哦");

try {

sr.sampleStart();// jmeter 开始统计响应时间标记

Hello test = new Hello();

// 经过下面的操做就能够将被测方法的响应输出到Jmeter的察看结果树中的响应数据里面了。

resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer

.parseInt(b)));

if (resultData != null && resultData.length() > 0) {

sr.setResponseData("结果是:"+resultData, null);

sr.setDataType(SampleResult.TEXT);

}

// System.out.println(resultData);

sr.setSuccessful(true);

} catch (Throwable e) {

sr.setSuccessful(false);

e.printStackTrace();

} finally {

sr.sampleEnd();// jmeter 结束统计响应时间标记

}

return sr;

}

//测试结束时调用;

public void teardownTest(JavaSamplerContext arg0) {

// System.out.println(end);

// System.out.println("The cost is"+(end-start)/1000);

}

// main只是为了调试用,最后打jar包的时候注释掉。

/*

public static void main(String[] args)

{ // TODO Auto-generated method stub

Arguments params = new Arguments();

params.addArgument("num1", "1");//设置参数,并赋予默认值1

params.addArgument("num2", "2");//设置参数,并赋予默认值2

JavaSamplerContext arg0 = new JavaSamplerContext(params);

perftestbbb test = new perftestbbb();

test.setupTest(arg0);

test.runTest(arg0);

test.teardownTest(arg0);

}

*/

}

2048aa4778de430ea4dfd733.html

2048aa4778de430ea4dfd733.html

5.Export为Runnable Jar File:hello.jar

6.将此hello.jar包放入JMETER_HOME\lib\ext目录;

7.打开JMeter,添加线程组,添加Java请求,查看结果树。

4db52334df87337a3c9f0cb28b17379a.png

ef7c6c125c501ff03843466e6f3c74cb.png

3、JMeter Java Sampler介绍

Arguments

getDefaultParameters() 用于获取界面的参数

SampleResult

runTest(JavaSamplerContext context) 相似于LR的Action,result.sampleStart()一个事务开始,result.sampleEnd()一个事务 结束

void

setupTest(JavaSamplerContext context) 初始化方法,相似于LR的init和Junit中的setUp()

void

teardownTest(JavaSamplerContext context) 相似于LR的end和Junit中的tearDown()

执行的前后顺序为:

getDefaultParameters() --> setupTest(JavaSamplerContext context) --> runTest(JavaSamplerContext context) --> teardownTest(JavaSamplerContext context)

经常使用的方法:

①、addArgument("name", "value")    定义参数

②、sampleStart()    定义事务的开始,相似于LR的lr_start_transaction,和LR同样事务间不要放无关代码

③、sampleEnd()    定义事务的结束,相似于LR的lr_end_transaction

④、setSuccessful(true、false)    设置运行结果的成功或失败,Jmeter统计成功失败的次数,在聚合报告中可以体现。

4、自带Java Request Sampler

JMeter默认实现了两个Java Request Sampler:SleepTest Sampler和JavaTest Sampler。

JavaTest Sampler不向服务器发送数据请求,通常被用做调试目的使用。

0d29d0bb82d7d1dda9da707679f51743.png

至此,这已讲解完了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值