Jmeter(1):使用TCP取樣器與socket介面進行簡單通訊
一個小任務:伺服器與客戶端連線,每次傳送50個隨機生成的字元,兩秒傳送一次
失敗過太多次,然後昨晚終於跑通了,心情激動,於是清均第一篇部落格就誕生了。
之前不瞭解jmeter,想過單純用java編寫伺服器和客戶端,但程式碼多。然後老師介紹了jmeter。還用過tomcat做接收端,但試了兩天都不行。
最後成功的方法:
用java寫伺服器,jmeter模擬客戶端。
先介紹java寫伺服器這方面,仿照教材寫了一個簡單的伺服器。
1 import java.net.*; 2 import java.io.*; 3 4 public class ServerSocketTest { 5 6private BufferedReader reader; 7private ServerSocket server; 8private Socket socket;//建立三個物件,伺服器,套接字,還有用來讀取的reader 9 10void getserver() { 11try{ 12server = new ServerSocket(8055);//不能重複建立port一樣的ServerSocket,否則會報錯 13System.out.println("伺服器套接字已經建立成功"); 14while(true) {//true的意思是套接字是連線狀態 15System.out.println("等待客戶機的連線"); 16socket = server.accept();//等待客戶機的連線,若連線,則建立一套接字 17reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); 18getClientMessage(); 19 20} 21}catch (Exception e) { 22e.printStackTrace(); 23} 24} 25 26private void getClientMessage() { 27//獲取客戶端資訊 28try{ 29 30System.out.println("客戶機:"+reader.readLine());//很重要的一個方法,獲取客戶端資訊 31 32}catch (Exception e) { 33e.printStackTrace(); 34} 35 36//接收到資訊就關閉 37try{ 38 39if (reader !=null) { 40reader.close(); 41} 42if (socket !=null) { 43socket.close(); 44} 45 46}catch (IOException e) { 47e.printStackTrace(); 48} 49} 50 51public static void main(String[] args) { 52ServerSocketTest tcp = new ServerSocketTest(); 53tcp.getserver(); 54 55} 56 57 }
啟動這個類的main函式,就相當於啟動了這個伺服器。如下圖所示。

Jmeter部分:
Jmeter的下載安裝配置我就不詳細介紹了,網上可以找到很多教程。
開啟bin資料夾,開啟名為ApacheJmeter的jar包。等待jmeter啟動。
會看到一個測試計劃,可以重新命名。
右鍵測試計劃,新建執行緒組——右鍵執行緒組--新增--sampler--tcp取樣器——右鍵tcp取樣器,新增監聽器。
一個框架大概就做好了。
線上程組裡設定執行緒數,總時間和迴圈次數,我分別設定的是4,8,1
在tcp取樣器中新增伺服器的ip地址和埠號,設定連線和響應時間。
點選左上角選項——函式助手對話方塊——選擇功能__RandomString——長度填50,下一行輸入生成字串的範圍。如1234567890qingjun,再下一行不用填。
——點選生成,可以拷貝函式到tcp取樣器要傳送的文本里,然後按回車空一行,不然傳送不成功。
點選右上角的黃色警示圖示可以看到jmeter執行情況。
點選綠色三角啟動,或者左上角執行--啟動。
jmeter:
結果樹:綠色√表示成功了。
彙總報告:
伺服器顯示:
由簡入繁,但最後明白了大道至簡。總之第一步成功了。
開心。
接下來的學習總結還會發布在部落格園,希望自己能堅持下去。