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