本身以前爲了學習自動化測試加了幾個自動化測試的羣,在羣裏和很多大牛交流,也和很多新手交流。由於本身也是一個自動化測試的新手,就想着總結下自動化測試學習工做中遇到的問題,也但願若是有想學習自動化的童鞋,能夠學習前看下這篇感想,可能對於你的學習有所幫助。下面我所說的東西都是羣裏好多自動化測試新手遇到的,有技術方面的,也有工做中遇到關於自動化的問題(很現實。。。)java
NO1. 學習自動化難不難?自動化測試若是僅僅是使用錄製回放來進行自動化測試是一點都不難的,這種使用工具進行錄製回放的自動化測試(例如Selenium使用SeleniumIDE)不須要你懂代碼,不須要你像性能測試那樣錄製完成還要進行分析總結(性能測試我認爲最叼的不是工具的使用,是對測試結果的分析,而且給出合理的性能優化方案)。這種錄製回放有的能夠是爲了BUG的更好的復現,有的就是作下回歸測試冒煙測試。那麼有的新手就會疑問,錄製回放是自動化,寫腳本也是跑自動化,爲何非要寫代碼?性能優化
1.錄製回放的侷限性太大。錄製回放的僅僅是一個用戶的一個操做過程或者說一個業務實現過程。以個人實際工做例子,一個客戶的帳號會有多種狀態(正常,掛失,部分凍結,所有凍結,只收不付,只付不收...),若是要測試不一樣狀態的帳號的業務,難道要錄製多遍?它們僅僅是帳號有區別,若是本身寫腳本,弄個數據驅動就搞定了。框架
2.從緣由1中咱們能夠看到,錄製回放僅僅是一個個零散的case,做爲一個自動化測試項目來講,沒有一個好的自動化測試框架,僅僅是一堆錄製回放的case,那這樣的自動化測試還有存在的意義嗎?有了問題就從新錄製?自動化的本意就是解放重複的手工測試,一次次的錄製也是重複無用的工做。工具
3.有一個好的測試框架編寫腳本,能夠加強測試的業務邏輯性,與業務的各類需求鏈接更加緊密,更好的提升業務需求人員與測試人員的協同工做。性能
從上面能夠看出,僅僅使用錄製回放來進行自動化測試是很簡單的,可是效果是沒有那麼好的,像咱們公司也使用testwriter進行自動化測試,實際的效果沒有很明顯。那也會引出另一個問題:自動化是爲何而作,它高大上?部門老大讓作就作?先把第一個問題解決完。。學習
那麼寫自動化腳本難在哪?做爲一個開發轉測試表示沒有難度......勿噴勿噴,可是做爲一個沒有開發經驗沒有代碼經驗的新手來講寫自動化測試腳本難嗎?不難!!!從我自身來講,我是學的Objective-c,可是我是用java寫腳本的,java我也是本身現學的。咱們來看寫自動化腳本須要用到開發語言的哪些東西。測試
這是我學習自動化測試Selenium時參考的書籍資料,固然從開發角度來看這點東西塞牙縫都不夠,對於沒有語言基礎的人來講,這些東西的學習(以上班族天天晚上2-3個小時的學習時間來講,別跟我說擠不出學習的時間)最多一個月。注意注意!!!常常在羣裏看到有新手這樣問,這行代碼怎麼會出錯誤啊,這個怎麼會報錯啊,我按網上搜到的代碼寫的怎麼報錯啊諸如此類的,這都是一個緣由,語言基礎很差或者是沒有語言基礎強行寫腳本。連最基本的語法都搞不懂,怎麼去寫出高質量的代碼,寫代碼不像是學習一個工具的使用,工具的使用你能夠直接拿一個案例來運行,邊使用邊學習,熟能生巧,可是代碼是不一樣的,不懂最基礎的語法,模糊的知道這行代碼是幹嗎的有用嗎?隨便換個場景,換個邏輯就又矇蔽了。因此不要急於求成,必需要掌握最基本的語言基礎,最好每學習完一個東西輔助性的作些練習題,代碼是敲出來的,不是看會的。
優化
NO2.自動化是爲何而作,它高大上?部門老大讓作就作?常常有羣裏的小夥伴說,哎呀自動化搞了半天也沒測出幾個問題,老大叼我了;哎呀,咱們老大說自動化挺厲害的讓我學習搞一下;哎呀,這個自動化能代替手工測試嗎,各類測試案例都能寫出腳原本執行嗎?有的小夥伴在學習自動化的時候可能看到過一些大牛說過什麼樣的項目能夠進行自動化,可是都有一個模糊的概念,那經過這幾個問題就很直接反應出咱們能必須認知的東西:作自動化必定要知道爲啥作。spa
1.考慮項目是否適合作。3d
2.認識到自動化與手工測試不是矛盾的,不是誰能夠代替誰的。
3.自動化測試通常用於迴歸測試和冒煙測試。
以上三點能夠解決羣裏小夥伴們的問題,就算是部門老大問你,你也能夠這樣說。
NO3.新手如何進行自動化測試。只說一句,學習是按部就班的,不論你上面領導要求你多久上手自動化,都應該一步一個腳印去學習,不要拿沒時間壓力大當藉口。我對於那些在羣裏問那些最最基本問題的新手感受很不爽,熊瞎子掰棒子,沒有會爬就想跑,這樣學的很不紮實,作起來也會很不順利。以學習Selenium爲例
1.學代碼
2.學習SeleniumAPI(就是封裝了許多方法的一個測試框架)
3.學習自動化測試項目的構建......
沒有學習的心,作什麼都很難,以上是個人一些吐槽和感想,不吐不快。。。。。。人若沒有夢想,那跟鹹魚有什麼區別!!!