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、寫報告
主要是對測試過程和結果彙總,測試過程是針對過程改進,測試流程中存在的不足;結果匯老是對軟件的評價
測試報告構成:
包括編寫目的、項目背景
2.測試環境
軟硬件環境、服務器、客戶端
3.測試時間
4.測試用例設計
測試用例簡單描述
5.結果分析和建議