1. 程式人生 > >在做效能測試之前需要知道什麼

在做效能測試之前需要知道什麼

最近群裡來了很多新朋友,大都是新做測試或準備做測試工作的,見好多新來上來就問關於LoadRunner的使用上的問題。對效能測試的理解也不是太清楚。公司說讓他們對系統做個性能測試,他們聽說LoadRunner是做效能測試的,在網上找了點了LoadRunner的使用說明就開始對系統下刀了。對於一些大公司的專業效能測試人員來說,這個很可笑,但這是種情況是存在的,我當初也到公司時也這麼幹的。
那時還真把效能測報告給整出來了,現在看來那報告沒有任何意義。雖然,雖然對現在的我來說效能測試也只是只懂皮毛。但還是希望通過我這篇文章能讓那些新手們對於效能測試有個入門的瞭解。

理髮店模式

關於理解效能,記得我那時是看了“《LoadRunner沒有告訴你的》之三—理髮店模式”不管你有沒有看過,我這重提一下理髮店模式。

前提:

  1. 一個理髮店有三位理髮師傅
  2. 每位理髮師傅理一個髮需要一小時
  3. 顧客都很忙,從進理髮店起最多隻等三小時(等待時間+理髮時間),如果三小時後還沒輪到自己理髮,立馬走人。

    思考:
    這裡我們來理解“最佳使用者數”和“最大使用者數”。

最佳使用者數:

理髮店的最佳狀態,理髮店收入最多(理髮師傅沒有休息時間,一直在理髮),顧客滿意度最高(顧客隨時到隨時理,無需要等待)。在一個時間點來說,三個理髮師傅服務於三位顧客,那麼這個最佳使用者數是三。

最大使用者數:

1、理髮店的最大承受狀態,理髮店收入最多(理髮師傅沒有休息時間,一直在理髮),顧客的最大忍耐度(來的顧客等待+理髮需要等上三個小時)。

2、假如理髮店生意非常好,早上一開門一下子來了一群顧客(很多),A、B、C三位顧客先理,D、E、F顧客需要等待一小時才能得到理髮師傅的服務,G、H、I三位顧客等待了兩小時才得到服務,後面排隊的J、K、L…..等顧客,已經等了三小時還沒得到服務,因為這已經得達到了他們等待的極限,所以後他們氣憤和無奈離開。

3、當然,理髮店還會不斷的來新的顧客,不斷有等了三小時而沒有得到服務的顧客離開,但對於理髮店而言,他們在一個時間點上,能服務的最大使用者數是九(三位正在接受服務、三位已經等待一小時,三們已經等待兩小時)。

對於最大使用者數,需要注意的兩點:

1. 在理髮店裡很大,可以容納很多位顧客(大於9),總有一部分在這裡等待了三小時而沒有得到服務離開,不要把等待了三小而沒有得到服務的顧客納入最大使用者數裡。
2.

假如理髮店很小,最多隻能容納六位顧客,當第七個顧客來時,雖然,我們知道他只需要等待兩小時就可得到服務(這個時間是他可以接受的等待時間),但由於理髮店容量有量,這第七個顧客只有改天再來了。
關於理髮店原理,詳細請瀏覽
http://www.cnblogs.com/jackei/archive/2006/11/20/565527.html

不知道通過上面對理髮店的分析,你對效能有了一些眉目。假如理髮店相當於我們的系統的話,顧客就我們向伺服器所傳送的請求,最佳使用者數和最大使用者數是我們衡量一個系統的處理能力的一種方法。

這裡寫圖片描述

要帳的模式

這個是我在給一朋友說瀏覽器與伺服器之間交流時用到的例子,感覺比容易理解,所以拿來分享一下。
假設:

1.  A、B、C三個人。
2.  C欠A錢(這裡不考慮多少)
3.  B是專門要賬

思考:
1、瀏覽器與伺服器的資訊傳遞次數:

   A對B說,C欠我錢,你幫我去要。B接到指令後就去找C要錢。
   B對C說,給我20塊錢。
   C說,沒有。
   B對C說,給我10塊錢。
   C說,沒有。
   B對C說,給我5塊錢。
   .........

最後,B回來對A說,哎呀媽呀,C那丫的忒摳門了,一分錢沒有。
對於A來講,只是來說,它只是讓B問C要錢,具體的B與C之間互動了幾次,A是不知道的,它所知道的就是B返回給它的結果,C一分錢沒有。

2、 瀏覽器與伺服器傳遞資料的大小:

還是上面的過程,A對B說,C欠我錢,你幫我去要。B接到指令後就去找C要錢。

B對C說,給我20萬塊錢。
C說,沒問題,沒支票,只有1元硬幣。
..........

B終於把錢拿回來給A。A很納悶,怎麼去了那麼久,B委屈的說,丫的,C給我整了一堆硬幣,太重了,路上走的慢,都快累死我了。
對於A來講,只是來說,它只是讓B問C要錢,誰知道C給的是支票還是硬幣。所以,B去要錢消耗的時間就很長。

所以,要想提高瀏覽器對伺服器的訪問速度,應該減少資料傳遞次數與資料傳遞的大小。

這樣就很自然的引出了瀏覽器的cookie

A在C哪裡存了5毛錢。
A對B說,我在C哪裡存了5毛錢,你去拿來我看看。B跑去問C要了5毛錢回來給A看。
過了一會,A又對B說,我在C哪裡存了5毛錢,你去拿來我看看。B跑去問C要了5毛錢回來給A看。
過了一會,A又對B說,我在C哪裡存了5毛錢,你去拿來我看看。這次C煩了,對B說,你把錢放自己口袋裡吧,等A要的時候,你來問我5毛的人民幣有沒有改版,沒有改版的話,你就直接把口袋裡的5毛錢給A看就行了。
 在這裡A就相當於我們使用者,B相當於瀏覽器,C是伺服器。而cookie就是B的口袋,當然了cookie的用處還很多。比如我們登陸一個系統,提示我們是否儲存密碼(有的還有期限比如,一個星期或一個月),如果我們儲存了,下次再訪問登陸時,瀏覽器就已經幫我們填寫好了賬戶密碼或直接幫我們登陸。那這個賬戶密碼就放在我們瀏覽器的cookie中。

為什麼要說上面的例子呢?因為我們大部分的一部分效能測試是基於B/S架構系統的,理解了瀏覽器與伺服器之間的資料傳遞,有助於我們理解效能測試。

在開始效能測試之前,我們需要知道什麼?

當客戶或老闆把你叫來,對你說,去給我們系統做個性能測試,千萬別傻傻的說“好!”然後,就走了,我以前這麼幹過(那時不懂,打腫了臉充胖子),回到座位後,不知從何下手了。
那麼,我們需要知道什麼呢?

1. 效能測試的目的

首先要知道客戶的要求。
我把效能測試按目的分以下幾種

1)客戶有明確要求

這是一個好的結果,這說明客戶對效能測試有一定的瞭解,知道他們需要的系統要達到一個什麼樣的標準。如:系統要求同時滿足100使用者登陸,平均每個使用者登陸時間不能超過5秒。這個需求很明確,當然也不排除一些不懂裝懂的使用者,提一些不現實的要求。

2)只是想知道目前系統性能(容量測試)

可以把我們的目的就是求得最大使用者數和最佳使用者數。但是,這仍然是比較含糊的一個需求,我們需要對系統做出分析,找出系統的壓力點。

3)找出系統性能瓶頸

這個同樣需要分析可能對系統造成瓶頸的邏輯業務,然後才能進行效能測試。

4)了系統在長時間的壓力下效能狀況(強度測試)

這個一般驗證系統的穩定性,因為系統一旦上線,就有可能會長期處在大使用者的訪問狀態,可能以前沒發現的一些問題就會暴漏出來。比較典型的就是記憶體溢位。

2. 效能測試的環境

確定了我們的測試目的,當然需要測試環境。這裡的環境,我們需要考慮一下幾點

1)硬體環境
我們需要了解被測伺服器硬體配置,用於加壓客戶端的機子配置,CPU 記憶體 等

2)軟體環境

我們需要了解被測系統的架構,前端、中介軟體、伺服器(這裡指執行系統軟體伺服器,如tomcat)、資料庫,以及他們的部署位置。
用於加壓的客戶端採用什麼效能測試工具進行加壓。

3)網路環境

