做爲一個測試人員,專門挖掘別人缺陷的人,手裏沒有幾把鏟子,恐怕幹起活來不是那麼利索吧。俗話都有說,工欲善其事,必先利其器。這裏我就經過一個工具LoadRunner的基本使用,給你們分享下性能測試的小當心得體會。html
我認爲性能測試實際上是咱們對被測系統的一種質量要求。一輛車能夠跑是功能,要跑得多快,能跑多少年還能跑,這就是車子的性能。好吧,既然是一種要求,那麼有可能有不少系統是不須要作性能測試的,若是要測試的話,確定須要一些性能指標,這些指標下面會略略描述,其實就是咱們對系統的要求要量化的意思。python
性能測試不是功能測試,不須要全部功能都測試,只測試關鍵位置。如小車的發動機,防撞能力,並不會去關心椅子舒不舒服。再說咱們的測試系統,要測試什麼,首先咱們須要分析咱們的系統數據流是怎樣子的,程序的架構是怎樣子的才能分析出關鍵位置!web
從咱們用戶使用的角度來看,無非是「瀏覽器或app」---》「服務器」---》「瀏覽器或app」,瀏覽器
從HTTP交互上看,專業一點的人會說是以下圖描述的:服務器
從程序的部署上看,其實大概是以下圖描述這樣子的:微信
(百度百科)通俗的講,Web服務器傳送(serves)頁面使瀏覽器能夠瀏覽,然而應用程序服務器提供的是客戶端應用程序能夠調用(call)的方法(methods)。確切一點,你能夠說:Web服務器專門處理HTTP請求(request),可是應用程序服務器是經過不少協議來爲應用程序提供(serves)商業邏輯(business logic)。架構
常見WEB服務器:Apache Nginx IIS併發
常見應用服務器:Apache的Tomcat、IBM的websphere、Caucho Technology的Resin、Macromedia的JRun、NEC WebOTX Application Server、JBoss Application Server、BEA的WebLogic等app
個人理解是,web服務器其實就是作負載均衡的一個小插件,而應用服務器就是部署解析應用程序的一個容器。不少應用服務器都自帶有web服務器功能,根本不用額外部署web服務器,一樣能夠工做。負載均衡
負載測試:強調處理能力,測試服務器的性能指標是否在用戶的要求範圍內。
壓力測試:強調在極端狀況下的穩定性。
容量測試:關心how much。
併發測試:經過模擬多個用戶併發操做,測試是否存在死鎖,數據錯誤等故障。
配置測試:
基準測試:
響應時間:反映完成某個業務所須要的時間。
吞吐量(TPS,每秒事務數):反映單位時間內可以處理的事務數目。
服務器資源佔用:CPU佔用率,內存使用率,查詢Cache命中率等。
(必須保證<5s,滿意<2s<能夠接受,略有不滿<5s,沒法接受>10s)
舉個例子,通常指標有下面說法:
1.HP Web Tours必須可以處理10家旅行社的併發操做
2.HP Web Tours必須可以處理10個併發操做的機票預訂操做,且響應時間不能超過90秒。
3.HP Web Tours必須可以處理10家旅行社的併發航班路線查看操做,且響應時間不能超過120秒。
4.HP Web Tours必須可以處理10家旅行社的併發登陸和註銷操做,且響應時間不能超過10秒。
從一張圖展開咱們對性能測試基本流程的認識
下面,從工具入手,簡單的介紹下性能測試的一個實際測試過程,各位讀友以爲膚淺勿噴
前提:安裝性能測試工具LoadRunner
安裝文檔見 《LoadRunner 11 安裝破解》
LR的使用步驟以下圖:
對應上圖,LR這工具主要由三個重要部分組成:Virtual User Generator,Controller,Analysis,下面的實際操做也是分別在這三個組件上面進行展開。
Virtual User Generator:錄製用戶業務流程並建立自動化性能測試腳本。
Controller:組織,驅動,管理並監控負載測試。
Load Generator:經過運行Vuser產生負載。
Analysis:用於查看,剖析和比較性能結果。
【實例演示1-LR自帶實例】
【實例演示2-微信指令禮包活動】
【實例演示3-遊幣服務器接口腳本】
【實例演示4-競拍壓測報告】