更新時(shí)間:2021-05-21 來源:黑馬程序員 瀏覽量:
好多人說自動(dòng)化沒有那么神奇,不要被神話,我想說一個(gè)概念,功能測(cè)試的天花板就是15k,自動(dòng)化入行是15k的薪資。你可以說自動(dòng)化技術(shù)被神話了,如果不想被天花板限制,大家還是要學(xué)習(xí)自動(dòng)化。
自動(dòng)化測(cè)試是為了節(jié)約時(shí)間成本和人力成本進(jìn)行的,本來就是和手工測(cè)試相輔相成的。
自動(dòng)化主要的知識(shí)點(diǎn)就三項(xiàng):
(1)自動(dòng)化測(cè)試框架
(2)自動(dòng)化測(cè)試腳本集
(3)豐富的自動(dòng)化測(cè)試工具
本文我們主要是匯總了現(xiàn)在比較流行常用的自動(dòng)化測(cè)試框架。
常用的Python自動(dòng)化測(cè)試框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。軟件測(cè)試的自動(dòng)化在預(yù)設(shè)條件下運(yùn)行系統(tǒng)或應(yīng)用程序,評(píng)估運(yùn)行結(jié)果,預(yù)先條件應(yīng)包括正常條件和異常條件。自動(dòng)化測(cè)試以人為驅(qū)動(dòng)的測(cè)試行為轉(zhuǎn)化為機(jī)器執(zhí)行的一種過程。
(1)Robot Framework
說白一點(diǎn)就是可以支持跨平臺(tái)、多種應(yīng)用測(cè)試。可以兼容:windos、MacOS、Linux等平臺(tái)。
推薦使用Python3.6.4確保適當(dāng)?shù)淖⑨屇軌虮惶砑拥絛iamagnetic中,并且可以跟蹤更改。需要安裝Python包管理器—pip。
學(xué)習(xí)的內(nèi)容:
關(guān)鍵字、資源Resource、庫(kù)Robot支持很多庫(kù),分為內(nèi)置外置的。Python、Java攜程的文件都可以;用例(多個(gè)關(guān)鍵字組合,順序或者分支控制等組成的文件為Case);
(2)Pytest
官方文檔介紹:
Pytest is a framework that makes building simple and scalable tests easy. Tests are expressive and readable—no boilerplate code required. Get started in minutes with a small unit test or complex functional test for your application or library.
適用于多種軟件測(cè)試的Pytest是另一個(gè)python類型的自動(dòng)化測(cè)試框架。憑借著其開源和易學(xué)的特點(diǎn)該工具經(jīng)常被QA團(tuán)隊(duì)、開發(fā)團(tuán)隊(duì)、個(gè)人團(tuán)隊(duì)、以及各種開源項(xiàng)目所使用。鑒于Pytest具有“斷言重寫”之類的實(shí)用功能許多大型互聯(lián)網(wǎng)應(yīng)用。
使用先決條件:除了基本的Python知識(shí)用戶并不需要更多的技術(shù)儲(chǔ)備。另外用戶只需要有一臺(tái)帶有命令行界面的測(cè)試設(shè)備,并安裝好了Python包管理器、以及可用于開發(fā)的IDE工具。
建議大家找漢化版的官方文檔作為參考。除了安裝和配置 之外,要學(xué)習(xí)的就是斷言。在鞋代碼的時(shí)候,我們會(huì)做一些假設(shè),斷言就是用于在代碼中捕捉這些假設(shè)。
(3)UnitTest/PyUnit
Pytest和UnitTest是經(jīng)常被人拿出來做比較的。
pytest是python的第三方測(cè)試框架,是基于unittest的擴(kuò)展框架,比unittest更簡(jiǎn)潔,更高效。使用pytest編寫用例,必須遵守以下規(guī)則:
1.測(cè)試文件名必須以“test_”開頭(如:test_ab.py)
2.測(cè)試方法必須以“test_”開頭這里很明顯,編寫測(cè)試用例的方法pytest就比unittest簡(jiǎn)單很多。
UnitTest/PyUnit是一種標(biāo)準(zhǔn)化的針對(duì)單元測(cè)試的Python類自動(dòng)化測(cè)試框架?;怲estCase提供了各種斷言方法、以及所有清理和設(shè)置的例程。因此TestCase子類中的每一種方法都是以“test”作為名詞前綴,以標(biāo)識(shí)它們能夠被作為測(cè)試用例所運(yùn)行。用戶可以使用load方法和TestSuite類來分組、并加載各種測(cè)試。也可以通過聯(lián)合使用來構(gòu)建自定義的測(cè)試運(yùn)行器。正如我們使用Junit去測(cè)試Selenium那樣,UnitTest也會(huì)用到UnitTest-sml-reporting、并能生成各種XML類型的報(bào)告。
使用先決條件:由于UnitTest默認(rèn)使用了Python,因此我們并不需要什么先決條件。除了需要具備Python框架的基本知識(shí),也可以額外地安裝pip、以及用于開發(fā)的IDE工具。
UnitTest編寫Python單元測(cè)試代碼,包括下面幾個(gè)步驟,也就是我們應(yīng)該學(xué)習(xí)的步驟。
寫一個(gè)Python類,繼承unittest模塊中的testcase類,在編寫測(cè)試類中定義測(cè)試方法(測(cè)試用例),在測(cè)試方法中調(diào)用被測(cè)試代碼,校驗(yàn)測(cè)試結(jié)果。TsetCase類中提供了很懂校驗(yàn)的方法,最常見的就是assertEqual;
(4)Behave
行為驅(qū)動(dòng)開發(fā)(behavior-driven development,BDD),是一種基于敏捷軟件開發(fā)的方法。它能夠鼓勵(lì)開發(fā)人員、業(yè)務(wù)參與者和QA人員,三者之間的協(xié)作。**作為另一種Python測(cè)試框架,Behave允許團(tuán)隊(duì)避開各種復(fù)雜的情況,去執(zhí)行BDD測(cè)試。從本質(zhì)上說,該框架與SpecFlow和Cucumber非常相似,常被用于執(zhí)行自動(dòng)化測(cè)試。**用戶可以通過簡(jiǎn)單易讀的語(yǔ)言來編寫測(cè)試用例,并能夠在其執(zhí)行期間粘貼到代碼之中。而且,那些被設(shè)定的行為規(guī)范與步驟,也可以被重用到其他的測(cè)試方案中。
使用先決條件:**任何具備Python基礎(chǔ)知識(shí)的人都可以使用Behave。其他先決條件還包括:必須先安裝Python 2.7.14及以上的版本。**需要通過Python包管理器或pip來與Behave協(xié)作。大多數(shù)開發(fā)人員會(huì)選擇Pycharm作為開發(fā)環(huán)境,當(dāng)然也可以選用其他的IDE工具。
(5)Lettuce
Lettuce是另一種基于Cucumber和Python的行為驅(qū)動(dòng)類自動(dòng)化工具。Lettuce主要專注于那些具有行為驅(qū)動(dòng)開發(fā)特征的普通任務(wù)。它不但簡(jiǎn)單易用,而且能夠使得整個(gè)測(cè)試過程更流暢、甚至更有趣。
使用先決條件:**需要安裝帶有IDE的Python 2.7.14、及以上的版本。**當(dāng)然,也可以使用Pycharm或任何其他IDE工具。同時(shí),還需要安裝Python包管理器。
五種自動(dòng)化測(cè)試的Python框架中Pytest、Robot Framework和UnitTest可主要用于功能與單元測(cè)試,而Lettuce和Behave僅適用于行為驅(qū)動(dòng)測(cè)試。
猜你喜歡:
怎么配置Spring容器中的Bean?【java培訓(xùn)】
自動(dòng)化測(cè)試流程是什么?【圖解自動(dòng)化測(cè)試流程】