現(xiàn)在招個會自動化測試的人是真難呀~
前一段時間公司計劃要招2個自動化測試到崗,同事面試了十幾個來應聘的人,發(fā)現(xiàn)一個很奇怪的現(xiàn)象,在面試的時候,如果問的是框架API、腳本編寫這些問題,基本上所有人都能對答如流,等問到實戰(zhàn)項目的時候,類似“怎樣從0開始搭建自動化測試體系”“讓你來推廣自動化測試,你會如何去設計方案”這種問題時,很多人就開始避重就輕、含糊其辭,還有一些甚至沉默不語。
事后我也跟同事討論了一下這個事,一致認為主要的問題出現(xiàn)在,現(xiàn)在學習自動化測試的渠道實在是太多了,像很多自動化的知識一抓一大把,很多自動化的新手就把這些看兩眼的技術(shù)名詞和術(shù)語往自己的簡歷里搬,覺得好像自己已經(jīng)完全掌握自動化測試的所有知識了,以至于現(xiàn)在面試要的都不是一般的高。
?但事實上,“會自動化” = “ 能做自動化測試工作”嗎?
并不是
如果說沒有具體的企業(yè)級項目實操, 你就不可能清楚,怎樣去拆解項目的需求?怎樣從0到1搭建自動化測試體系?還有如何避開在自動化實施過程中的坑?
說來說去,還是對自動化實操的經(jīng)驗太匱乏了,同時自身也沒有參考的自動化測試流程規(guī)范。?做了好幾年的自動化測試,突然就想到這個問題,總結(jié)了一下自己一路以來的學習經(jīng)歷,踩過的坑,和大家做一些深入的探討。
拋開疑問,只做學術(shù)探討~
我們拋開所有的疑惑,比如自動化到底有什么用?自動化真的能提升效率么?學了自動化工資能漲多少等等,以上的話題,我將不再論述,這也是平時討論的比較多的問題。
針對以上的問題,我大概的做了一個總結(jié),能漲工資,能多賺錢的技術(shù),那就值得我們?nèi)W習!既然自動化現(xiàn)如今發(fā)展到這么火的地步,那自然就有它存在的價值。
大部分的手工測試想的無非是以下幾點問題:
1.自動化測試學起來難嗎?
2.不學/不敲代碼能做自動化測試嗎?
3.如何自動化測試?
4.學自動化測試的方向是怎樣的?先學UI自動化?還是接口自動化?但是App自動化也比較火?要么再來個小程序自動化?
5.我沒有一點代碼基礎,工作中每天都是點點點,報培訓班or自學?
6.我需要學習什么編程語言?python還是 java ?
…等等等等
我來針對以上的問題,說一些自己的看法:
首先,自動化測試,學起來不難?。〉且涀?,一定要明確學習的方向,不要走彎路,白花力氣。
第二,不寫代碼當然也是可以做自動化測試的,但有點難,個人建議還是學習一門編程語言,至于學習什么語言,很簡單,選擇Python,因為現(xiàn)在市面上主流的自動化測試語言是用的Python,當然,Java也不是不行。
第三,需要了解你們公司的開發(fā)用什么語言,測試和開發(fā)用同一門語言能在學習自動化的同時,降低你和開發(fā)之間溝通的門檻,提升你在公司的話語權(quán)。
第四,學習自動化的方向?我建議:Web UI自動化>接口自動化>APP自動化/小程序自動化,當然,著重學習接口自動化,UI自動化也要學,但是沒有太大的必要深究。
第五,自學or培訓班?這個看個人,如果覺得自己的學習理解能力很強,本身又很自律,學習的方向也很明確,那么你當然可以選擇自學,畢竟省下來的錢都是自己兜里的?
假如你對自動化或者一些編程語言毫無理解,身邊又沒有能夠隨時帶你一起學習的人,那么找一個好的培訓機構(gòu)絕對是一個快速提升的途徑。
蓋樓之前應先打好地基,首先需要學習一門編程語言
在上面我們也提到了,自動化要想做的好,必須要學習至少一門編程語言。當然,至于語言要學到什么程度?我不可能一直學下去吧?答案是,工作會用就行!
熟練掌握大部分的語法基礎,已經(jīng)能夠滿足你大部分自動化測試日常需求了,因為我們寫腳本并沒有像開發(fā)那么多,那么難!
語言你需要學習,F(xiàn)or循環(huán)、if判斷、數(shù)據(jù)類型、運算符、面向?qū)ο?、編程等等,不管是Python還是Java,這些都是需要的,其實也差不多,只要會一門語言,其他的語言都類似。
語言入門后,正式踏上開始自動化成神之路,入門篇Selenium~
?Selenium作為自動化的老祖宗,現(xiàn)在已經(jīng)被玩爛了,基本上只要是做自動化的,無人不知無人不曉。
那么,為什么要先學習Selenium呢?
它能幫助你快速理解,自動化到底是個怎樣的東西,并且能直觀的在頁面上面反饋數(shù)據(jù)給你。我當初也是,看著selenium的API,一點一點啃下來的,幾乎每個方法都去淺嘗了一下。
Selenium有1.0版本、2.0版本、 3.0版本,建議你學習之前,先去了解一下它的歷史,以及它的運行原理,這樣可以更好的勾起你的學習興趣。你學習selenium,需要去安裝瀏覽器,強烈建議你使用chrome而不是fireFox,前者的兼容更好。
安裝好Chrome,接下來你需要去安裝驅(qū)動,恭喜你,這時候你就踩到自動化的第一個坑了!大部分原因還是因為你的瀏覽器版本和驅(qū)動版本對不上。等能訪問百度后,這里印象很深的su和kw(具體是什么東西,等你學了就知道了)
你會再去嘗試各種Selenium的方法,去操作瀏覽器,這時候就仿佛打開了新世界的大門,噢!原來自動化測試是這樣玩的!真神奇!
玩膩了Selenium
等你玩了幾天,或者幾個星期之后,你對Selenium好像提不起什么興趣了,腳本也寫的越來越6,能寫出一些線性的自動化腳本,這個時候,有點驕傲自滿,就這,自動化不過如此,?
我想說的是,不要高興的太早,你僅僅只是剛跨入自動化的大門,走了一小步而已?,F(xiàn)在,你可以開始嘗試,把項目中一些重復性的操作,寫成腳本跑起來,滿滿的成就感有木有!自動化的成效初步形成,仿佛你開始懂得如何用自動化提升工作效率了。
?開始接觸自動化框架Unittest/testNG
等你學會單元測試框架Unittest/testNG,當你學會了Selenium后,你會發(fā)現(xiàn)大部分的線性腳本,很難去管理,并且每個腳本都需要去一個個跑,而且還無法統(tǒng)計測試結(jié)果,這個時候,單元測試框架就需要登場了!
你會開始學習,單元測試框架的用法,如何創(chuàng)建一個測試類,如何寫測試方法,如何把你的腳本寫成測試用例,如何校驗測試是否通過,用例的執(zhí)行順序怎么去控制,斷言怎么去寫等待,這些都是你要去探究學習的。
不滿足于單元測試框架的功能
等你腳本寫的很6,用例也會組織了,然后每次領(lǐng)導告訴你,跑一下測試,然后把測試結(jié)果發(fā)給他,要總結(jié)成測試報告的形式。
你這時候,屢次打開你的編輯器,run test,然后刷刷刷的跑完測試,一條一條的統(tǒng)計測試結(jié)果,累得半死,發(fā)給了領(lǐng)導。
第二天領(lǐng)導又說,下班前你再跑一下測試,給我份報告,想死的心都有了。那么你開始去逛百度,逛論壇,想要得到解決方法,那么“框架”一次就會映入眼簾。
學習自動化框架
此時,你已經(jīng)開始琢磨如何寫一個自動化框架出來了,那么說明你的自動化已經(jīng)開始入門了,并且往著中級的方向發(fā)展,你開始研究框架的結(jié)構(gòu),發(fā)現(xiàn)有用例管理,日志,測試報告,郵件,基礎封裝類等等,還有一種框架的設計模式(經(jīng)典PO模式)
你開始對你的用例進行整理,封裝基類,編寫頁面類,封裝日志,郵件模塊等等,經(jīng)過了幾個星期的打磨,你的第一個自動化框架誕生了!
此時你可以去各個技術(shù)群去炫耀了,自動寫出了一個自動化框架,很多小白也開始吹捧你,叫你大神了。
初始接口測試
以上結(jié)束了UI自動化的學習,那么下面到接口這邊。一般公司用的都是http接口,那么你就從http協(xié)議開始學習了,了解它的結(jié)構(gòu),請求頭,請求參數(shù),請求地址,請求方式等等等,嘗試學習一些抓包工具
如fiddler,chales,wireshark或者瀏覽器的開發(fā)者工具等等,去抓包獲取一些接口,慢慢的觀察它的請求構(gòu)造,但是這時候還是云里霧里,對接口一知半解。于是下載了一個接口測試工具,嘗試把參數(shù)錄入到工具中,手動發(fā)起調(diào)用。
當工具返回200 code時,奧,原來是這么回事。好像就是和服務端來傳遞和接受數(shù)據(jù)的,然后前端頁面會把數(shù)據(jù)展示到前臺!
嘗試學習Request/HttpClient庫發(fā)起請求
在用完postman后,就會想到,那么我怎么用代碼去發(fā)起一個請求呢?這時候就需要去學習這兩個東西。pip install & import requests后,就開始了你的接口自動化之旅。
你嘗試也是把之前ui自動化的增刪改查,用接口來實現(xiàn),你把抓包的請求參數(shù)拿過來,一個一個方法的調(diào)用,然后一鍵運行!一綠三紅!為什么?然后發(fā)現(xiàn)接口返回了401,無權(quán)限!奧!我沒有登入啊,那么怎么才能登入呢??
抱著很多的疑惑開始研究,這時候你需要去了解cookie和token的工作機制,再配合你的代碼,去緩存cookie,達到登入。等解決了這個問題,但是接口還是報錯了啊,刪除接口提示我沒有這條數(shù)據(jù)!
查來查去,原來是我那條數(shù)據(jù)已經(jīng)用掉了,那么怎么可以保證我每次錄入的參數(shù)都是新的呢?這時候就需要去了解接口關(guān)聯(lián),如何把參數(shù)從上個接口的響應提取出來,給下個接口用。
request/HttpClient結(jié)合unittest/testNG+allure
一樣的,等你學會了 request/HttpClient,自然也會想到用單元測試框架把他們集成起來,然后又發(fā)現(xiàn)了一個高大上的allure測試報告,再結(jié)合一些日志模塊打印參數(shù),輕車熟路的這么一個接口框架就出來了,和之前的差不多!小意思。
嘗試用yaml/Excel管理測試用例
等你拿自己的框架,重復枯燥的寫著測試用例,這時候你想了,我為啥每次都要request.post,方法都是一樣的,只是數(shù)據(jù)不一樣,為什么我要一直寫代碼呢,很累?。槭裁床挥靡恍┪募碜x取測試數(shù)據(jù),做參數(shù)化呢?
這時候你開始研究讀寫excel/yaml了,你想把所有的測試用例都放在文件里管理,就不用每次去寫代碼了,然而事情并沒有那么簡單!那么我在文件里如何去處理關(guān)聯(lián)數(shù)據(jù)呢?如何去緩存cookie呢?如何做斷言呢?如果做一些動態(tài)的輸入呢?
以上問題就留給你們自己去想了。
高級貨?git?jenkins?docker容器?分布式?
走到這一步,你已經(jīng)寫過好幾個框架了,并且基于自己的框架做了優(yōu)化,那么你此時發(fā)現(xiàn)一個很嚴重的問題,我的代碼居然只能在我本地運行,如果要給別人用,還需要去別人電腦上配置環(huán)境,copy代碼給他。
那么為什么不用一些代碼管理工具去管理我的腳本呢?那么就會需要去學習git,了解如何add commit push推送我的代碼到公司的gitlab,這樣別人也可以使用,那么有了gitlab,我想做一些定時任務,讓它自動執(zhí)行呢?
學jenkins。再更多,要是我想多個用例一起跑呢?學習selenium grid,docker等等。。
自動化頂端之測試平臺/工具開發(fā)
等你搭建好公司的自動化生態(tài),你還是不滿足,我為什么不把這些東西可視化管理呢?做個平臺?管理用例,管理任務,管理測試報告?我還可以把公司的一些部署任務也集成過來?
想法很好!此時的你已經(jīng)不僅僅是一名優(yōu)秀的自動化工程師了,已經(jīng)邁向了測試開發(fā)的道路!開始學習,了解了測試框架httprunner,開發(fā)框架django/flask/springboot,懂得了接口開發(fā)的流程,了解了mybatis,shiro,quartz等等,開始學習前端
vue/react,懂得了什么是組件開發(fā),父子組件傳值,開始了解很多東西,甚至運維方面的知識,開始了解k8s docker,微服務。。那么你越來越往著大神的方向去了,希望你還沒有禿頭,此時的你可以驕傲的稱自己為一名合格的測試開發(fā),或者叫全棧開發(fā)了有木有!到此告一段落。
最 后
做為一名有8年工作經(jīng)驗的測試人員,接下來我想分享一下這些年來,我對于技術(shù)一些歸納和總結(jié),和自己對作為一名高級測試者需要掌握那些技能的筆記分享,希望能幫助到有心在技術(shù)這條道路上一路走到黑的朋友!
下面分享我整理了一份2023年可能是最全的軟件自動化測試開發(fā)工程師發(fā)展方向知識架構(gòu)體系圖。
1、測試基礎
了解測試的基礎技能,掌握主流缺陷管理工具的使用,熟練測試環(huán)境的操作與運維
?2、Linux必備知識
Linux作為現(xiàn)在最流行的軟件環(huán)境系統(tǒng),一定需要掌握,目前的招聘要求都需要有Linux能力。
?3、Shell腳本
掌握Shell腳本:包括Shell基礎與運用、Shell邏輯控制、Shell邏輯函數(shù)
?4、互聯(lián)網(wǎng)程序原理
自動化必經(jīng)之路:前端開發(fā)基礎知識以及互聯(lián)網(wǎng)網(wǎng)絡必備知識四、互聯(lián)網(wǎng)程序原理
?5、MySQL數(shù)據(jù)庫
軟件測試工程師必備MySQL數(shù)據(jù)庫知識,不僅僅停留在基本的“增刪改查”。
?6、抓包工具
Fiddler,Wireshark,Sniffer,Tcpdump各種抓包工具適用于各種項目,總有一款適合你的
?7、接口測試工具
接口測試神器,你繞不開的強大工具:Jmeter。小巧靈活:Postman
?8、Web自動化測試Java&Python
了解自動化的目的,熟練掌握TestNG&unittest自動化框架,以及斷言與日志處理
?9、接口與移動端自動化
專業(yè)接口調(diào)用、測試解決方案。組建完整的web和接口自動化框架,Appium整體使用
?10、敏捷測試&TestOps構(gòu)建
揭開TestOps的神秘面紗,持續(xù)集成Jenkins框架爛熟于心
?11、性能測試&安全測試
軟件測試的彼岸:性能測試和安全測試,選個方向努力爬坑吧!
可以說,這個過程會讓你痛不欲生,但只要你熬過去了。以后的生活就輕松很多。正所謂萬事開頭難,只要邁出了第一步,你就已經(jīng)成功了一半,等到完成之后再回顧這一段路程的時候,你肯定會感慨良多。
合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!文章來源:http://www.zghlxwxcb.cn/news/detail-450153.html
作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助。(包括Python編程、WEB自動化測試、app自動化測試、接口自動化測試、測試框架、持續(xù)集成、自動化測試開發(fā)、性能測試、安全測試、大廠面試真題、簡歷模板等等、當然還有一些測試基礎、工具、app測試、接口測試、linux、mysql數(shù)據(jù)庫等基礎知識),相信能使你更好的進步!希望能給你前進的路上帶來幫助。這些學習資料我都放在我的測試學習交流裙:194117263里面了,同時還有幾千個行業(yè)大佬相互進行技術(shù)交流、經(jīng)驗分享,如果你也感興趣,那么期待你的加入。文章來源地址http://www.zghlxwxcb.cn/news/detail-450153.html
到了這里,關(guān)于會自動化就能拿20K?想多了,你這頂多算是會點皮毛···的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!