使用Loadrunner進行http接口壓力測試


業務描述:

在業務系統里進行查詢操作,查詢的結果是通過請求http接口,從系統中處理並將結果以json字符串返回。

使用Loadrunner對此類接口進行壓力測試並記錄相關的性能指標數據:

一.安裝Loadrunner

本次測試過程使用Loadrunner 11.0版本。安裝Loadrunner過程詳見......

二.部署環境

1.接口服務器一台;

2.用於運行Loadrunner的壓力測試機1台或N台 ,在條件允許下,盡可能提供高配置的CPU 和內存。

3.接口服務器和壓力測試機建議應部署於同一個局域網內,否則測試過程和結果將受到網絡帶寬因素的影響無法順利進行。

 三.編寫測試腳本

方法一. 通過java編寫測試類,以jar包的方式引入Loadrunner進行測試。

優點:便於解析接口響應結果,同時避免由於LR腳本編寫不規范或配置問題,導致測試過程引發的未知錯誤。

條件:運行loadrunner的機器需要安裝jdk1.6的版本。

1.編寫java測試類: CTLPTest.java,如下代碼

 1 package com;
 2 
 3 import java.io.InputStream;
 4 import java.net.HttpURLConnection;
 5 import java.net.URL;
 6 import java.util.Random;
 7 
 8 public class CTLPTest
 9 {
10   public static void main(String[] args)
11   {
12     CTLPTest lbs = new CTLPTest();
13     String ltpUrl = lbs.ltpRequestUrl();
14     System.out.println(ltpUrl);
15     System.out.println(lbs.ltpRequest(ltpUrl));
16   }
17 
18   public int ltpRequest(String ltpRequestUrl)
19   {
20     int returnCount = -1;
21     try
22     {
23       URL url = new URL(ltpRequestUrl);
24       //http連接
25       HttpURLConnection http = (HttpURLConnection)url.openConnection();
26       http.setUseCaches(false);
27       http.connect();
28       //獲取http響應流
29       InputStream in = http.getInputStream();
30       //解析響應流
31       byte[] b = new byte[in.available()];
32       in.read(b);
33       //將響應流轉換成字符串
34       String res = new String(b);
35       //根據實際情況,判斷響應結果,並設置返回值
36       int of = res.indexOf("sucess");
37       if (of < 0) {
38         returnCount = -1;
39       } else {
40          returnCount = 1;
41       }
42     } catch (Exception e) {
43       returnCount = -1;
44     }
45     return returnCount;
46   }
47 
48   public String ltpRequestUrl() {
49     StringBuilder param = new StringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi=");
50     param.append("userid-1");
51     param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");
52     return param.toString();
53   }
54 }
View Code

2.將測試類導出為jar包 : LTPRequest.jar
過程略.

3.Loadrunner創建java測試類

圖1:

                                                                                  

 圖2:創建java協議腳本1

 

 圖3:創建java協議腳本2

 

 

圖4:創建java協議腳本3

 

圖5:設置環境變量

 

圖6:設置安裝的jdk位置目錄

 

圖7:導入jar包

 

圖8:編寫腳本內容

 1 package com;
 2 
 3 import java.io.InputStream;
 4 import java.net.HttpURLConnection;
 5 import java.net.URL;
 6 
 7 public class CTLPTest
 8 {
 9   public static void main(String[] args)
10   {
11     CTLPTest lbs = new CTLPTest();
12     String ltpUrl = lbs.ltpRequestUrl();
13     System.out.println(ltpUrl);
14     System.out.println(lbs.ltpRequest(ltpUrl));
15   }
16 
17   public int ltpRequest(String ltpRequestUrl)
18   {
19     int returnCount = -1;
20     try
21     {
22       URL url = new URL(ltpRequestUrl);
23       //http連接
24       HttpURLConnection http = (HttpURLConnection)url.openConnection();
25       http.setUseCaches(false);
26       http.connect();
27       //獲取http響應流
28       InputStream in = http.getInputStream();
29       //解析響應流
30       byte[] b = new byte[in.available()];
31       in.read(b);
32       //將響應流轉換成字符串
33       String res = new String(b);
34       //根據實際情況,判斷響應結果,並設置返回值
35       boolean of = res.contains("\"state\":1");
36       if (of) {
37         returnCount = 1;
38       } else {
39          returnCount = 0;
40       }
41     } catch (Exception e) {
42       returnCount = -1;
43     }
44     return returnCount;
45   }
46 
47   public String ltpRequestUrl() {
48     StringBuilder param = new StringBuilder("http://192.168.100.205:8055/CTLP/LtpRequest.json?Imsi=");
49     param.append("userid-1");
50     param.append("&appName=LBS&Apikey=D39hr1FgplZSjV2eNVW71wvbYbl8Mip4");
51     return param.toString();
52   }
53 }
View Code

 

圖9:試運行,查看結果

 說明:至此,完成了java腳本的編寫和基本測試,接下來我們就可以使用loadrunner的進行壓力測試了。

 

 四.壓力測試

圖1:選擇壓力測試

 

圖2:打開步驟三中創建的java腳本目錄

 

圖3:壓力測試設置界面總覽

圖4:設置開啟並發用戶數及壓入頻率

說明:單位時間內壓入的並發用戶數設置的用戶數值越大,壓力越大,根據測試實際需要調整。

 

圖5:設置壓力峰值持續時間

 

圖6:設置單位時間內減少並發用戶數(根據實際需要,也可以選擇Simultaneously,達到時間后直接停止)

 

圖7:點擊"Start Scenario"按鈕開始運行測試

 

圖8:運行結果:

 

 圖9:分析結果(可以保存各項性能指標數據到文件)


免責聲明!

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



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