<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          自動(dòng)化測試學(xué)習(xí)路線

          共 4388字,需瀏覽 9分鐘

           ·

          2020-08-14 18:03

          作者 |?江楷
          來源 |??https://testerhome.com/topics/24929
          做了幾年自動(dòng)化測試,突然想就這個(gè)問題,總結(jié)一下自己以往的學(xué)習(xí)經(jīng)歷,踩過的坑,做一些深入的探討。


          拋開疑問,只做學(xué)術(shù)探討

          這次我們拋開所有的疑惑,比如自動(dòng)化測試到底有什么用?自動(dòng)化真的能提升效率么?學(xué)了自動(dòng)化能漲多少工資等等,以上的話題,我這次將不再論述,這幾個(gè)問題也是平時(shí)討論的比較多的問題。

          針對(duì)以上的問題,我做一個(gè)總結(jié),能漲工資,能多賺錢的技術(shù),就值得我們?nèi)W(xué)!既然自動(dòng)化現(xiàn)如今發(fā)展的這么火,自然有它存在的價(jià)值。

          小白在想什么?

          想必每一個(gè)大神,都是從小白一步步走上來的。當(dāng)然呢,我很能理解小白的想法,因?yàn)槠綍r(shí)經(jīng)常和一些剛?cè)腴T自動(dòng)化測試的同行交流,也很深入的了解到他們的一些困惑。

          大部分小白想的無非是以下幾點(diǎn)問題:

          1.自動(dòng)化測試好學(xué)嗎?
          2.不學(xué)/不寫代碼能做自動(dòng)化測試嗎?
          3.怎樣學(xué)習(xí)自動(dòng)化測試?
          4.學(xué)自動(dòng)化測試要先學(xué)習(xí)哪個(gè)方向?學(xué)ui自動(dòng)化?還是接口自動(dòng)化?好像App自動(dòng)化也比較火?要么再來個(gè)小程序自動(dòng)化?
          5.我沒有代碼基礎(chǔ),工作都是點(diǎn)點(diǎn)點(diǎn),要不要報(bào)培訓(xùn)班?
          6.我需要學(xué)習(xí)什么語言?java 還是 python?
          ...等等

          我來針對(duì)以上的問題,說一些自己的看法:

          首先,自動(dòng)化測試,很好學(xué)!但是要記住,一定要明確學(xué)習(xí)的方向,不要?jiǎng)ψ咂h,白花力氣。

          第一,不寫代碼當(dāng)然可以做自動(dòng)化測試,但是個(gè)人建議還是學(xué)習(xí)一門語言,至于學(xué)習(xí)什么語言的話,很簡單,不用糾結(jié),第一看你是否有編程基礎(chǔ),沒有選py,有的話選java py都可

          第二需要看你們的開發(fā)用的什么語言,和開發(fā)用同一門語言能在學(xué)習(xí)自動(dòng)化測試的同時(shí),降低你和開發(fā)之間溝通的門檻,提升你在公司的話語權(quán)。

          第三,學(xué)習(xí)哪個(gè)方向?我建議:web ui自動(dòng)化=》接口自動(dòng)化=》App自動(dòng)化/小程序自動(dòng)化,當(dāng)然,著重學(xué)習(xí)接口自動(dòng)化,ui自動(dòng)化要學(xué),但是沒太大必要深究。

          第四,要不要報(bào)名培訓(xùn)班?這個(gè)看你個(gè)人,如果你覺得自己學(xué)習(xí)理解能力很強(qiáng),本身自己又很自律,同時(shí)學(xué)習(xí)的方向又很明確,那么你當(dāng)然可以不報(bào)名培訓(xùn),多省點(diǎn)錢不香么?

          假如你對(duì)自動(dòng)化測試或者一些編程語言毫無理解,身邊又沒有能帶你學(xué)習(xí)的人,那么報(bào)名培訓(xùn)絕對(duì)是一個(gè)快速提升的途徑。

          蓋樓之前先打好地基,首先需要學(xué)習(xí)一門語言

          在上面我們也提到了,自動(dòng)化要想做得好,必須要學(xué)習(xí)至少一門語言。當(dāng)然至于學(xué)習(xí)語言要到什么程度了?我不可能一直學(xué)下去吧?答案是,會(huì)用就行!

          掌握大部分的語法基礎(chǔ),已經(jīng)能夠滿足你的自動(dòng)化的日常需求了,因?yàn)槲覀儗懩_本并沒有像開發(fā)那么難!

          語言你需要學(xué)習(xí),for循環(huán),if判斷,數(shù)據(jù)類型,運(yùn)算符,面向?qū)ο缶幊痰鹊龋还苁莏ava還是py,這些都是需要的,其實(shí)也差不多,會(huì)一門語言,其他的都類似。

          語言入門后,正式踏上開始自動(dòng)化成神之路,入門篇Selenium

          selenium作為自動(dòng)化的老祖宗,已經(jīng)被玩爛了,基本上只要是做自動(dòng)化的,無人不知無人不曉。為什么要先學(xué)習(xí)selenium?

          它能幫助你快速理解,自動(dòng)化到底是個(gè)什么東西,并且能直觀的在頁面上面反饋給你。咱當(dāng)初也是,看著selenium的api,一點(diǎn)一點(diǎn)啃下來的,幾乎每個(gè)方法都去嘗試了一下。

          selenium有1.0 2.0 3.0,建議你學(xué)習(xí)之前,先去了解以下它的歷史,u以及它的運(yùn)行原理,這樣可以勾起你的學(xué)習(xí)興趣。你學(xué)習(xí)selenium,需要去安裝瀏覽器,強(qiáng)烈建議使用Chrome而不是FireFox,前者兼容的更好。

          安裝好Chrome,你需要去安裝驅(qū)動(dòng),恭喜你,這時(shí)候你就會(huì)踩到自動(dòng)化的第一個(gè)坑了!大部分原因還是因?yàn)槟愕尿?qū)動(dòng)版本和瀏覽器版本對(duì)不上。等能訪問百度后,這里印象很深的su和kw(具體是什么等你學(xué)了就知道了)

          你會(huì)再去嘗試各種selenium的方法,去操作瀏覽器,這時(shí)候仿佛打開了新世界的大門,奧!原來自動(dòng)化測試是這么個(gè)東西!真神奇!

          玩膩了Selenium

          等你玩了幾天,或者幾個(gè)星期之后,你好像對(duì)Selenium提不起什么興趣了,腳本也寫的越來越6,能寫出一些線性的自動(dòng)化腳本了,這個(gè)時(shí)候,有點(diǎn)驕傲自滿,自動(dòng)化不過如此,就這?

          我想說的是,不要高興的太早,你僅僅只是剛跨入自動(dòng)化測試的大門,走了一小步而已。此時(shí),你可以開始嘗試,把項(xiàng)目中一些重復(fù)的操作,寫成腳本去跑,滿滿的成就感有木有!自動(dòng)化的成效初步形成,仿佛你開始懂得如何用自動(dòng)化提升效率了。

          開始接觸自動(dòng)化框架unittest/testNG

          等你學(xué)會(huì)單元測試框架unittest/testNG,當(dāng)你學(xué)會(huì)了selenium后,你會(huì)發(fā)現(xiàn)大部分的線性腳本,很難去管理,并且每個(gè)腳本需要去一個(gè)個(gè)run,而且還無法統(tǒng)計(jì)測試結(jié)果,這個(gè)時(shí)候,就需要單元測試框架登場了!

          你會(huì)開始學(xué)習(xí),單元測試框架的用法,如何創(chuàng)建一個(gè)測試類,如何寫測試方法,如何把你的腳本寫成測試用例,如何校驗(yàn)測試是否通過,用例的執(zhí)行順序怎么去控制,斷言怎么去寫,這些都是你要去探究學(xué)習(xí)的。

          不滿足于單元測試框架的功能

          等你腳本寫的很6,用例也會(huì)組織了,然后每次領(lǐng)導(dǎo)告訴你,跑一下測試,然后把測試結(jié)果發(fā)給他,要總結(jié)成測試報(bào)告的形式。

          你這時(shí)候,屢次打開你的編輯器,run test,然后刷刷刷的跑完測試,一條一條的統(tǒng)計(jì)測試結(jié)果,累得半死,發(fā)給了領(lǐng)導(dǎo)。

          第二天領(lǐng)導(dǎo)又說,下班前你再跑一下測試,給我份報(bào)告,想死的心都有了。那么你開始去逛百度,逛論壇,想要得到解決方法,那么“框架”一次就會(huì)映入眼簾。

          學(xué)習(xí)自動(dòng)化框架

          此時(shí),你已經(jīng)開始琢磨如何寫一個(gè)自動(dòng)化框架出來了,那么說明你的自動(dòng)化已經(jīng)開始入門了,并且往著中級(jí)的方向發(fā)展,你開始研究框架的結(jié)構(gòu),發(fā)現(xiàn)有用例管理,日志,測試報(bào)告,郵件,基礎(chǔ)封裝類等等,還有一種框架的設(shè)計(jì)模式(經(jīng)典PO模式)

          你開始對(duì)你的用例進(jìn)行整理,封裝基類,編寫頁面類,封裝日志,郵件模塊等等,經(jīng)過了幾個(gè)星期的打磨,你的第一個(gè)自動(dòng)化框架誕生了!

          此時(shí)你可以去各個(gè)技術(shù)群去炫耀了,自動(dòng)寫出了一個(gè)自動(dòng)化框架,很多小白也開始吹捧你,叫你大神了。

          初始接口測試

          以上結(jié)束了UI自動(dòng)化的學(xué)習(xí),那么下面到接口這邊。一般公司用的都是http接口,那么你就從http協(xié)議開始學(xué)習(xí)了,了解它的結(jié)構(gòu),請(qǐng)求頭,請(qǐng)求參數(shù),請(qǐng)求地址,請(qǐng)求方式等等等,嘗試學(xué)習(xí)一些抓包工具

          如fiddler,chales,wireshark或者瀏覽器的開發(fā)者工具等等,去抓包獲取一些接口,慢慢的觀察它的請(qǐng)求構(gòu)造,但是這時(shí)候還是云里霧里,對(duì)接口一知半解。于是下載了一個(gè)接口測試工具,嘗試把參數(shù)錄入到工具中,手動(dòng)發(fā)起調(diào)用。

          當(dāng)工具返回200 code時(shí),奧,原來是這么回事。好像就是和服務(wù)端來傳遞和接受數(shù)據(jù)的,然后前端頁面會(huì)把數(shù)據(jù)展示到前臺(tái)!

          嘗試學(xué)習(xí)Request/HttpClient庫發(fā)起請(qǐng)求

          在用完postman后,就會(huì)想到,那么我怎么用代碼去發(fā)起一個(gè)請(qǐng)求呢?這時(shí)候就需要去學(xué)習(xí)這兩個(gè)東西。pip install & import requests后,就開始了你的接口自動(dòng)化之旅。

          你嘗試也是把之前ui自動(dòng)化的增刪改查,用接口來實(shí)現(xiàn),你把抓包的請(qǐng)求參數(shù)拿過來,一個(gè)一個(gè)方法的調(diào)用,然后一鍵運(yùn)行!一綠三紅!為什么?然后發(fā)現(xiàn)接口返回了401,無權(quán)限!奧!我沒有登入啊,那么怎么才能登入呢??

          抱著很多的疑惑開始研究,這時(shí)候你需要去了解cookie和token的工作機(jī)制,再配合你的代碼,去緩存cookie,達(dá)到登入。等解決了這個(gè)問題,但是接口還是報(bào)錯(cuò)了啊,刪除接口提示我沒有這條數(shù)據(jù)!

          查來查去,原來是我那條數(shù)據(jù)已經(jīng)用掉了,那么怎么可以保證我每次錄入的參數(shù)都是新的呢?這時(shí)候就需要去了解接口關(guān)聯(lián),如何把參數(shù)從上個(gè)接口的響應(yīng)提取出來,給下個(gè)接口用。

          request/HttpClient結(jié)合unittest/testNG+allure

          一樣的,等你學(xué)會(huì)了 request/HttpClient,自然也會(huì)想到用單元測試框架把他們集成起來,然后又發(fā)現(xiàn)了一個(gè)高大上的allure測試報(bào)告,再結(jié)合一些日志模塊打印參數(shù),輕車熟路的這么一個(gè)接口框架就出來了,和之前的差不多!小意思。

          嘗試用yaml/Excel管理測試用例

          等你拿自己的框架,重復(fù)枯燥的寫著測試用例,這時(shí)候你想了,我為啥每次都要request.post,方法都是一樣的,只是數(shù)據(jù)不一樣,為什么我要一直寫代碼呢,很累啊!為什么不用一些文件來讀取測試數(shù)據(jù),做參數(shù)化呢?

          這時(shí)候你開始研究讀寫excel/yaml了,你想把所有的測試用例都放在文件里管理,就不用每次去寫代碼了,然而事情并沒有那么簡單!那么我在文件里如何去處理關(guān)聯(lián)數(shù)據(jù)呢?如何去緩存cookie呢?如何做斷言呢?如果做一些動(dòng)態(tài)的輸入呢?

          以上問題就留給你們自己去想了。

          高級(jí)貨?git?jenkins?docker容器?分布式?

          走到這一步,你已經(jīng)寫過好幾個(gè)框架了,并且基于自己的框架做了優(yōu)化,那么你此時(shí)發(fā)現(xiàn)一個(gè)很嚴(yán)重的問題,我的代碼居然只能在我本地運(yùn)行,如果要給別人用,還需要去別人電腦上配置環(huán)境,copy代碼給他。

          那么為什么不用一些代碼管理工具去管理我的腳本呢?那么就會(huì)需要去學(xué)習(xí)git,了解如何add commit push推送我的代碼到公司的gitlab,這樣別人也可以使用,那么有了gitlab,我想做一些定時(shí)任務(wù),讓它自動(dòng)執(zhí)行呢?

          學(xué)jenkins。再更多,要是我想多個(gè)用例一起跑呢?學(xué)習(xí)selenium grid,docker等等。。

          自動(dòng)化頂端之測試平臺(tái)/工具開發(fā)

          等你搭建好公司的自動(dòng)化生態(tài),你還是不滿足,我為什么不把這些東西可視化管理呢?做個(gè)平臺(tái)?管理用例,管理任務(wù),管理測試報(bào)告?我還可以把公司的一些部署任務(wù)也集成過來?

          想法很好!此時(shí)的你已經(jīng)不僅僅是一名優(yōu)秀的自動(dòng)化工程師了,已經(jīng)邁向了測試開發(fā)的道路!開始學(xué)習(xí),了解了測試框架httprunner,開發(fā)框架django/flask/springboot,懂得了接口開發(fā)的流程,了解了mybatis,shiro,quartz等等,開始學(xué)習(xí)前端

          vue/react,懂得了什么是組件開發(fā),父子組件傳值,開始了解很多東西,甚至運(yùn)維方面的知識(shí),開始了解k8s docker,微服務(wù)。。那么你越來越往著大神的方向去了,希望你還沒有禿頭,此時(shí)的你可以驕傲的稱自己為一名合格的測試開發(fā),或者叫全棧開發(fā)了有木有!到此告一段落。

          PS: 以上就是我個(gè)人,也相信是大部分學(xué)習(xí)和喜歡自動(dòng)化測試的一個(gè)學(xué)習(xí)路線,當(dāng)然本次沒提到一些App端/小程序端的自動(dòng)化測試,其實(shí)也都大致類似。希望各位看完本文章點(diǎn)個(gè)贊!祝大家少走彎路!

          瀏覽 62
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  综合激情国产 | 蘑菇视频成人 | 奇米视频7777 | 性感美女被操网站 | 99国产精品 |