您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 > Jmeter
Jmeter《Java請求》使用總結(jié)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/11/4 11:20:08 ] 推薦標(biāo)簽:

  3. 有了發(fā)送請求的客戶端,那如何能夠更簡單的實現(xiàn)一個協(xié)議好讓客戶端發(fā)送,再貼一段代碼^_^:
1 package tea.client.network;
2
3 import org.apache.jmeter.config.Arguments;
4 import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
5 import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
6 import org.apache.jmeter.samplers.SampleResult;
7 import com.google.protobuf.InvalidProtocolBufferException;
8 import com.google.protobuf.MessageLite;
9
10 /**
11  * @author Teaey
12  * @creation 2012-8-25
13  */
14 public abstract class BaseSample extends AbstractJavaSamplerClient
15 {
16     public static final String PARAM_IP   = "ip";
17     public static final String PARAM_PORT = "port";
18     public static final String VAR_IP     = "${ip}";
19     public static final String VAR_PORT   = "${port}";
20     protected BaseClient       client;
21     public void addParameter(Arguments params)
22     {
23     }
24     /**
25      * Jmeter獲取消息參數(shù),默認(rèn)配置ip和port兩個參數(shù)
26      * 如果子類有更多參數(shù),調(diào)用super.getDefaultParameters()獲取Arguments后,繼續(xù)設(shè)置其他方法
27      */
28     @Override
29     public Arguments getDefaultParameters()
30     {
31         System.out.println("1.getDefaultParameters");
32         Arguments params = new Arguments();
33         params.addArgument(PARAM_IP, VAR_IP);
34         params.addArgument(PARAM_PORT, VAR_PORT);
35         addParameter(params);
36         return params;
37     }
38     /**
39      * runTest的前置方法
40      */
41     @Override
42     public void setupTest(JavaSamplerContext context)
43     {
44         System.out.println("2.setupTest:" + context.containsParameter(PARAM_IP));
45         String ip = context.getParameter(PARAM_IP);
46         String port = context.getParameter(PARAM_PORT);
47         this.client = NetworkClientHolder.getClient(ip, port);
48         System.out.println("thread--->" + Thread.currentThread().getId() + " client--->" + client);
49     }
50     /**
51      * Jmeter調(diào)用,用于實際的測試
52      */
53     @Override
54     public SampleResult runTest(JavaSamplerContext context)
55     {
56         SampleResult sample = getSample();
57         sample.sampleStart();
58         try
59         {
60             MessageLite response = doTest();
61             String msg = response == null ? "" : response.toString();
62             sample.setResponseMessage(msg);
63             sample.setSuccessful(true);
64         } catch (Exception e)
65         {
66             sample.setSuccessful(false);
67             e.printStackTrace();
68         } finally
69         {
70             sample.sampleEnd();
71         }
72         return sample;
73     }
74     /**
75      * 獲取本Sample的標(biāo)簽,子類實現(xiàn)
76      */
77     public abstract String getLabel();
78     /**
79      * 獲取一個帶標(biāo)簽的Sample
80      */
81     public SampleResult getSample()
82     {
83         SampleResult sample = new SampleResult();
84         sample.setSampleLabel(getLabel());
85         return sample;
86     }
87     /**
88      * Jmeter調(diào)用,用于
89      */
90     @Override
91     public void teardownTest(JavaSamplerContext context)
92     {
93         System.out.println("4.teardownTest");
94     }
95     /**
96      * 需實現(xiàn),具體測試的方法,調(diào)用client的send/sendWithBack發(fā)送請求
97      * 如無返回,放回null即可
98      */
99     public abstract MessageLite doTest() throws InvalidProtocolBufferException;
100 }
  好的,這里封裝了下AbstractJavaSamplerClient,每個消息默認(rèn)包含ip和port參數(shù),這可以再jmeter的用戶變量中定義好。為了方便大家添加消息的參數(shù),這里實現(xiàn)了空的

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd