Python學(xué)習(xí)到什么程度就可以進(jìn)行自動(dòng)化測(cè)試了呢?
關(guān)于自動(dòng)化的學(xué)習(xí),一直是大家關(guān)注的話題,那么Python學(xué)習(xí)到什么程度就可以進(jìn)行自動(dòng)化測(cè)試了呢?下面結(jié)合我自身的學(xué)習(xí)歷程跟大家分享一下。
初識(shí)自動(dòng)化
剛開(kāi)始學(xué)自動(dòng)化的時(shí)候,是跟著視頻課程學(xué)習(xí)的,當(dāng)時(shí)學(xué)習(xí)完用Selenium進(jìn)行腳本錄制之后,就覺(jué)得自動(dòng)化測(cè)試好簡(jiǎn)單,錄制腳本后回放腳本就行了,所以學(xué)完錄制腳本之后,就沒(méi)再往下繼續(xù)學(xué)習(xí),使用Selenium腳本錄制的功能進(jìn)行腳本的錄制回放。
結(jié)果可想而知,錄制腳本時(shí),一個(gè)鼠標(biāo)懸浮事件沒(méi)有錄制上,導(dǎo)致元素找不到,最終整個(gè)腳本以失敗而告終。
因?yàn)殡S著前臺(tái)開(kāi)發(fā)技術(shù)的不斷更新?lián)Q代,并不是所有的事件、操作都能使用Selenium自動(dòng)錄制上,還需要我們手動(dòng)處理。
定位元素
總結(jié)這次失敗的教訓(xùn),我繼續(xù)進(jìn)行視頻課程的學(xué)習(xí),學(xué)到了使用WebDriver去定位元素,之前使用Selenium錄制不到的鼠標(biāo)懸浮操作,用元素定位的方式也定位到了,腳本能正常跑通。
學(xué)習(xí)完本章內(nèi)容后,我使用現(xiàn)有的知識(shí),寫(xiě)了一個(gè)回歸測(cè)試的腳本,包含下單、新增用戶、發(fā)貨等功能,基本包含了系統(tǒng)的主要的功能流程。
但是在寫(xiě)完這個(gè)腳本后,我發(fā)現(xiàn),目前掌握的知識(shí)只能滿足于這種簡(jiǎn)單的流程測(cè)試,就像是下單的整個(gè)流程、發(fā)貨的整個(gè)流程,并不能滿足我們多樣化下單的需求。
比如說(shuō)我這次下單要買(mǎi)紅色L碼,下次下單要買(mǎi)藍(lán)色S碼,如果使用我們現(xiàn)有的這種腳本編寫(xiě)方式,同一個(gè)功能,只是參數(shù)不同,我們需要重復(fù)寫(xiě)這一段代碼,有多少用例,就要重復(fù)多少次,不僅浪費(fèi)時(shí)間,而且造成了代碼的冗余,而且還有參數(shù)寫(xiě)錯(cuò)的風(fēng)險(xiǎn)。
如果后期某個(gè)參數(shù)名改變,我們要把所有相關(guān)的參數(shù)名都改一遍,不利于后期代碼的維護(hù),人員成本也比較高。
自動(dòng)化測(cè)試框架
接下來(lái)就進(jìn)行了自動(dòng)化測(cè)試框架的學(xué)習(xí),將不同的頁(yè)面、初始化方法、功能模塊等分開(kāi)來(lái)寫(xiě),引入U(xiǎn)nitTest進(jìn)行測(cè)試用例的管理等等。引入U(xiǎn)nitTest之后,上面提到的代碼冗余的問(wèn)題就得到了解決。
因?yàn)閁nitTest測(cè)試框架,把功能單獨(dú)寫(xiě)一個(gè)方法里,使用該方法時(shí)就進(jìn)行方法的調(diào)用,如上述提到的下單的功能,先將功能寫(xiě)成一個(gè)方法,然后將不同的參數(shù)值寫(xiě)到測(cè)試用例集合中,每次執(zhí)行測(cè)試用例,就調(diào)用下單的方法,只需更改參數(shù),不需要重復(fù)編寫(xiě)代碼,這也解決了參數(shù)名更改導(dǎo)致的腳本問(wèn)題,只需要在下單方法里修改參數(shù)名,并不需要在每個(gè)測(cè)試用例里都修改一遍,節(jié)省了時(shí)間,也避免了修改不完全造成的遺漏。
問(wèn)題定位及解決
當(dāng)然我們應(yīng)該還具備問(wèn)題定位及解決的能力。因?yàn)樵趯W(xué)習(xí)的過(guò)程中,我們完全是按照視頻教程上按部就班的操作的,所以基本上不會(huì)遇到什么問(wèn)題。
但是在實(shí)際的工作中應(yīng)用的時(shí)候,網(wǎng)站是千變?nèi)f化的,難免會(huì)出現(xiàn)這樣那樣的問(wèn)題,比如說(shuō)教程里只說(shuō)了可以通過(guò)class進(jìn)行元素的定位,但沒(méi)有說(shuō)如果一個(gè)class有多個(gè)屬性名應(yīng)該怎么處理,比如我們?nèi)绻苯影裪nputstyle password這兩個(gè)元素作為元素定位的標(biāo)志,實(shí)踐發(fā)現(xiàn)并不能定位到元素,從搜索引擎搜索才知道,這種的代表這個(gè)元素都多個(gè)class的屬性名,我們只需選擇其中一個(gè)名稱進(jìn)行定位即可。
諸如此類的這種小知識(shí)一般在課程里不會(huì)提到,但是是實(shí)際的工作中確實(shí)經(jīng)常遇見(jiàn)的,所以我們還需要具備問(wèn)題解決的能力,不能只局限于教程上的知識(shí),不然自動(dòng)化測(cè)試是進(jìn)行不下去的。
結(jié)語(yǔ)
學(xué)習(xí)到此,小編認(rèn)為就可以嘗試進(jìn)行自動(dòng)化測(cè)試腳本的編寫(xiě)工作了。
當(dāng)然,這只是基礎(chǔ),學(xué)習(xí)是永無(wú)止境的,想要讓自己變得更優(yōu)秀,讓自己寫(xiě)的腳本更好,我們要不斷的擴(kuò)展自己的知識(shí),學(xué)到這里只是起點(diǎn),后面我們還有很長(zhǎng)的路要走。
但是也不能貪多,貪多嚼不爛,只是一味的學(xué)習(xí)但不應(yīng)用到實(shí)際的工作中,學(xué)習(xí)的知識(shí)很快就會(huì)忘記了,而且學(xué)習(xí)和真正應(yīng)用到工作也是不一樣的,因?yàn)樵诠ぷ髦形覀儠?huì)遇到各種各樣的在學(xué)習(xí)中未提及的知識(shí)點(diǎn),需要我們不斷的去充實(shí)、鞏固當(dāng)前已經(jīng)掌握的知識(shí),這樣才能將知識(shí)轉(zhuǎn)化為自己的所有物,并將其靈活運(yùn)用。