十年前,我剛畢業進入測驗行業不久,注冊了這么一個博客賬號,然后使用得并不多,沒寫什么有技術含量的文章,那時的自己還是年輕氣盛的時候,各種不服輸,想在一個行業里做到頂尖,但又不得其法,多年下來,貌似也沒有什么突出的地方,真是慚愧,
十年后,我已經是大叔了,還是在這一行里呆著,也挺神奇的,當年在自學各種代碼,
多年下來,測驗的技術有所提升,什么功能測驗性能測驗自動化測驗介面測驗都要做了,什么Linux、Sql之類的不會也得會了,到手的銀子也有所增加,
10年自動化測驗心路歷程
回想自動化測驗的學習程序,因為發現很多人總是急于求成,不懂該如何學習,新手的時候肯定會選擇加很多的群,在群里總是會遇到很多人問低級問題,寫了一個selenium腳本,卻執行失敗,也不看報錯,就直接跑到群里來問(有時候連個圖都不發或發圖只截圖一小半,有的甚至問我和你寫的代碼一樣怎么運行不起來了呢?),大神,這里為什么會報錯?很多都是明顯的語法問題,一問才知道,今天剛剛學selenium,之前也沒有語法基礎,沒學過Java,沒學過Python,就跑來搞selenium,想玩自動化,每當看到這樣的同學,總是很想吐槽,但又忍住了,今天只是想跟大家談談我認為的正確的自動化學習路徑,
感興趣可以進到1079636098,群內會有不定期的分享測驗資料,
1. 在做自動化測驗之前你需要知道的
自動化是用機器代替手工做一些事情,作為一個測驗人員,做自動化一般是指介面自動化與UI自動化,(介面也是指對外的部分,通過各種協議,各系統或模塊之間交流的介面,)介面性價比更高,但不代表UI自動化沒有價值,但是也不要認為自動化可以完全替代手動測驗,也別把自動化想像的那么高大上,學懂后就會覺得也就那樣,
2. 編程語言基礎
很多想學自動化測驗的同學都忽略了編程語言的重要性,可能在學習的程序中,很大一部分測驗人員不懂編程,覺得自己學不會,久而久之也不想學編程,但如果你想要學習自動化,那編程是必須要掌握,而且要把編程的基礎打扎實,非常重要!!!!
selenium想要玩的溜,Java或者Python是必須的!selenium并不局限于這兩種語言,建議你學市面上大多人數人在學的一種開發語言,否則很難找到人能跟你交流,你的成長速度會慢得多,
那么學Java還是Python?這個要取決于你對那種語言更熟悉一些,同時要看測驗團隊所使用的語言,如果團隊用Java,那你就學Java,如果你既沒有語言基礎,測驗團隊也沒有指定的語言,那么我建議你學Python,Python相對Java更簡單,學習成本要低一些,
確定了要學習的語言,博主便推薦一些學習資料:
如果你一點語言基礎都沒有,那么我推薦你《菜鳥教程》(目前建議學習Python3版本,Python2停止更新了,注意:學習程序中必須得一個個手敲,代碼學習重在實踐,不要以為自己懂就懶的去敲),你說我英文不好怎么辦?OK,給你個中文版笨辦法學Python 下載
如果你有學過一門語言,了解基本的資料結構和判斷、回圈之類的,或者你剛剛完成步驟0的練習,我推薦你這個階段學習Python語言基礎,學習程序中,你可能覺得有些我實在看不懂,建議你你學習完成主干部分即可,最后面的幾章關于網路編程、執行緒與行程的,可以先不看,當遇到這樣的問題,可以再來補充這方面的知識,
好了,這兩個階段完成之后,我認為你做好了學習selenium的準備,可以開始學習selenium了,
3. selenium學習,腳本撰寫
接下來終于要到學習selenium的時候了,在這個時候,我需要你先去搞清楚幾個問題:
selenium到底是什么?有哪幾個版本?我要學習中哪一個版本好呢?建議學selenium3,因為Python2版本2020年已經停止更新了
selenium家族成員,selenium的結構組成,
selenium支持的語言,瀏覽器,selenium操作瀏覽器需要依賴的驅動,驅動版本與瀏覽器版本的關系,
然后還需要再簡單學習一些前端的知識:(可能會突然這時候腦子會有種放棄的念頭,怎么要學這么多!太難了!但要堅持)
HTML(網頁結構,各種標簽,屬性等等)
xpath(xpath定位要熟練掌握,軸的內容可以在有一定基礎之后再學)
CSS(簡單了解)
JavaScript(簡單了解)
Firebug(開發者工具)的使用(這個經常會用到,必須熟悉,可在selenium學習中逐漸深入)
網路基礎知識
接下來就是學習selenium了,入門推薦蟲師的《Selenium2自動化測驗實戰–基于Python語言》,這本書比較基礎,用來入門再合適不過,期間也可混雜著看一些博客,
同時不要光看,一定要動手自己寫代碼(一定要多敲代碼,切記),找一個網站,先練基礎元素的定位與操作,推薦一個練手網站:http://sahitest.com/demo/index.htm
基本定位方式熟悉了,就是要對一個正式的網站進行實踐了,你可以用你們公司的網站,也可以用某些門戶網站,比如BOSS招聘、趕集等等,可以用selenium做一個小爬蟲,爬取網站上的一些資訊,這個程序中你會遇到各種坑,各種詭異的事情,不要怕,你一定要相信這些坑,前輩們早已替你趟過了,
一定要善用百度、Google,搞IT的,不會翻墻,不會百度,別說自己是是XX工程師,
4. 執行測驗,脫離腳本階段
恭喜你,你能寫腳本了,能寫小爬蟲從網站上爬東西了,接下來,你得真正開始執行測驗了,樂趣開始了,哈哈,在這個階段,你必須學習的是Python的unittest或者pytest,學習怎么用斷言來驗證結果同時你要學習怎么將代碼中公共的部分抽出來,把測驗和業務分離開,學習PageObject思想,也叫POM設計模式
用testsuite來組織你的測驗用例,并學習HTMLTestRunner,下載,學習怎么輸出報告,
5. 引數化、配置、日志、簡單框架搭建
你已經能夠用unittest組織用例,并輸出報告了,這時候,你需要讓你的測驗更像個樣子,該學習引數化了,引數可以放在excel、yaml,ini
然后還得學習logging庫,學會怎么記錄日志,寫你自己的日志模塊,在用例里加上日志記錄,
到了這兒,基本上,就像個樣子了,但是不能把這些東西放在一起,你就需要搭建一個輕量級的小框架,來分層組織你的代碼與其他檔案,可以參照我的博客簡單分享一個輕量級自動化測驗框架目錄結構設計,還有博主的專欄 從零搭建一個自動化測驗框架,教你怎么一步步搭建自己的框架,這下你就能把所有的東西分門別類管理起來,終于有點專業的樣子了,
6. 自動執行,自動發送報告
簡單的框架搭建好了,你也能夠每次執行testsuite便可以得到測驗報告了,但這時,你又不滿足了,
是的,你應該讓它自動執行,自動把報告發到你手里(或者你老大手里,當然,未成熟前不建議這么做),
你該學習Jenkins了(怎么要學這么多,我太南了),別喪氣,這個玩意很簡單,你也只需要簡單的配置便可以讓你的測驗任務在Jenkins上跑起來了,
還有,要自動發報告,簡單學習下zmail(比smtplib好用,但只支持Python3)模塊,它能讓你的報告以郵件的形式發送到團隊成員的手中,
7. 高級貨,平臺?分布式?界面?
是不是很有成就感了,QQ群里也有了很多人叫你大佬 ,大神,滿滿的虛榮心, UI的用例執行太慢了,整個分布式的執行怎么樣?selenium的grid還沒有研究呢,我可以用一臺機器控制,讓多臺機器同時執行我的測驗,想想簡直碉堡了對不對,還能怎么玩?搞個界面怎么樣?學學Django、flask、web2py、web.py?挑一個,搞個界面,管理用例,管理測驗執行,如何?
再搞搞資料分析,配個資料庫,拿到歷史執行資料,搞出來個報表怎么樣?
看看request、socket,把介面測驗整進測驗平臺,怎么樣?
單元測驗?嘿嘿嘿,小case,
再集成個性能測驗工具,一塊搞到平臺里去怎么樣?
8.恭喜你,你絕對已經成老司機了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/29125.html
標籤:其他
