概念
為什么先要從概念說起呢?對于新手而言可能總是把自動化看得很高端和牛逼。
我們先來想想常見的功能測試是如何進行的:設計測試用例,然后測試人員執行測試用例,對比執行后的實際結果與預期結果是否相等。如果相等,測試通過。如果不相等,測試失敗。
其實自動化測試做的事情和功能測試沒有差別,自動化測試主要分三個層面去自動化,單元測試自動化、接口測試自動化、web測試自動化。
單元測試自動化
調用被測的類或者方法,根據類或者方法的參數,傳入對應的參數,然后得到一個返回結果。最終斷言判斷返回的結果是否與預期結果相等。相等,測試通過,不相等,測試失敗。所以呢在單元測試里面主要是關注的代碼實現與邏輯,這個當然一般是由開發完成。
接口測試自動化
根據接口文檔,編寫設計測試用例,根據測試用例向接口提交請求,根據返回的結果數據去判斷狀態碼,響應的msg去判斷接口測試是否通過。所以在接口測試關注的是數據,只要數據正確了,功能就基本完成一大半了,剩下的就是把數據展示在前端頁面上。
web測試自動化
web測試自動化,這種測試更加貼近用戶的行為,模擬用戶點擊了某個按鈕,向輸入框輸入了什么。比如一個登陸功能,用戶輸入了賬號密碼點擊到哪里,是可以看見登陸有沒有成功的。但web自動化就并不知道用戶剛才的點擊有沒有生效。所以這個時候就要數據證明了,比如登陸成功后頁面會跳轉到主頁面,頁面上會顯示“歡迎xxxx”。這個就是登陸成功的有效數據證明,于是,web自動化登陸成功后,就會去獲取這個數據進行斷言。如果相等,測試通過。如果不相等,測試失敗。web測試自動化關注的是用戶的操作行為,頁面上的按鈕和輸入框是否可用。
從測試的行為本質上去分析,功能測試和自動化測試沒有區別。唯一的區別就是,一個是人工操作,一個是由代碼工具執行。
誤區
很多朋友都會認為,有了自動化,我們就可以高枕無憂的坐等測試報告了,其實并沒有。因為能做自動化的項目,一定是經過很多次測試,并且框架和功能相對是比較穩定的才能去編寫自動化測試代碼;
也不能說你掌握了自動化測試技能,你就可以走上人生巔峰,迎娶白富美了。主要還是看自動化框架在企業是否實用,對于企業項目而言,如果產品三天一小改,半月一大改,那自動化也就只能說說而已,可能你自動化腳本才剛開始起步,然而產品就已經有所改動了。
所以自動化測試也是一種輔助的方式,最重要的是一切要以做好功能測試為前提。