JMeter壓力測試案例大全 之(http測試和socket測試)
1.jmeter安裝
2.資料庫的壓力測試
3. ftp伺服器的壓力測試
4. sftp的壓力測試(缺)
5.http請求的壓力測試
6. socket的壓力測試
7.郵件伺服器測試
7.1基於命令列
7.2基於介面
8.元件介紹
9.1執行緒組
9.2控制器
9.3監聽器
9.4定時器
9.5執行順序
5.http請求的壓力測試(此篇部分參考百度文庫)
(1)新增執行緒組
(5)選擇視覺化介面中左邊樹中的“測試計劃”節點,點選“編輯”選單---> “添 加”--->”執行緒組”,新增一”執行緒組”後,“測試計劃”節點下多了“執行緒組” 節點
(2)新增HTTP請求預設值(用來配置公共引數,
通過下面的步驟來設定HTTP請求預設值:
1.選中視覺化介面中左邊樹的“執行緒組”節點,單擊右鍵,選擇“新增”—〉 “配置元件”—〉“HTTP請求預設值”,點選“HTTP請求預設值”後可視 化介面中左邊樹的“執行緒組”節點下多了“HTTP請求預設值”節點。
2. 設定“HTTP請求預設值”的主要引數:
伺服器名稱或IP:被測試伺服器的ip地址或者名字。在這裡設定為 192.168.10.91
埠號:伺服器的埠號,192.168.10.91機器上的Websphere埠號為9080, 在這設定為9080
協議:傳送測試請求時使用的協議,CSP接受的是http請求
路徑:servlet的路徑。因為效能測試用的servlet
設定後的螢幕截圖如下:
(3)新增HTTP請求
設定HTTP請求:
1.選中視覺化介面中左邊樹的“執行緒組”,單擊右鍵,選擇“新增”—〉 “Sample”—〉“HTTP請求”,點選“HTTP請求”後視覺化介面中左邊樹
的“執行緒組”節點下多了“HTTP請求”節點,如下圖:
2. 設定“HTTP請求”的主要引數:
方法:選擇POST
post方式可以進行引數的新增,對伺服器端傳送引數。
(4)新增監聽器
1.選中視覺化介面中左邊樹的“執行緒組”節點,單擊右鍵,選擇“新增”—〉 “監聽器”—〉“用表格檢視結果”,點選“用表格檢視結果”後視覺化介面 中左邊樹的“執行緒組”節點下多了“用表格檢視結果”節點
2. 設定“用表格檢視結果”的主要引數:
Configure:點選“Configure”按鈕,在彈出的視窗中選中“Save Response Data” 項,以儲存響應資料,如下圖:
檔名:在“檔名”處填寫檔案的地址和名稱,以儲存相關的資料。在此 填寫為“F:\執行緒組.jmx”如下圖:
(5)點選檢視中的“執行”測試即可。
6.socket的壓力測試
(1)socket測試需要寫一個測試jar包。
首先建立一個工程,匯入lib\ext\ApacheJMeter_core.jar,ApacheJMeter_java.jar
然後建立下面的程式碼:(IP和埠可以根據自己的需要修改)
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 java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.*;
/**
*
* @author howsky
*
*/
public class Test extends AbstractJavaSamplerClient {
// Sock begin----------------------------------------------
private Socket sid;
private PrintWriter out;
private BufferedReader in;
private String ip;
private String port;
// Sock end------------------------------------------------
private static String label = "howsky.net";
// 測試結果
private SampleResult sr;
/**
* 初始化
*/
public void setupTest(JavaSamplerContext arg0) {
System.out.println("setupTest");
}
/**
* 設定請求的引數
*/
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("ip", "127.0.0.1");
params.addArgument("port", "8888");
return params;
}
/**
* 執行過程
*/
public SampleResult runTest(JavaSamplerContext arg0) {
ip = arg0.getParameter("ip");
port = arg0.getParameter("port");
sr = new SampleResult();
sr.setSampleLabel(label);
try{
sr.sampleStart(); //記錄程式執行時間,以及執行結果
//傳送資料
String msg = "welcome to howsky.net";
System.out.println("begin");
sendMsg(ip, Integer.parseInt(port), msg);
sr.setSuccessful(true);
System.out.println("end");
}catch(Throwable e){
sr.setSuccessful(false);
}finally{
sr.sampleEnd();
}
return sr;
}
/**
* 結束
*/
public void teardownTest(JavaSamplerContext arg0) {
}
/**
* 傳送訊息
* @param ip
* @param port
* @param msg
* @throws Exception
*/
private void sendMsg(String ip, int port, String msg) throws Exception{
sid = new Socket(ip, port);
in = new BufferedReader(new InputStreamReader(sid.getInputStream()));
out = new PrintWriter(sid.getOutputStream(), true);
out.println(msg);
in.readLine();
System.out.println("success");
}
}
接著點選專案右鍵Export->jar file->命名.jar
最後將jar包放到lib\ext\下,啟動JMeter。
(2)寫socket伺服器端程式碼如下:
public class SocketSer
{
public static void main(String[] args)
{
ServerSocket ss=null;
OutputStream os=null;
try {
ss = new ServerSocket(8888);
while(true){
Socket s=ss.accept();
String ip=s.getInetAddress().getHostName();
os=s.getOutputStream();
os.write("ServerSocket回覆請求".getBytes());
os.flush();
s.close();
System.out.println(ip+"---"+new String("^_^成功完成一次請求"));
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//a574258039的部落格
然後呼叫該段程式碼。
(3)JMeter中建立執行緒組。設定執行緒數,Ramp-up Period,迴圈次數。
(4)JMeter中建立java請求預設值,如圖:
然後選擇要測試的類:如圖
(5)JMeter中建立java請求:
配置基本和java請求預設值一樣。
如圖:
(6)建立監聽:檢視結果樹
結果如下:
命令列輸出: