事情的起因是這樣的:
上周三下午要出去打個**,經過小會議室門口的時候
測試負責人叫住我問有事嗎?小a做的
效能測試
接下來是我們的一段對話
我:小a,你說一下這次效能測試,是對哪幾個點做的,場景都是啥樣的?
我:問一下,線上對於簡訊傳送真實操作場景是什麼樣子的呢?
我:好吧,換個問法,x系統小a你最熟了,線上的這個問題,有大量的資料過來,x系統 對這些資料是怎樣處理然後入庫的呢,是一批一批的處理,還是一條一條的處理呢,如果是一批一批的處理,對於這一批資料是怎樣處理的呢,是同時處理掉,還是一條一條的資料。
小a:這個我不清楚,要不一會兒我去問一下開發的吧。
我:我再問一下,現在搭建的這套測試環境,各個機器的配置是怎麼樣的?和線網的機器配置差距有多大?線網的頻寬是多少?現在測試環境的頻寬是多少?線網是有負載均衡的,有vpn通道的,測試環境上有這些嗎?
小a:tomcat的機器是一台伺服器,4核的,另外兩台
資料庫還有lr加壓機都是實體機。線網的機器配置我不知道,測試環境也是100兆頻寬,負載均衡啥的測試環境都做不了。
我:線網頻寬是千兆的,測試環境的百兆頻寬不全是給你來測試用的,公司上班時間所有同事辦公還占用一部分頻寬呢。線網的資料庫做過一次優化的,有幾個引數是調整過的。
我覺得這次問題的分析可以從幾個方面來入手查,第一,場景設計,我從開發的那裡了解到線上真實的情況是沒有併發的,只是一條一條的來處理,處理的資料量 是3萬條,1個小時處理完,是我們自己的要求。所以場景可以重新設計,設計成沒有併發,處理3萬條資料;第二,測試指令碼的效能,測試指令碼裡的**可能本身 響應時間就長;第三,機器配置、網路頻寬,檢視現在測試機的配置與線網比相差多少,這些能不能想辦法進行一下換算,結果可能有誤差,如果找到依據,看看誤 差能控制在多少範圍內。
小a:我覺得指令碼**不是問題,我就是這樣寫的都能執行過去,能執行過去為啥就會有問題呢。線上真實的操作那在 那台伺服器上還可能有別的省發簡訊呢,對那台伺服器還有影響呢,那台伺服器的配置好可能還有別的省來占用呢,所以機器配置也不應該是問題。頻寬我覺得也不 是問題,公司百兆的頻寬也夠用了呀,我在測試的時候也沒發現網路上**出現了問題,cpu佔用率呀都非常少的。
我:......無語
對於效能測試,到底應該怎樣做,會用了工具(最著名的是lr)就會了效能測試了嗎?no,no,no
我認為:
前期分析:
分析業務:分析使用者群,業務真實使用和操作情況。比如在哪個時間段哪個操作會多,哪個操作會少,怎樣來操作,是會有很多人一起對系統發起請求呢(所謂的 併發),還是資料量很大,但是都是乙個請求乙個請求過來的,很持續很長時間嗎(比如8個小時都在做這樣的操作),還是主要是對一定的資料量操作的(比如處 理完幾十萬條資料後任務就完成了),每次只有乙個場景嗎,還是是個混合場景都有,如果是混合場景,那麼各個場景的比例大約是多少呢。線上已經有多少資料量 了?預期要達到多少資料量?
分析環境:線上系統環境是什麼樣子的?有負載均衡嗎?有多次**嗎?......機器配置是什麼樣子的,每 臺機器上都有哪些服務?線網的頻寬是多少?是專用的嗎?搭建的測試環境和線網真實的環境有多大的差距,頻寬是多少,是專用的嗎?測試環境不可能與線網環境 是一模一樣的,有辦法換算嗎?誤差大約是多少?
分析團隊成員:給你配備的配合的開發人員了嗎?與你配合的開發人員靠譜嗎?你的團隊裡有效能測試的高手嗎?團隊對這個專案的效能測試支援嗎?
時間分析:測試的時間充足嗎?哪些是必須測的,哪些是可以不測的。
測試執行:
有了前面的詳細的分析之後,才能整理出測試需求、設計測試方案、編寫
測試用例
、編寫測試指令碼、設計出合理的測試場景,才能執行測試。
結果分析:
測試出了結果,不能就算完事了,把結果丟給別人讓別人分析查詢原因,那不是高手,真正的高手是可以分析出問題在**,是什麼原因產生的,怎樣優化。簡單的幾個切入點可能從伺服器系統cpu、記憶體等等,資料庫中
sql執行速度,資料庫cpu、記憶體等入手。檢視事務平均響應時間是否在可控範圍內,每秒處理的事務數怎樣等等。借用一些工具檢視運算元據庫的sql執**況等等。
總結一下,效能測試個人認為最重要的不是使用工具,而是測試前的分析和結果的分析,前面的分析夠透徹才能保證後面做的是對的,而不是一上來就是用工具, 就大併發,只有大量的併發才是效能測試,一定得根據現實的真實使用情況來做才可以,違背了現實做再多也是無用。每次一聽到有開發的對我講你幫我們做一下性 能測試吧,弄個幾萬的壓一下,我就特無語。
單元測試應該測什麼
單元測試應該全面覆蓋專案開發的 但是依賴的第三方 不應該被測試。凡是非本專案開發的 都可以認為是第三方 比如,我們專案依賴別的部門提供的儲存服務,連線此服務需要使用他們提供的乙個指令碼,而這個指令碼存放在我們的util目錄中。像這個指令碼,就是所謂的第三方 我用下面這段話來說服領導將這個指令碼從測試...
對於小白而言,應該怎樣著手學習效能測試呢?
經過這幾年的發展,國內it公司的測試水平有了很大的提高。軟體測試也越來越受大家青睞,那麼,對於小白而言,應該怎樣著手學習效能測試呢?其實現在的效能測試培訓機構不計其數,但如果想找到真正靠譜的效能測試培訓機構,就比較有難度了。那麼,到底要怎麼選擇?一定要選擇真正靠譜的,因此親自去實地進行考察是很不錯的...
效能測試應該怎麼做?
比如路透的定義 99.9 的響應時間必需在1ms之內,平均響應時間在1ms以內,100 的請求成功。測試用的資料,需要有大中小各種尺寸的資料,並可以混合。最好使用生產線上的測試資料。然後收集cpu,記憶體,硬碟 網路io,等指標,檢視系統是否穩定,比如,cpu是平穩的,記憶體使用也是平穩的。那麼,這...