标签:
Jmeter 简易使用(网上有很多图片,教程,此处 只是简单 描述一下):
Jmeter 软件使用,首先 创建一个 测试计划,在该 测试计划上右键 添加- ->Threads(Users) --> 线程组
然后在 线程组上 右键--> 添加-->Sampler-->Http 请求 。
在 Http 请求中配置 响应的信息,保存即可
然后需要创建响应的 结果树,创建步骤:(在 该 线程组上 右键,添加 -->监听器-->查看结果树 )
可根据个人需求,自行添加 监听器。
Jmeter JAVA 脚本 使用 01:
使用 个人自定义的java脚本进行 测试。
ApacheJMeter_core.jar
ApacheJMeter_java.jar
这两个包 到 java项目中。
2.创建测试类入口 implements AbstractJavaSamplerClient ,重写其内部的 方法即可。
此处贴出 Java 请求 类以供参考:
1 import java.io.ByteArrayOutputStream; 2 import java.io.IOException; 3 import java.io.InputStream; 4 import java.io.UnsupportedEncodingException; 5 import java.net.URI; 6 import java.net.URISyntaxException; 7 import java.util.Arrays; 8 import java.util.HashMap; 9 import java.util.List; 10 11 import org.apache.commons.httpclient.HttpClient; 12 import org.apache.commons.httpclient.HttpConstants; 13 import org.apache.commons.httpclient.HttpException; 14 import org.apache.commons.httpclient.NameValuePair; 15 import org.apache.commons.httpclient.methods.PostMethod; 16 import org.apache.jmeter.config.Argument; 17 import org.apache.jmeter.config.Arguments; 18 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; 19 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; 20 import org.apache.jmeter.samplers.SampleResult; 21 22 import com.leo.utils.Constants; 23 import com.leo.utils.HttpBase; 24 25 @SuppressWarnings({ "deprecation", "unused" }) 26 public class TestLogin extends AbstractJavaSamplerClient { 27 28 public SampleResult runTest(JavaSamplerContext arg0) { 29 SampleResult result = new SampleResult(); 30 HashMap<String, Object> hashMap = new HashMap<>(); 31 hashMap.put("size", "10"); 32 result.sampleStart(); 33 result.setRequestHeaders(hashMap.toString()); 34 result.setDataEncoding("UTF-8"); 35 HttpClient client = new HttpClient(); 36 PostMethod postMethod = null; 37 postMethod = new HttpBase(true, false).createJson_hm( 38 Constants.HOME_GOODS_URL, hashMap); 39 String body = null; 40 postMethod.addRequestHeader("Content-Type", "application/json"); 41 for (int i = 0; i < postMethod.getParameters().length; i++) { 42 NameValuePair pair = postMethod.getParameters()[i]; 43 result.setRequestHeaders(pair.getName() + "::" + pair.getValue()); 44 } 45 try { 46 int statusCode = client.executeMethod(postMethod); 47 if (statusCode == 200) { 48 InputStream in = postMethod.getResponseBodyAsStream(); 49 body = ToString(in); 50 result.setSuccessful(true); 51 result.setResponseData(body); 52 } else { 53 result.setSuccessful(false); 54 result.sampleEnd(); 55 } 56 } catch (HttpException e) { 57 e.printStackTrace(); 58 } catch (IOException e) { 59 e.printStackTrace(); 60 } 61 result.setResponseMessage(body); 62 result.setSuccessful(true); 63 result.sampleEnd(); 64 return result; 65 } 66 67 private String ToString(InputStream in) throws IOException { 68 // TODO Auto-generated method stub 69 ByteArrayOutputStream outStream = new ByteArrayOutputStream(); 70 byte[] data = new byte[128]; 71 int count = -1; 72 while ((count = in.read(data, 0, 128)) != -1) 73 outStream.write(data, 0, count); 74 75 data = null; 76 return new String(outStream.toByteArray()); 77 } 78 79 @Override 80 public void setupTest(JavaSamplerContext context) { 81 super.setupTest(context); 82 Arguments arguments= getDefaultParameters(); 83 84 85 } 86 87 @Override 88 public void teardownTest(JavaSamplerContext context) { 89 // TODO Auto-generated method stub 90 super.teardownTest(context); 91 92 } 93 }
其中 的SampleResult 可用来打印显示 信息: 譬如:
所以 需要 对 SampleResult 中 的 信息进行设定。
标签:
原文地址:http://www.cnblogs.com/leov1/p/5442330.html