網路環境很重要。在上面的幾個目的中,除了找出系統性能瓶頸可以在廣域網進行,因為這個目的可以不用設定太多的虛擬使用者,只要找出系統哪個地方影響了整個系統的效能就行。
其他目的的測試都需要在,區域網進行,不然你壓力工具所傳送的請求都會卡死在網路的傳輸過程中。

3. 尋找系統的壓力點

我們需要對系統的哪個頁面或業務進行加壓。這個不是自己想出來的,需要與開發人員的溝通。系統的首頁?系統的登入?還是系統的交易過程?各個業務的使用者比例是多少?
只有獲得有效的效能需求,才容易尋找和定位壓力點。
獲得有效的需求:http://www.cnblogs.com/jackei/archive/2006/12/12/589473.html

如果上面的幾點,你都很清晰了,那麼開啟你的效能測試工具開始錄製(或編寫)你的效能測試指令碼吧!

:以上個人觀點,如有錯誤的之處,請高手指證,以免誤導別人。

相關推薦

效能測試之前需要知道什麼

最近群裡來了很多新朋友,大都是新做測試或準備做測試工作的,見好多新來上來就問關於LoadRunner的使用上的問題。對效能測試的理解也不是太清楚。公司說讓他們對系統做個性能測試,他們聽說LoadRunner是做效能測試的,在網上找了點了LoadRunner的

【蟲師--系列01】在效能測試之前需要知道什麼

來自: http://www.cnblogs.com/fnng/archive/2011/11/15/2250445.html    作者: 蟲師 最近群裡來了很多新朋友,大都是新做測試或準備做測試工作的,見好多新來上來就問關於LoadRunner的使用上的問題。對效能

【蟲師--系列02】在效能測試之後需要知道些什麼

來自:http://www.cnblogs.com/fnng/archive/2012/03/04/2379744.html    作者:蟲師 之前寫過一篇《在做效能測試之前應該知道什麼》有博文,自我感覺講的不好,舉了兩個例子,和做效能測試之前需要知道的一些要點。離我的

自動化測試之前需要了解的

java 程序 產品 接口 記錄 首先理清自動化測試的概念,什麽是自動化測試?廣義上來講,自動化包括一切通過工具(程序)的方式來代替或輔助手工測試的行為都可以看做是自動化,包括性能測試工具(Loadrunner、Jmeter),或自己所寫的一段程序,用於生成1到100個測試數據。狹義上來講

自動化測試之前需要知道

什麼是自動化測?   做測試好幾年了,真正學習和實踐自動化測試一年,自我感覺這一個年中收穫許多。一直想動筆寫一篇文章分享自動化測試實踐中的一些經驗。終於決定花點時間來做這件事兒。   首先理清自動化測試的概念,廣義上來講,自動化包括一切通過工具(程式)的方式來代替或輔助手工測試的行為都可以看做自

在開始效能測試之前,我們需要知道什麼?

當客戶或老闆把你叫來,對你說,去給我們系統做個性能測試,千萬別傻傻的說“好!”然後,就走了,我以前這麼幹過(那時不懂,打腫了臉充胖子),回到座位後,不知從何下手了。    那麼,我們需要知道什麼呢?  1. 效能測試的目的   首先要知道客戶的要求。   我把效

Jmeter效能測試遇到的問題及解決辦法

