天天看點

輕松做性能測試,月入3萬的主流測試工具大揭秘

輕松做性能測試,月入3萬的主流測試工具大揭秘

在為大家介紹性能測試工具以前,先讓我們一起回顧一下什麼是性能測試。

1、為什麼需要性能測試?

舉個例子。下圖是一張交通圖。圖中的車流類似于性能測試中的資料,圖中的車道、十字路口就相當于資料流量的規則和限制。

輕松做性能測試,月入3萬的主流測試工具大揭秘

正常情況下,車流按照規則訓示行駛,那麼,該路段就能維持正常的使用。但往往,總會有一些小意外出現,比如追尾、塞車等導緻道路堵塞。為了規避出現這些問題,降低突發狀況的發生,是以性能測試的用處就來了。

再舉個2個例子。如果你想登入某乎提問,卻發現,自己輸入使用者名/密碼後送出,結果等了接近1個小時才登上。你會不會想打人?

又假設你登入銀行APP去支付房貸,并且這是還款最後一天,如果沒有支付成功,就必須多付10%的超期費用。結果你在APP上操作成功後,過了2天,你的還款記錄才上傳到銀行,是以你必須多付10%的超期費用。此時,你會不會想砸手機?

基于這些奇葩現象存在的可能性,這也就使得我們必須對軟體産品,進行性能測試。

那麼,性能測試的測試過程是什麼呢?哪些測試工具适合做性能測試呢?别急,下面為大家一一介紹。

2、性能測試的流程

性能測試就是通過自動化的測試工具,模拟多種正常、峰值以及異常負載條件下可能出現的情況,來對系統的各項性能名額進行測試。性能測試工程師通過擷取軟體産品及其基礎結構的相應資料,進而确定産品可以接受的性能參數,維護産品的正常運轉。

性能測試的過程主要包括3大步驟。分别是模組化、仿真和分析。下面我們來詳細說一說具體操作步奏。

輕松做性能測試,月入3萬的主流測試工具大揭秘

一般情況下,工作負載模型通常是基于服務級别協定和業務需求而設定的。常見的示例,包括事務數、并發使用者數和響應時間。

“直截了當”的模型,通常容易遺漏諸如上圖,道路交通瓶頸所産生的請求等。盡管有人可能會說,幾百個并發使用者,不太可能同時按下“送出”。但是如果像雙十一0點清空購物車那樣的狀況下呢,真的發生了又該如何處理呢?

是以,我們就做相應的性能測試。

首先,我們需要在一台或幾台PC機上,模拟成百或上千的虛拟使用者,同時執行業務的情景,并對應用程式進行測試,同時記錄下每一事務處理的時間、中間件伺服器峰值資料、資料庫狀态等。

然後,通過可重複的、真實的測試,真實地度量應用程式的可擴充性和性能,确定問題所在,以及優化系統性能的方式方法。

當然,通過這些操作,我們就能預判系統的承受力,為終端使用者規劃整個運作環境的配置,提供有力的依據。

3、性能測試工具大盤點

對于很多測試團隊來說,在進行測試前,通常會出現一套測試工具用到底的情況。比如,任何測試都隻用JMeter。這其實是不對的。

對于任何性能測試來說,都需要根據情況,選擇不同的測試工具。并且,在測試前,我們需要清楚的了解這些工具的優缺點,針對測試對象不同,合理使用工具。不得不說,有時候即使選對了工具,也可能出現無法順利融入品質檢查流程的情況。為什麼呢?因為測試人員的能力、對工具的熟知度、測試難度等等,都可能影響性能測試工具發揮自己的優勢。

輕松做性能測試,月入3萬的主流測試工具大揭秘

是以,今天給大家簡單盤點一下3款主流好用的性能測試工具,以便測試新手更清楚的了解他們的優缺點。

1)傑米特

Apache JMeter 是協定級别的負載測試工具。它可用于測試Web應用程式中靜态和動态元素的加載時間。測試人員可以模拟伺服器,伺服器組,網絡或對象上的繁重負載,以測試其優勢。

JMeter的優點:

易于安裝。它可以安裝在裝有Windows、Mac或Linux的任何桌面上;

它具有使用者友好的界面,或可以在指令行界面中使用;

該測試IDE允許測試從浏覽器或本機應用程式記錄;

能夠從流行的響應格式(HTML、JSON、XML或任何文本格式)中提取資料;

易于使用的插件。例如,用于資料分析的可視化插件。

JMeter 的缺點:

學習曲線很高,是以需要熟練的測試人員;

它不支援JavaScript,并且擴充不自動支援AJAX請求。

使用CSRF令牌之類的動态内容,或使用JS更改請求的複雜應用程式,可能很難使用JMeter進行測試;

GUI模式下的記憶體消耗很高,這會導緻大量使用者出錯。

2)水豚

Capybara廣泛用于Rails、Sinatra、Merb等Rack應用程式的端到端、驗收和內建測試。它在無頭浏覽器上運作測試。

水豚的優點:

強大的同步功能,無需添加手動等待異步過程完成的功能;

它具有一個直覺的API,可以模拟應用程式上的實際使用者操作。例如,使用者不會單擊隐藏的元素/連結,是以可以避免它們;

不可知論的司機運作測試(無需更改代碼),當你從一個驅動程式切換到另一個;

内置對Selenium的支援。

水豚的缺點:

使用多個驅動程式進行測試時,會占用大量記憶體;

這可能很慢,因為它會加載整個應用程式堆棧。或由于調用了許多控制器,模型或視圖。另外,預設情況下它不會運作JS(包括AJAX調用)。

由于模型/控制器,文本或設計的微小變化,測試變得脆弱。

難以調試。例如,在逾時或JS驅動程式錯誤的情況下。

3)Selenium WebDriver

Selenium WebDriver是Selenium套件中,最受歡迎的測試工具。它具有用于測試現代複雜Web應用程式的面向對象的API。它是由Selenium開發的,目的是支援動态網頁(其中頁面的元素可能會更改,而無需重新加載頁面本身)。

Selenium WebDriver的優點:

能夠跨Firefox、Chrome、IE等網絡浏覽器進行測試;

這些浏覽器可以在Windows、Mac或Linux等平台上使用;

獨立使用C#,Java,Perl,PHP,Python,JS(Node)和Ruby作為腳本語言;

測試Web應用程式上類似使用者的操作;

在多台計算機上并行執行可以節省時間;

可用于更複雜的測試,例如生産監控和負載測試;

有大量的文檔和一個大型的網絡社群;

Selenium WebDriver 的缺點:

它需要經驗豐富的測試自動化工程師;

由于元素在使用AJAX的應用程式中等待,是以很難進行測試維護;

使用者需要學習和使用不同的架構來标準化測試過程;

如果不遵循正确的實施方法,将會減慢測試速度。

好了,說了這麼多,趕緊拿出小本本記錄重點吧。今天就聊到這裡,我們下期再見~

輕松做性能測試,月入3萬的主流測試工具大揭秘

最後:如果對軟體測試、接口測試、自動化測試、技術同行、持續內建、面試經驗交流。感興趣可以進到 902061117,群内會有不定期的分享測試資料。

如果文章對你有幫助,麻煩伸出發财小手點個贊,感謝您的支援,你的點贊是我持續更新的動力。

好文推薦

2021軟體測試工程師面試題彙總(内含答案)-看完BATJ面試官對你豎起大拇指!

什麼樣的人适合從事軟體測試工作?

軟體測試和軟體開發哪個發展更好

那個準點下班的人,比我先升職了…

輕松做性能測試,月入3萬的主流測試工具大揭秘