性能測試完整流程(二)

 

4.數據庫服務器配置(Oracle和LR相沖突,不要安裝在一臺電腦上,若是在一臺電腦上,啓動LR以前要把Oracle全部服務關閉)html

 (1)在服務器上安裝Oracleweb

 (2)設置登陸名和密碼算法

 (3)導出開發環境下的數據庫sql

 (4)導入到測試環境下的數據庫中數據庫

注:服務器上已安裝了Oracle,就直接進行(3)、(4)步驟json

補充經常使用軟件:windows

 1. Navicat Premium 11/sqldeveloper能夠訪問、查看及操做數據庫。緩存

  2. Notepad++ 能夠用它打開代碼和簡單操做,比文本清晰、實用。安全

3、寫用例和場景設計服務器

   1. 性能用例與功能用例中的正常流程相同(只要項目的業務流程不變,性能測試用例通常不須要更改)

   2. 場景設計(先要制定一份基本標準)

(1) 數據庫中最少要有多少條數據(按照項目啓用2年後的標準)

(2) 併發Vusers數 (併發與在線按照1:10)

 

(3)Vusers數加載的方式

(4)運行時間

(5)退出方式

(6)事務平均響應時間

(7)硬件配置

 

Eg:蘇州農業移動執法項目場景設計

1.負載場景

    (1)併發數:50

    (2)每15s加載10個Vusers

    (3)運行時間:20m

    (4)退出方式:15s退出10個Vusers

    (5)登陸的事務平均響應時間:3s

  2.綜合場景

    (1)併發數:50

    (2)迭代時間:30至60s

    (3)思考時間:3s

    (4)無集合點

注:在作負載測試以前,必定要先作基準測試,因此場景設計中可含有基準場景

 

 4、造數據

1. 在作性能測試以前,數據庫中的數量必定不能爲空或過少,不然不符合實際的狀況。2. 用Oracle語句

 Eg:

(1)insert into T_USER (USER_ID,COMPANYID)

        select '116' ,'1'from dual

        union

        select '117','1' from dual

 

(2)create or replace procedure proc_u_insert is

i number;

begin

for i in 2..10 loop

  INSERT INTO "PDZF_TEST"."T_USER"

   ("USER_ID", "COMPANYID", "CREATETIME", "DEPARTMENT_ID",

       "LOGINNAME",  "STATE", "TABLEVERSION", "USER_NAME","USER_PASSWORD")

VALUES

  (i,'1',

  TO_TIMESTAMP(' 2017-01-27 15:50:52:292158', 'YYYY-MM-DD HH24:MI:SS:FF6'),

  '1038839',

  i, '1', '50',i,

  'ADT751vaiC2nzzrs+77dJXMJnTdAieYJauk1tKYeLN/RKHAmIqMlNAtGZxjNQcsqQA==');

end loop;

commit;

end ;

exec proc_u_insert();

以上四步所有配置完成,就能夠進行第五步操做

 

5、錄製腳本、增強腳本

   1. 項目測試,建議用錄製方法(具體操做,可參考LR basic)

    (1)項目中涉及的點多,採用手寫會花費過長的時間,且不必定寫全

    (2)在錄製好腳本以後,根據項目須要可加入檢查點、集合點、參數池、IP欺騙技術等

   2.接口採用手寫

    (1)作接口測試,首先要知道URL和API ;

    (2)接口中請求分兩種:POST和GET(從安全角度來講,建議用POST)

    (3)接口還會涉及到CAS單點登陸問題,SSO通常有兩種機制cookie和session;

    (4)若是涉及到SSO,要先獲取到Token值,能夠用捕獲工具fiddler

    Eg:

Action(){
web_custom_request("login",
"URL=http://172.25.220.171:8099/szsxzz/desktop/*.jsonRequest", 
"Method=POST", 
"Resource=0", 
"RecContentType=application/json", 
"Referer=http://172.25.220.171:8099/szsxzz/desktop/myDesktop.html?name=320508PDY660587&pwd=123&type=3", 
"EncType=application/json", 
"Mode=HTML",
RAW_BODY_START, //請求BODY開始的標識符
"{\"deep\":false,\"forConfig\":true,\"serviceId\":\"logon\",\"uid\":\"320508PDY660587\",\"psw\":\"123\",\"validcode\":\"\"}",
102,   //上面一行BODY內容的長度
RAW_BODY_END,
LAST);
return 0;

}

 

注:錄製腳本以前,必定要關閉沒必要要的軟件和服務(eg:防火牆、360、QQ等)

 

6、設置場景

徹底根據以前作的場景設計進行設置,再運行便可

  

7、結果分析

1. 當場景運行完以後,首先看總體報告

2. 若是問題不大,直接看Analysis

3.若是Analysis中找不出問題,要進行細分(打開各細分方法,可參看性能結果分析)

 (1)首先,打開Web網頁診斷,查看具體問題

    1)從下圖的web網頁診斷,可看出URL爲「×××829」佔用的時間最久

    2)打開URL爲「×××829」,發現主要是「first buffer」 的佔用

(2)其次,打開first buffer細分圖,發現主要是server time

 (3)而後,打開windows resources 圖

    1)查看應用服務器資源佔用狀況(192.168.11.245)

     從下圖:很明顯發現應用服務器有問題

      緣由:

a.%processor time 一直持續在98%以上

b.Process Queue Length >4

由a和b可知:處理器瓶頸

     2)查看數據庫服務器資源佔用狀況(192.168.25.110)

      從下圖可知:數據庫服務器沒有瓶頸

(4)根據以上分析,可提出的優化建議

1)應用服務器處理器有瓶頸,需更換高配置

2)查看服務器和中間件的參數配置

3)優化URL(×××829)頁面的代碼

4)優化緩存

 

(5)若是優化完,還有問題,請優化數據庫系統

1)查詢語句(不建議用select * 整表查詢)

2)能夠增長索引(用不到索引的地方,不要加,再好的東西,用的多也很差)

3)不要用複雜的表聯接

4)對於數據量大的數據表,最好進行分表

 

注:查找瓶頸時按如下順序,由易到難。
 服務器硬件瓶頸 ->網絡瓶頸(對內網,能夠不考慮)->服務器操做系統瓶頸(參數配置)->中間件瓶頸(參數配置,數據庫,web服務器等)->應用瓶頸(SQL語句、數據庫設計、業務邏輯、算法等)

 

8、寫報告

  主要是對測試過程和結果彙總,測試過程是針對過程改進,測試流程中存在的不足;結果匯老是對軟件的評價

測試報告構成:

  1. 引言

包括編寫目的、項目背景

2.測試環境

軟硬件環境、服務器、客戶端

   3.測試時間

   4.測試用例設計

        測試用例簡單描述

   5.結果分析和建議

相關文章
相關標籤/搜索