消息关闭
    暂无新消息!
小白求问大神:
Jmeter Java请求线程不会自动退出,点击停止也不行,一定要关了程序才可以,就像下图那样



我自己也试过设置内存,从512m设置成1024m,还是不行,再设置大点就直接报错打不开了

另外也看到有人说关于线程太多,要搞分布式,但是我只设置了50个线程,不会多吧

附上测试代码

//日志上传服务
package test;

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 test.Interfaceservice;
import test.UpdateLog;

public class Launcher1 extends AbstractJavaSamplerClient {


private static boolean res;


/**
 * JMeter界面中展示出此方法所设置的默认参数。
 * 
 * @return
 */
public Arguments getDefaultParameters() {

Arguments args = new Arguments();

args.addArgument("TERMINAL_ID", "0001");
args.addArgument("url", "http://192.168.2.38:7996/LogService");
return args;
}

/**
 * 执行runTest()方法前会调用此方法,可放一些初始化代码
 */

public void setupTest(JavaSamplerContext context) {



}

/**
 * 执行runTest()方法后会调用此方法,可放一些资源释放代码
 */

public void teardownTest(JavaSamplerContext context) {


}


/**
 * 性能测试时的线程运行体,执行的业务方法放在这里。
 */
public SampleResult runTest(JavaSamplerContext context) {

// 创建SampleResult对象,用于记录执行结果的状态,并返回
SampleResult sampleResult = new SampleResult();

// 获取JMeter中输入的用户参数
String TERMINAL_ID = context.getParameter("TERMINAL_ID");
String url = context.getParameter("url");


try{
// 开始
sampleResult.sampleStart();

res=UpdateLog.UpdateLog(TERMINAL_ID,url);

if(res=true){
sampleResult.setSuccessful(true);
}else{
sampleResult.setSuccessful(false);
}

}catch (Exception e) {
sampleResult.setSuccessful(false);
e.printStackTrace();
// TODO: handle exception
}finally{
// 结束
sampleResult.sampleEnd();
}


// 暂停
// sampleResult.samplePause();

// 重启
// sampleResult.sampleResume();


// 返回
return sampleResult;
}
}


public class UpdateLog {
    public static boolean UpdateLog(String TERMINAL_ID, String url) {
     boolean res=false;
        try { 
               String buffer1 ="123123213";
         byte[] buffer = buffer1.getBytes();
         HessianProxyFactory factory = new HessianProxyFactory();
ILogService logServiceObject = (ILogService) factory.create(ILogService.class, url);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
logServiceObject.UploadLogFile(TERMINAL_ID, buffer,df.format(new Date()) + "异常日志");

        
             res=true;

        }
        catch (Exception e) {
            System.out.print("异常信息:" + e);
            res=false;
        }
return res;
    }
}


1个回答

︿ 0
补充下,当我将服务端程序关闭之后,线程就停了,但是这个服务端是没有崩溃的,如果我单单用代码再调几次也是没有问题的