性能測試總結(performance testing)(一)

1、爲什麼要做性能測試?
1)目前絕大多數應用都是基於網絡的分佈式應用,我們無法知道用戶數量,用戶場景的不確定性,導致系統測試時,不僅僅是功能,業務邏輯,接口測試,還要測試系統性能。一個用戶沒問題,但是用戶一旦多了就可能出現各種各樣的問題,所以需要進行系統性能測試。
2)用戶數量增加,系統負債增加,進行系統性能測試,知道系統承受的併發用戶數量,帶寬是否夠用,cpu是否夠用,內存是否夠用,硬盤速度是否跟得上。從服務端來看,測試服務器是否能承載用戶多併發,系統是否穩定,從用戶角度看響應時間速度。

2、性能測試內容
1)負債測試(load test):對於分佈式網絡,測試不同用戶數量來測試系統的反應,主要關注性能指標,系統不同表現。
2)壓力測試(stress testing):高壓狀態下多用戶高併發測試(30萬-50萬),主要關注系統是怎麼崩潰的。(內存泄漏,cpu無響應,數據庫無反應,網絡堵塞)
3)容量測試(volumn testing):系統最大支撐的相關數量,數據庫最大數據數量,用戶數量。

3、性能測試評價指標
1)響應時間(response time):從用戶視角評價系統的響應速度,通常響應的時間的經驗值 2s流暢,5s可用,10s較慢
2)吞吐量/率():硬盤IO(讀寫),網絡IO(上行下行帶寬),cupIO,服務器處理能力,客戶端打開頁面的數量。
3)事務處理能力(TPS tansaction per second):打開頁面,登陸服務器,實現消息發送等等用戶的某一動作就被稱爲事物。

4、性能測試關注點(也是軟件測試的關注點)
1、軟件測試的作用和價值:兩個方面產品和用戶。產品角度:在研發過程中儘早的發現問題,提高軟件質量,確保產品交互,功能完善,穩定可靠。用戶角度:關注用戶體驗,操作,界面,性能,儘可能想辦法提升用戶體驗,持續改善。

2、性能測試的關注點:(三層架構,多方面制約,採用集羣,雲計算,虛擬化)

  1. 響應時間快慢,服務器端的處理速度
  2. 服務器端的使用情況
  3. 數據庫端的資源使用情況
  4. 最大用戶訪問數量
  5. 同時處理最大業務數量
  6. 考察系統能否支撐7x24小時運轉
  7. 內存資源、線程資源能否正常回收
  8. 代碼,算法,sql語句設計是否合理
  9. 整個系統的穩定性,可恢復性

5、性能測試的核心原理,開發測試工具也是基於前兩點
1、基於協議(前端後端通信機制),基於界面(決定和前端交互),基於代碼(後端)。

  1. 基於網絡的分佈式架構:基於網絡協議去模擬用戶發送請求

2、多線程:模擬多線程操作,多人同時操作,模擬大負載量(功能測試在於用以測試功能)
3、模擬真實場景:真實的網絡環境,用戶操作時間不確定性,操作不確定,得出的數據是準確的,場景不對,數據也不一定可用。

6、代碼實現性能測試
針對某一功能做性能測試,論壇的登陸以及發帖(post協議,多線程這兩點)
登陸操作,發帖操作(涉及協議),使用多線程同時操作。

7、loadrunner使用(協議腳本,多線程)
四個主要部件:1、vuser generator 開發性能測試腳本 。2、controller 提供多線程併發等操作. 3、ananlysis 結果分析 4、load generator 負債生成器(controller 裏面的一個主鍵)

1、vuser generator (虛擬用戶生成器)
新建一個腳本:
這裏寫圖片描述

進入界面,點擊start 錄製一段腳本
這裏寫圖片描述
internet application 指的是b-s 架構,win 32 是指c-s 架構,默認是錄製到action,勾選recond表示立即開始。
這裏寫圖片描述

可以手寫,可以錄製
點擊web_url,使用get請求

點擊web_submit_data,使用post請求

解決亂碼
開始時:tool > advaced > support charset // utf-8 或者本機編碼
運行時:vuser > preferences > option > convert from/to utf-8

編碼的差別:
國標GB-x ,2byte-16bit , 2^16種組合,只對中文進行編碼。
utf-8 :3byte = 24bit 2^24種組合 ,對全世界的文字進行統一的編碼。
ascii碼:一個字節 (2^8=128)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章