`

jmeter's java request test plan

阅读更多

做了个简单的jmeter java request 测试,

public class SimpleTest implements JavaSamplerClient {
 private SampleResult results;
 private String testStr;

 // 设置传入的参数,可以设置多个,已设置的参数会显示到Jmeter的参数列表中
 public Arguments getDefaultParameters() {
  Arguments params = new Arguments();
  params.addArgument("testStr", ""); // 定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值
  System.out.println("getDefaultParameters:"+testStr);
  return params;
 }

 // 测试执行的循环体,根据线程数和循环次数的不同可执行多次,类似于LoadRunner中的Action方法
 public SampleResult runTest(JavaSamplerContext arg0) {
  results.setSamplerData(testStr);
  int len = 0;
  results.sampleStart(); // 定义一个事务,表示这是事务的起始点,类似于LoadRunner的lr.start_transaction
  try {
   Thread.currentThread().sleep(1000);
  } catch (InterruptedException e) {
   e.printStackTrace();
  }
  len = testStr.length();
  results.sampleEnd(); // 定义一个事务,表示这是事务的结束点,类似于LoadRunner的lr.end_transaction
  if (len < 5) {
   System.out.println(testStr);
   results.setSuccessful(false); // 用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
  } else
   results.setSuccessful(true);
  System.out.println("runTest:"+testStr);
  return results;
 }

 // 结束方法,实际运行时每个线程仅执行一次,在测试方法运行结束后执行,类似于LoadRunner中的end方法
 public void teardownTest(JavaSamplerContext arg0) {
 }

 // 初始化方法,实际运行时每个线程仅执行一次,在测试方法运行前执行,类似于LoadRunner中的init方法
 public void setupTest(JavaSamplerContext arg0) {
  results = new SampleResult();
  testStr = arg0.getParameter("testStr", "");
  if (testStr != null && testStr.length() > 0) {
   results.setSamplerData(testStr);
  }
//  System.out.println("setupTest:"+testStr);
  System.out.println("current thread | current instance address  "+Thread.currentThread().getName() + " | " +this);
 }

}

 

背景: 2 threadgroup , forever 1

运行后结果:

current thread | current in
r.test.SimpleTest@13e7ff6
current thread | current in
r.test.SimpleTest@944d75

 

 

明显:jmeter 对测试类 by thread 做了两个instance

 

要测并发,得让多线程JavaSamplerClient 子类实例 使用同一个service/action/...的实例,基于此才能做并发测试.

揣测 junit request 也是如此.

 

spring ,seam 框架该如何做jmeter测试呢...? 是否有测试用例编程模型.

得好好看看jmeter core 才行.

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics