目前只做過黑盒測試,那麼現在想深入學習下性能測試,需要先學習自動化嘛?


自動化測試和性能測試對應了軟體測試的技術棧發展的兩個不同的路線。

雖然是兩個不同的方向,但是關聯度還是挺高的。

下面對性能測試做個詳細的介紹吧。

一般來講,大多數的性能測試都是基於工具來實現的。

比如經典的jmeterloadrunnerlocustio這些。

其中jmeter和loadrunner都是支持使用工具來錄製的。

但是錄製的腳本可用性不敢恭維,

在實際的工作裏,大多數的性能測試腳本其實都是自己寫的。

【【【重點!!!腳本是自己寫的】】】

那麼這個腳本和自動化的腳本有什麼區別嗎?

其實沒什麼區別的,性能測試的腳本的實現思路其實和介面自動化的腳本基本上就是一樣的。

我記得以前還有個騷操作,用QTP的腳本拿到loadrunner裏去跑。

所以啊,你說學習性能測試是不是有需要先學一下自動化。

如果你要掌握自己寫腳本,那麼多多少少你都要會一點。

jemter的腳本是Java寫的。

loadrunner的腳本是C/Java/VBS寫的。

locustio的腳本是python。

一般我們自動化的腳本大多數是Java/python/JavaScript來寫的。

你要學的話,你可以根據這個關係下手。

好了,剛剛說了關於性能測試的腳本的部分。

性能測試當然是不止工具和腳本的啊。

腳本的功能是可以模擬用戶操作。

工具提供了多線程用來施壓並發等。

loadrunner還提供了一套高端的監控和報表功能。

所以,在你學會了腳本和工具的應用後,你還要學習怎麼監控各項資源的指標。

這就涉及到了資料庫,網路,Linux,協議,等等知識的學習了。

展開來講的話內容就很多了。

最後,總結一下,學習性能測試應該怎麼下手。

1、掌握介面測試。

2、選擇要學習的測試工具。

loadrunner:學會loadrunner的使用,掌握使用loadrunner自帶的功能來做介面測試,然後掌握loadrunner的各個函數,學會寫性能測試腳本(基於C語言的)。然後就是什麼參數化啊,集合點啊,關聯啊,亂七八糟的一堆。學完了後,就可以自己寫腳本了。然後設計場景,運用腳本,監控指標,生成報告,分析報告就行了。loadrunner有全套的功能和方案。

jmeter:jmeter功能就沒那麼齊全了,不過還是挺好用的,不過我不怎麼喜歡jmeter,因為我一直嫌棄jmeter的UI醜。還是從用jmeter做介面測試還是練習,然後學會自己用Java寫腳本,錄製的腳本很low,沒啥用,剛學的時候可以試試,後面盡量脫離錄製,自己寫。資源的監控需要用其他的工具去監控。然後自己整理報告,做分析。

locustio:基於python實現的,功能和jmeter差不多,但是沒得UI,UI是個WEB,只提供啟動和停止的功能。沒啥學的,會python就會用,很簡單的。監控資源指標那些和jemter一樣。這個挺好用的。

3、學會分析。

工具的學習只是讓我們可以做性能測試了。但是施壓什麼的測試其實很基礎,大多數人都會做。

學會分析性能瓶頸纔是大神該乾的事情。

上班的時候悄悄寫的,寫的挺亂的,隨便看看就好了。


性能測試其實我們也是劃歸在自動化測試範疇的。

懂一些自動化測試的理論和工具對上手性能測試是很有幫助的。

那我們來自動化測試需要了解啥:

  • 熟悉前端HTML、css、js等
  • 熟悉協議HTTP/HTTPs、FTP、JDBC等
  • 熟悉工具selenium、requests、jmeter、appium等
  • 熟悉語言python、java、js等
  • 熟悉單元測試框架junit、testng、unittest、pytest等
  • 熟悉參數化、斷言、時間等待的使用
  • 熟悉數據驅動、模塊化、關鍵字驅動測試、PO模式等
  • ...

性能測試需要了解啥呢?

  • 熟悉協議HTTP/HTTPs、FTP、JDBC等
  • 熟悉開發語言java、c等
  • 熟悉腳本的錄製、開發、場景運行、代理等
  • 熟悉工具:LR、Jmeter等
  • 熟悉網路、資料庫、硬體等領域
  • 熟悉各種性能指標及優化原理等
  • 熟悉參數化、斷言、集合點等
  • ...

從上面看啊,自動化和性能測試之間有交叉也有差異。

至於要不要自動化為基礎?

個人感覺有總不會有壞處。

沒有也影響不大,作為新的技術點攻克就行啦。


不需要哦,不過性能測試的話有編碼基礎會更好


我又被邀請了~看到測試類的問題,我就忍不住要答一發

這個要看你用的工具吧,LR和jmeter我覺得不用,這兩個看看帖子就能拿下;如果用locust,python基本語法還是要有的。

當然,以上的前提都是,對介面定義和服務架構是有理解的


學性能不需要自動化基礎

相反,你性能會了,自動化小case。

性能也是需要寫腳本,自動化就是框架+腳本。


自動化測試和性能測試,非魚和熊掌不能兼得。

性能其實是對介面的壓測。所以絕對先是學好介面和介面自動化,再學一些性能工具使用,性能測試就變得簡單了。

建議先從自動化測試入手,逐漸具備自動化開發、框架設計能力,再根據情況培養性能測試能力,兩者也有一部分是重合的,比如對系統架構設計、業務邏輯等等。

無論是自動化測試、性能測試,建議不要僅侷限於測試框架、工具的使用,僅僅是使用工具難以體現具備某種測試能力。

歡迎關注@Tester 與我的公眾號:程序員一凡,為了追上曾經給予厚望的自己,加油。


性能測試和自動化測試是測試行業的兩個方向。

學習性能測試的時候,首先初級的性能測試工程師首先得需要一些性能工具的學習,比如jmeter。

那麼很多測試工程師都認為我只要熟練掌握這些性能測試的工具,就是一名性能測試工程師。

其實不是的,真正資深的智能測試工程師不僅要學會熟練地使用這些性能測試的工具,更多的是幫助分析軟體系統中的一些性能瓶頸。

以至於甚至更高層的他學會相關一些伺服器的調優工作。

所以個人認為你要真的想轉行做一名資深的性能測試工程師的話,你需要了解很多性能方面的知識,比如說資料庫,比如說伺服器,甚至網路通信等等。

那麼我們在下來說下自動化測試工程師自動化過工程師需要掌握一定的代碼基礎,然後能夠使用相關的一些代碼模擬人手工操作的一些動作,然後解放人手工的一些勞動力。

那麼自動化這一塊呢,就需要對代碼有一定的要求,如果你的代碼能力越強,那麼你寫出來的自動化腳本可能就會越好,而且越容易被複用。


兩者沒必然聯繫,不過都有一個要求,要有代碼基礎


樓上說的對,沒啥補充的了


推薦閱讀:
相關文章