1. 程式人生 > >淺談自動化測試和效能測試

淺談自動化測試和效能測試

常常有剛接觸自動化和效能測試的同學問我,感覺效能測試和自動化測試是差不多的,我自己剛接觸的時候認為也是差不多的,區別就是:自動化一個使用者再跑,效能測試需要併發,需要設計各種場景。慢慢的做的多了,發現兩者區別還是挺大的。
共同點:
介面的自動化測試和效能測試在處理指令碼的方式上差不多,特別是使用JMeter、LR 這些工具測試的時候,例如測http協議的請求,只需模擬傳送get或post方式的請求,介面指令碼很容易轉成效能測試指令碼。但對於Web應用來說,自動化測試和介面測試就大相徑庭了。下面說下具體的差異吧。
差異:
1、測試角度不同
自動化測試和效能測試的出發點不一樣,也就是最終的目的不一樣。自動化測試是基於功能測試,案例也是來自功能測試,通常用做迴歸測試,其實測的是業務,是功能。
效能測試考慮單個介面的效能,有時候不會太考慮整體的業務通不通,只需考慮需要壓測介面的效能表現,比如處理的tps、平均響應時間、支援的併發使用者數。當然效能測試也會關注整個流程的測試。
比如有個做效能測試的小夥伴去做介面測試,就某一個產品的下單操作來說,做介面測試是為了檢視下單這個功能是不是正常,他寫的介面測試指令碼跟效能測試指令碼一樣,只有一個下單的介面,下單之前一些商品的查詢,賬戶的查詢都沒有做,這在業務上是不連貫的。
2、使用框架不同
如果說介面的自動化測試和效能測試在指令碼處理上有些相同,就Web測試來說,二者就大相徑庭了。首先使用的框架就不一樣,Web自動化測試使用的是Selenium Webdriver,模擬的是點選頁面的元素,效能測試還是錄指令碼、發請求。一個主要是關注頁面元素,後端做了些什麼完全是黑盒;一個需要關注發的請求有哪些,是post還是get,傳的引數是什麼,後端的一些知識還是要了解下,有點像灰盒。

3、要掌握的技能不同
自動化測試偏重開發,對開發語言要求相對高些,如果只是配置現成的框架做自動化測試,那要求並不高。
效能測試要了解的知識很多,指令碼語言(C或者java等等)、作業系統(Linux,常用的監控命令,出問題時分析執行緒)、資料庫(查詢語句、表的關聯、索引、Oracle的AWR 報表);如果是高階的效能測試,那還要懂架構方面的知識。

總的來說,自動化測試偏向於開發,但要有測試的思維;效能測試要懂的知識點很多,真正高階的效能測試也跟開發架構師的水平差不多了。