爲何先從這個概念開始談起,由於對於新手來講,老是把自動化看得很高端和複雜。web
先來看看功能測試如何進行的:編寫測試用例,測試用例當中最主要的是測試步驟和預期結果;測試人員根據測試用例執行操做步驟,而後經過眼睛和思考判斷實際結果與預期結果是否相等。若是相等,測試經過;若是不相等,測試失敗。ide
自動化測試要作的事情與功能測試是一致。這裏的自動化主要包含三個層面的自動化,單元測試自動化,接口測試自動化和web測試自動化。固然,不一樣層面的自動化關注點是不同的。函數
單元測試自動化,調用被測試的類或方法,根據類或方法的參數,傳入相應的數據。而後,獲得一個返回結果。最終斷言返回的結果是否等於預期結果。若是相等,測試經過;若是不相等,測試失敗。因此,這裏單元測試關注的是代碼的實現與邏輯。元測試是測試中的最基本的測試, 也是測試中的最小單元, 它的對象是函數對象,也能夠包含輸入輸出, 針對的是函數功能或者函數的內部邏輯方面。 並不包含業務邏輯。工具
接口測試自動化,根據接口文檔,究竟是傳get請求呢?仍是post請呢?調用被測試的接口,構造相應的數據(id=1,name=zhangsan),獲得返回值,是200成功,並返回查詢結果。仍是10021,用戶名不能爲空。無論輸入的參數是怎樣的,咱們都將獲得一個結果。最終斷言返回的結果是否等於預期結果。若是相等,測試經過;若是不相等,測試失敗。因此,接口測試關注的是數據。只要數據正確了,功能就作成大半,剩下的無非是如何把這些數據展現在頁面上。post
web測試的自動化,這種測試更貼近用戶的行爲,模擬用戶點擊了某個按鈕,向個輸入框裏輸入了什麼。可是用戶能夠看到登陸成功了,但web自動化並不知道它剛纔的點擊有沒有生效。因此,要找「證據」,好比,登陸成功後頁面右上角會顯示「歡迎,xxx」。這就是登陸成功的有力「證據」。因而,當web自動化登陸成功後,就去獲取這個數據進行斷言。斷言若是相等,測試經過;若是不相等,測試失敗。因此,web自動化的關注點用戶操做形爲,頁面上真正的按鈕和輸入框是否可用。單元測試
因此,從測試的行爲本質上來看,功能測試與單元自動化測試,接口自動化測試和web自動化測試並無區別。惟一的區別是,一個由人來執行,一個由代碼或工具執行。測試