什么是自動化測試
將手工執行的部分測試行為轉換為機器可以識別的語言,從而交由機器來實現測試的行為,這種就叫做
自動化測試
。
自動化測試分類
- 自動化性能測試(性能測試)
Jmeter
。LR
。Locust
。
- 自動化功能測試(自動化測試)
工具:RobotFramework
,AirTest
(手游端比較火),Playwright
(微軟開發的),Selenium IDE
(新版),Cypress
(不用這個,棄了),HTTPRUNNER
(太老了,不建設使用)。
應用層:
Selenium
為核心。- Python:
Selenium WebDriver
,Appium
,Requests
。 - Java:
Selenium WebDriver
,Appium
,HTTPClient
。
- Python:
自動化測試開發這個崗位的定義?
很多人認為測試平台是測開,做測試框架是自動化測試。
測試開發本質是測試工作,不是開發工作。
測試平台與測試框架的區別?
- 測試平台:前端+后端,web系統為主體存在的架構體系。(測試平台的本質意義是web系統的開發,不是為了測試服務的)。
- 測試框架:純后端開發為主體的架構體系。一般用在服務端部署為主。(測試框架是服務的開發,是專門為測試服務的)。
注意事項
- 自動化測試是專門為了部分業務來實現的。而不是全鏈路。
- 如果自動化測試是為了全鏈路負責的話,這個行業就會被淘汰了。
- 自動化測試主要是為了核心業務來實現的,目的是為了提升測試效率,降低重復固化工作的操作行為。
自動化測試的分層
分層示意圖
分層理解
-
UI層
:包含WebUI
和AppUI
。(建議:除非必要,否則最好不要做App
自動化測試)。如果非要做APP
自動化,建議通過工具的形式走會更方便一些。- 實現UI系統交互的自動化測試,主要用於核心業務的自動化測試行為。
- 應用在回歸測試階段,對固化的流程通過自動化進行回歸,提升測試效率。本質意義上就是一種測試手段,一般而言UI自動化覆蓋率在
40%-60%
之間。覆蓋率
就是自動化測試所覆蓋的內容,占據整個系統的多少比重。比重的高低都是基於測試框架本身的設計行為所計算出來的。所以說自動化測試的技術最核心的點是測試框架的設計能力
。
-
Service層
:集成測試階段,主體是數據的交互。所以應用接口自動化測試技術實現。主要用在后端的接口聯調以及回歸測試階段。可以極大地提速測試的效率。目前應用最為廣泛的自動化測試階段,因為接口本身的變動會比較低。 -
Unit層
:單元測試層級,目前大家不需要考慮的層級。單元測試的手法主要講究的是覆蓋率
。如:條件覆蓋,邏輯覆蓋。單元測試的核心思想:每一行代碼至少執行一次。單元測試就是一個苦力活。國內目前單元測試主體是開發人員自己完成的。