前天客戶要求給他提供一份效能測試報告,說:“我們的系統將來的使用者數量可以達到800人左右,所以我希望系統能夠支援的最大使用者併發數可以達到1000” 。⊙﹏⊙b汗 我用的測試工具是Jmeter2.2。需要測試的是一個OA系統辦公平臺。主要遇到的以下幾個問題:(jmeter

Loadrunner效能測試:為什麼100個使用者的響應時間反而比50個使用者的響應時間更短?

我在中國外匯交易中心工作過一段時間,當時有個專業的Loadrunner測試團隊,他們的測試結果:為什麼100個使用者的響應時間反而比50個使用者的響應時間更短。分析:首先這肯定是一種不正常的現象,因為

測試需要知道的kafka核心知識點

術語   Broker:對應節點,多個Broker構成Kafka叢集 Topic:一類訊息 Partition:Topic的物理儲存。一個Topic對應多個Patitions Segment:Partition的物理儲存。一個Partition包含多個Segment

PIX學習路徑-3-PIXHAWK二次開發之前需要知道的事

現在作為一個consumer,能夠實現將飛機裝配,使用MP進行韌體燒錄,初始化校準,然後還能夠調節PID,這樣算是一個合格的consumer了,現在希望對PIXHAWK進行進一步的研究,畢竟作為開源飛控之王肯定有它的道理。 這裡假定大家都能夠按照EXUAV

初級篇-iOS開發你需要知道

寫在前面的話: 此blog為自己鞭策自己用,大概會從程式設計零基礎一直寫到開發一個iOS的完整專案吧,也來湊熱鬧記錄記錄自己的程式設計之路。Whatever,若有人看到此blog,恰好此blog中的內容對你有用,那就是美事一件了。 自己不是什麼大牛,但總有人沒有我牛,也總有

使用JMeter效能測試的心得

一、基本概念 1.測試計劃是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器。 2.執行緒組:代表一定數量的併發使用者,它可以用來模擬併發使用者傳送請求。實際的請求內容在Sampler中定義,它被執行緒組包含。可以在“測試計 劃->新增->執行緒組”來建立它,然後線上程組

測試需要知道的9條基本sql語句

sql語句1、測試需要學習簡單的基本的sql語句選擇:select from table1 where 範圍插入:insert into table1(field1,field2) values(value1,value2)刪除:delete from table1 where 範圍更新:update ta

使用“數據驅動測試之前你應該知道的(二)

clas back args ase 沒有 告訴 ... last 數據文件 我們繼續上期的話題,單純讀取數據文件來做自動化是有諸多問題的。那麽我們借助單元測試框架來做自動化就爽多了,因為它解決了測試中的幾問題。 如何定義一條測試用例,我們知道編程的世界裏並沒“用例”的概

JMeter效能測試,完整入門篇(自己測試了)

原文轉自:https://blog.csdn.net/lovesoo/article/details/78579547 Apache JMeter是一款純java編寫負載功能測試和效能測試開源工具軟體。相比Loadrunner而言,JMeter小巧輕便且免費,逐漸成為了主流的效能測試工具,是每個

對不起,不知道這些,我勸你還是別軟體測試員了!

到今年,我從事軟體測試行業,已經有七、八個春秋了,也算是一個資深的軟體測試工程師,目前在上海一家500強企業任職軟體測試架構師。我知道,在當今高速發展的資訊社會, 計算機和電子技術越來越受到人們的重視,以軟體為代表的計算機行業正在以一種井噴式的發展趨勢。軟體測試得到了許多科研單位和企業公司的大力

變頻電源老化測試重要嗎?需要老化測試

測試 忽略 避免 產品 電源 技術 一個 很大的 精度 變頻電源老化測試到底重不重要呢?很多人可能會覺得這個老化測試應該不測也是沒關系的吧,這不是一個人大的問題,沒什麽關系的。但還是在一些專業性能上來講的話,其實變頻電源測試是非常重要的,今天中港揚盛的技術員來給大家講講變頻

idea外掛開發(01)---最簡單的helloworld版,不需要知道原理,先跟我一個最簡單的彈框外掛

前言 用了那麼多idea外掛,也想自己做一個外掛,下面就是入門版本 你不需要先知道所有的概念,先跟著我的步驟做一個小;例子,後面再說原理 本次以windos系統為例 開始 1.你得安裝一個環境,供idea外掛的開發 2.開啟idea,新建一個idea外掛開發的

測試了五年,總結了這些效能測試的知識點

關於記憶體在一塊其實我並不是很想拿出來說,一般情況下記憶體這一塊都是可優化的,可以通過硬體資源或者調整一些系統或者應用系統的引數配置來進行優化。 很多同僚問到了“記憶體洩漏”和“記憶體溢位”,其實這個在baidu上就有解釋。而我們很多人經常會混淆了這兩個東西,在這裡我就簡單的引用一些資源說

網站上線之前,基於SEO,該哪些測試

對於任何一個網站而言,在新站上線之初,每個SEO人員,都需要進行縝密的測試,用於輔助網站正式上線後,可以在搜尋引擎中,有一個不錯的排名。 那麼,網站上線之前,基於SEO,該做哪些測試? 根據以往新網站SEO的經驗,蝙蝠俠IT認為,我們需要關注如下細節: 1、禁止蜘蛛爬行 對