一個使用Jmeter做接口性能測試的實戰案例


1 安裝並配置Jmeter

Jmeter的安裝不在這里闡述,安裝步驟非常簡單。

直接進入主題

1.1 數據庫連接配置

由於測試過程需要調用數據庫獲取響應部署數據,因此需要先建立與數據庫的連接。 如果不涉及數據操作,可以跳過此步驟。

步驟1:打開jmeter開源性能測試工具,測試計划->添加線程組

             

步驟2:添加jdbc request請求 –>添加JCBC connection Configuration 數據庫連接配置

 

步驟3:配置jdbc request請求,添加sql查詢語句

 舉例Sql語句:

select DISTINCT A.XX,A.XX,B.XX,A.XXX

from Table A

left join

(select XX,XX,XX,XXX from  TableB) as B

on A.XXX=B.XXX

where XX like 'KKK%';

步驟4:添加后置處理器  JDBC Request->后置處理器-> BeanShell PostProcessor

對選擇出來的數據進行參數化處理。

import java.util.ArrayList;
String count_DB = vars.get("var_#");
int count = Integer.parseInt(count_DB);
ArrayList 變量ANoArray = new ArrayList();
ArrayList 變量BNoArray = new ArrayList();
for(int i=0;i<count;i++){
    String 變量A= String.valueOf(vars.getObject("result").get(i).get("變量A"));
    String 變量B= String.valueOf(vars.getObject("result").get(i).get("變量B"));
    變量ANoArray.add(變量A);
    變量BNoArray.add(變量B);
}

vars.putObject("變量ANoArray",變量ANoArray);
vars.putObject("變量BNoArray",變量BNoArray);

 

1.2http請求配置

步驟1:增加循環循環控制器  線程組->邏輯控制器->循環控制器

步驟2:添加自增計數器

步驟3:添加Constant Throughput Timer (常數吞吐量定時器)

 Target throughput(in samples per minute):目標吞吐量。注意這里是每分鍾發送的請求數,因此,對應測試需求中所要求的1000/s,這里的值應該是 60000。

 

注意:

Constant Throughput Timer只有在線程組中的線程產生足夠多的request 的情況下才有意義,因此,即使設置了Constant Throughput Timer的值,也可能由於線程組中的線程數量不夠導致沒有生效。實測,一個線程可以啟動10-20的並發,那么一個可設置300個線程左右。

 

步驟4:添加http請求

 注意json格式的需要增加 http信息頭管理器,Content-Type設置為application/json。

 http的詳細請求中根據業務的接口報文來添加數據,主要添加如下:

 

請求地址

URL

端口

請求報文

 

步驟5:添加前置處理器  http請求->前置處理器-> BeanShell PreProcessor

 根據jdbc請求出來的數據,參數化,實現批量數據操作

import java.util.ArrayList;
String Counter_DB = vars.get("Counter");
int Counter_1 = Integer.parseInt(Counter_DB);
int Counter = Counter_1-1;
log.info("……………Counter………"+Counter);
ArrayList 變量ANoArray = vars.getObject("變量ANoArray");
ArrayList 變量BNoArray = vars.getObject("變量BNoArray");
String 變量A= 變量ANoArray.get(Counter);
String 變量B= 變量BNoArray.get(Counter);
vars.put("變量A",變量A);
vars.put("變量B",變量B);
log.info("……………變量A………"+變量A);
log.info("……………變量B………"+變量B);

 

步驟6:添加BeanShell Sampler實現請求數據的MD5加密

如果請求中的數據涉及md5加密,Jmeter自身沒有實現MD5加密的函數,可以自定義一個jar包

參考:http://blog.csdn.net/yuanwq2012/article/details/51252649

注: MD5加密包放到此目錄下,重啟Jmeter即可生效

apache-jmeter-3.2\apache-jmeter-3.2\lib

 

3.3添加監控數據

   在服務器上啟動agent,作為服務端:

cd JmeterAgent/

 ./startAgent.sh –sysinfo

 

Jmeter 作為客戶端連接服務器:

首先,需要獲取JMeterPlugins-Standard-1.4.0插件包,並解壓到本地任一目錄下如D:\software\apache-jmeter-3.2\apache-jmeter-3.2\lib\ext目錄下,重啟Jmeter生效。

 

3.4 性能測試執行&數據收集

點擊Jmeter的啟動按鈕,啟動測試,測試過程注意觀察請求結果是否有報錯。測試結果如果不達標,則需要進行性能調優。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM