最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

六星源課堂:太詳細(xì)!五大自動(dòng)化測(cè)試的Python框架全都在這

2022-05-25 10:24 作者:六星源課堂  | 我要投稿

自2018年被評(píng)選為編程語(yǔ)言以來(lái),Python在各大排行榜上一直都是名列前茅。目前,它在Tiobe指數(shù)中排名第三個(gè),僅次于Java和C。隨著該編程語(yǔ)言的廣泛使用,基于Python的自動(dòng)化測(cè)試框架也應(yīng)運(yùn)而生,且不斷發(fā)展與豐富。

因此,開(kāi)發(fā)與測(cè)試人員在為手頭的項(xiàng)目選擇測(cè)試框架時(shí),需要考慮許多方面的因素,其中包括:框架的腳本質(zhì)量,測(cè)試用例的簡(jiǎn)單性,以及運(yùn)行模塊可能存在的技術(shù)弱點(diǎn)。為了避免出現(xiàn)“選擇困難癥”,六星源課堂在此為大家準(zhǔn)備了五種Python類型的自動(dòng)化測(cè)試框架,以供比較和討論。

1.Robot Framework

作為最重要的Python測(cè)試框架之一,Robot Framework主要被用在測(cè)試驅(qū)動(dòng)(test-driven)類型的開(kāi)發(fā)與驗(yàn)收中。雖然是由Python開(kāi)發(fā)而來(lái),但是它也可以在基于.Net的IronPython和基于Java的Jython上運(yùn)行。同時(shí),作為一個(gè)Python框架,Robot還能夠兼容諸如Windows、MacOS、以及Linux等平臺(tái)。

使用先決條件

在使用Robot Framework(RF)之前,您需要先安裝Python 2.7.14及以上的版本。我推薦您使用Python 3.6.4,以確保適當(dāng)?shù)淖⑨屇軌虮惶砑拥酱a段中,并能夠跟蹤程序的更改。同時(shí),您還需要安裝Python包管理器--pip。

當(dāng)然,您也必須下載相應(yīng)的開(kāi)發(fā)框架,例如:在開(kāi)發(fā)者圈子里比較流行的PyCharm社區(qū)版。另外,由于其代碼段本身并不依賴于任何IDE,因此您完全可以沿用手頭既有的IDE工具。

優(yōu)點(diǎn)

  • 通過(guò)使用關(guān)鍵字驅(qū)動(dòng)測(cè)試(keyword-driven-test)的方法,它能夠幫助測(cè)試人員輕松地創(chuàng)建具有可讀性的測(cè)試用例,進(jìn)而簡(jiǎn)化了整個(gè)自動(dòng)化的過(guò)程。用戶能夠輕松地測(cè)試數(shù)據(jù)中的語(yǔ)法。因?yàn)槭怯筛鞣N通用工具和測(cè)試庫(kù)所組成,所以它不但擁有龐大的生態(tài)系統(tǒng),而且可以在單獨(dú)的項(xiàng)目中使用其各個(gè)元素。由于擁有許多類型的API,因此該框架具有高度的可擴(kuò)展性。雖然并非內(nèi)置功能,但是Robot可以通過(guò)Selenium Grid(請(qǐng)參見(jiàn)https://www.lambdatest.com/blog/lambdatest-now-live-with-an-online-selenium-grid-for-automated-cross-browser-testing/),來(lái)幫助用戶運(yùn)行各種并行測(cè)試。

缺點(diǎn)

雖然有著上述各種便利,但是Robot Framework在創(chuàng)建自定義的HTML報(bào)告方面比較繁瑣。您頂多能用它來(lái)生成xUnit格式的簡(jiǎn)短報(bào)告。

另外,Robot Framework在并行測(cè)試方面也并不見(jiàn)長(zhǎng)。

Robot的特點(diǎn)與競(jìng)品比較

由于Robot具有豐富的內(nèi)置庫(kù),并能使用更為簡(jiǎn)單的面向測(cè)試的DSL(Domain Specific Language),因此如果您是自動(dòng)化測(cè)試領(lǐng)域的新手,并且缺乏開(kāi)發(fā)經(jīng)驗(yàn)的話,那么將它作為Python測(cè)試框架要比下面將要提到的Pytest或Pyunit,更容易上手一些。當(dāng)然,如果您需要開(kāi)發(fā)復(fù)雜的自動(dòng)化框架,那么還請(qǐng)使用Pytest、或其他類型的Python框架。

2.Pytest

適用于多種軟件測(cè)試的Pytest,是另一個(gè)Python類型的自動(dòng)化測(cè)試框架。憑借著其開(kāi)源和易學(xué)的特點(diǎn),該工具經(jīng)常被QA(質(zhì)量分析)團(tuán)隊(duì)、開(kāi)發(fā)團(tuán)隊(duì)、個(gè)人團(tuán)隊(duì)、以及各種開(kāi)源項(xiàng)目所使用。鑒于Pytest具有“斷言重寫(assert rewriting)”之類的實(shí)用功能,許多大型互聯(lián)網(wǎng)應(yīng)用,如Dropbox和Mozilla,都已經(jīng)從下面將要提到的unittest(Pyunit)切換到了Pytest之上。

使用先決條件

除了基本的Python知識(shí),用戶并不需要更多的技術(shù)儲(chǔ)備。另外,用戶只需要有一臺(tái)帶有命令行界面的測(cè)試設(shè)備,并且安裝好了Python包管理器、以及可用于開(kāi)發(fā)的IDE工具。

優(yōu)點(diǎn)

  • 過(guò)去,開(kāi)發(fā)人員必須將他們的測(cè)試包含在各種大型的類中。如今,Pytest可以讓用戶寫出更為緊湊的測(cè)試套件。其他的測(cè)試工具會(huì)要求開(kāi)發(fā)或測(cè)試人員使用調(diào)試器,或以日志檢查的方式檢測(cè)某個(gè)特定值的來(lái)源。而用戶在用Pytest來(lái)編寫測(cè)試用例時(shí),完全可以將所有的值都存儲(chǔ)在測(cè)試用例之中,直到再獲悉有哪些值失敗了、以及哪些值得到了斷言。由于涉及到的樣板代碼(boilerplate code)并不多,因此用戶能夠容易地編寫和理解各種測(cè)試。測(cè)試夾具(Fixture)函數(shù)常被用來(lái)向測(cè)試函數(shù)添加某個(gè)參數(shù),并返回不同的值。在Pytest中,您可以通過(guò)使用一個(gè)夾具來(lái)模塊化另外一個(gè)。同時(shí),用戶可以使用多個(gè)夾具,在無(wú)需重寫測(cè)試用例的情況下,將測(cè)試覆蓋到所有參數(shù)的組合。Pytest開(kāi)發(fā)人員通過(guò)發(fā)布各種實(shí)用插件,來(lái)保持框架的可擴(kuò)展性。例如:pytest-xdist可以在不使用其他測(cè)試器的情況下,被用于執(zhí)行并行測(cè)試。同時(shí),單元測(cè)試也可以在無(wú)需復(fù)制任何代碼的情況下,實(shí)現(xiàn)參數(shù)化。通過(guò)為開(kāi)發(fā)人員提供各種特殊的例程,它能夠使得測(cè)試用例的編寫更為簡(jiǎn)單、更不易出錯(cuò),同時(shí)代碼也會(huì)變得更短、更易被理解。

缺點(diǎn)

上述提及的特殊例程,也意味著用戶必須放棄一定的兼容性。雖然方便了用戶編寫測(cè)試用例,但是這些用例卻無(wú)法與任何其他的測(cè)試框架一起被使用。

Pytest的特點(diǎn)與競(jìng)品比較

就編寫功能性測(cè)試用例和開(kāi)發(fā)復(fù)雜的框架而言,Pytest勝過(guò)下面將要提到的UnitTest。不過(guò),它和Robot Framework類似,僅適用于開(kāi)發(fā)出簡(jiǎn)單的測(cè)試框架。

如果您正在考慮使用Pytest,請(qǐng)進(jìn)一步參考《使用Pytest和Selenium WebDriver實(shí)現(xiàn)測(cè)試自動(dòng)化》。

3.UnitTest/PyUnit

受到了JUnit啟發(fā)的UnitTest/PyUnit,也是一種標(biāo)準(zhǔn)化的針對(duì)單元測(cè)試的Python類自動(dòng)化測(cè)試框架。它的基類TestCase提供了各種斷言方法、以及所有清理和設(shè)置的例程。因此,TestCase子類中的每一種方法都是以“test”作為名詞前綴,以標(biāo)識(shí)它們能夠被作為測(cè)試用例所運(yùn)行。用戶可以使用load方法和TestSuite類來(lái)分組、并加載各種測(cè)試。

當(dāng)然,您也可以通過(guò)聯(lián)合使用,來(lái)構(gòu)建自定義的測(cè)試運(yùn)行器。正如我們使用Junit去測(cè)試Selenium那樣,UnitTest也會(huì)用到UnitTest-sml-reporting、并能生成各種XML類型的報(bào)告。

使用先決條件

由于UnitTest默認(rèn)使用了Python,因此我們并不需要什么先決條件。除了需要具備Python框架的基本知識(shí),您也可以額外地安裝pip、以及用于開(kāi)發(fā)的IDE工具。

優(yōu)點(diǎn)

  • 開(kāi)發(fā)人員并不需要安裝任何其他的模塊。UnitTest是xUnit的衍生產(chǎn)品,其工作原理與其他xUnit框架十分類似。因此對(duì)于那些沒(méi)有過(guò)硬Python背景的人來(lái)說(shuō),也能很快地上手。用戶能夠以更為簡(jiǎn)單的方式運(yùn)行單個(gè)測(cè)試用例。您只需在終端上預(yù)定好名稱,該框架便可靈活地執(zhí)行各種用例的測(cè)試,并產(chǎn)生精煉的輸出。它能夠在幾毫秒內(nèi)生成各種測(cè)試報(bào)告。

缺點(diǎn)

雖然該框架常用snake_case來(lái)命名各種Python代碼,但是由于它源自Junit,因此仍保留了一些傳統(tǒng)的camelCase命名方法。這往往會(huì)讓人產(chǎn)生混淆。

由于它過(guò)多地支持了抽象方法,因此造成了測(cè)試代碼的目的有時(shí)不夠清晰。需要大量的樣板代碼。

PyUnit的特點(diǎn)與競(jìng)品比較

和部分Python開(kāi)發(fā)人員的觀點(diǎn)相似,我認(rèn)為:Pytest能夠培養(yǎng)測(cè)試人員以非常緊湊的方式編寫出更好的自動(dòng)化代碼,這一編程習(xí)慣。盡管UnitTest是Python默認(rèn)的自動(dòng)化測(cè)試框架,但是其工作原理、及命名規(guī)則仍與標(biāo)準(zhǔn)的Python代碼略有不同。同時(shí),它也需要太多的樣板代碼。因此該框架并不太受歡迎。

4.Behave

我們都知道:行為驅(qū)動(dòng)開(kāi)發(fā)(behavior-driven development,BDD),是一種基于敏捷軟件開(kāi)發(fā)的方法。它能夠鼓勵(lì)開(kāi)發(fā)人員、業(yè)務(wù)參與者和QA人員,三者之間的協(xié)作。作為另一種Python測(cè)試框架,Behave允許團(tuán)隊(duì)避開(kāi)各種復(fù)雜的情況,去執(zhí)行BDD測(cè)試。從本質(zhì)上說(shuō),該框架與SpecFlow和Cucumber非常相似,常被用于執(zhí)行自動(dòng)化測(cè)試。用戶可以通過(guò)簡(jiǎn)單易讀的語(yǔ)言來(lái)編寫測(cè)試用例,并能夠在其執(zhí)行期間粘貼到代碼之中。而且,那些被設(shè)定的行為規(guī)范與步驟,也可以被重用到其他的測(cè)試方案中。

使用先決條件

任何具備Python基礎(chǔ)知識(shí)的人都可以使用Behave。其他先決條件還包括:

您必須先安裝Python 2.7.14及以上的版本。

需要通過(guò)Python包管理器或pip來(lái)與Behave協(xié)作。

大多數(shù)開(kāi)發(fā)人員會(huì)選擇Pycharm作為開(kāi)發(fā)環(huán)境,當(dāng)然您也可以選用其他的IDE工具。

優(yōu)點(diǎn)

  • 由于系統(tǒng)行為使用了半正式(semi-formal)語(yǔ)言、以及域詞匯表(domain vocabulary),因此Behave有助于在組織中保持一致性的行為。讓那些工作在不同模塊上的開(kāi)發(fā)團(tuán)隊(duì),通過(guò)協(xié)調(diào)處理來(lái)具有類似的特征。其構(gòu)建的各個(gè)功能塊能夠執(zhí)行各種測(cè)試用例。由于具有更多值得用戶推理和思考的細(xì)節(jié),因此目標(biāo)產(chǎn)品會(huì)具有更好的規(guī)范性。根據(jù)類似的規(guī)范格式,它能夠讓項(xiàng)目經(jīng)理和利益相關(guān)者,對(duì)開(kāi)發(fā)團(tuán)隊(duì)和QA團(tuán)隊(duì)的輸出具有更清楚地了解。

缺點(diǎn)

只適用于黑盒測(cè)試。

Behave的特點(diǎn)與競(jìng)品比較

Behave最適合于諸如簡(jiǎn)單Web測(cè)試之類的黑盒測(cè)試。但是,對(duì)于那些具有復(fù)雜場(chǎng)景的集成測(cè)試與單元測(cè)試而言,Behave并不是一個(gè)很好的選擇。作為Behave的替代品,一些開(kāi)發(fā)與測(cè)試人員會(huì)推薦使用pytest-bdd。該工具融合了Pytest的所有優(yōu)點(diǎn),并實(shí)現(xiàn)了各種行為驅(qū)動(dòng)測(cè)試的場(chǎng)景。

如果您正在考慮使用Behave,那么您可以借用《Behave with Selenium》(請(qǐng)參見(jiàn)https://www.lambdatest.com/support/docs/display/TD/Behave+with+Selenium+-+Running+Behave+Automation+Scripts+on+LambdaTest+Selenium+Grid)中提到的自動(dòng)化腳本。

5.Lettuce

Lettuce是另一種基于Cucumber和Python的行為驅(qū)動(dòng)類自動(dòng)化工具。Lettuce主要專注于那些具有行為驅(qū)動(dòng)開(kāi)發(fā)特征的普通任務(wù)。它不但簡(jiǎn)單易用,而且能夠使得整個(gè)測(cè)試過(guò)程更流暢、甚至更有趣。

使用先決條件

您需要安裝帶有IDE的Python 2.7.14、及以上的版本。當(dāng)然,您也可以使用Pycharm或任何其他IDE工具。同時(shí),您還需要安裝Python包管理器。

優(yōu)點(diǎn)

  • 和其他BDD測(cè)試框架類似,Lettuce能夠讓開(kāi)發(fā)人員創(chuàng)建多個(gè)場(chǎng)景,并用簡(jiǎn)單的自然語(yǔ)言去描述不同的功能。根據(jù)類似的規(guī)范格式,開(kāi)發(fā)與QA團(tuán)隊(duì)能夠協(xié)調(diào)共事。對(duì)于黑盒測(cè)試而言,Lettuce非常適合于那些行為驅(qū)動(dòng)的測(cè)試用例。

缺點(diǎn)

為了成功地實(shí)現(xiàn)行為驅(qū)動(dòng)測(cè)試,開(kāi)發(fā)團(tuán)隊(duì)、QA人員以及利益相關(guān)者之間需要持續(xù)進(jìn)行溝通。倘若缺乏此類溝通,則會(huì)產(chǎn)生流程模糊不清,并讓團(tuán)隊(duì)遇到問(wèn)題。競(jìng)品比較

在普通開(kāi)發(fā)人員和自動(dòng)化測(cè)試人員看來(lái),Cucumber在執(zhí)行BDD測(cè)試方面更為實(shí)用。而在Python開(kāi)發(fā)和QA人員看來(lái),Pytest-bdd才是的。Pytest的強(qiáng)大之處在于:其框架實(shí)現(xiàn)了緊湊且易于理解的代碼,并能緊密地結(jié)合到行為驅(qū)動(dòng)的測(cè)試之中。

結(jié)語(yǔ)

綜上所述,在上述五種自動(dòng)化測(cè)試的Python框架中,Pytest、Robot Framework和UnitTest可主要用于功能與單元測(cè)試,而Lettuce和Behave僅適用于行為驅(qū)動(dòng)測(cè)試。通過(guò)進(jìn)一步比較,我們認(rèn)為:對(duì)于功能測(cè)試而言,Pytest是的。如果您是基于Python自動(dòng)化測(cè)試的新手,那么Robot Framework是的入門工具。雖然其功能有所受限,但是它非常容易上手。對(duì)于基于Python的BDD測(cè)試而言,Lettuce和Behave同樣優(yōu)秀。不過(guò),如果你已經(jīng)有了一定的Pytest經(jīng)驗(yàn),那么請(qǐng)使用Pytest-bdd,希望本文能夠幫助您選出合適的Python測(cè)試框架,并順利開(kāi)展測(cè)試工作。

想學(xué)習(xí)更多Python技巧,歡迎持續(xù)關(guān)注六星源課堂!

六星源課堂:太詳細(xì)!五大自動(dòng)化測(cè)試的Python框架全都在這的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
赫章县| 冷水江市| 乐陵市| 阿尔山市| 旅游| 马关县| 新密市| 辽源市| 印江| 慈利县| 门源| 定远县| 上饶县| 泰顺县| 沙河市| 黎城县| 香河县| 东丽区| 昌黎县| 大同县| 时尚| 德钦县| 兴安县| 连平县| 临湘市| 成安县| 同德县| 元谋县| 肥东县| 昭觉县| 南丹县| 清涧县| 江都市| 宜兰市| 城口县| 岳西县| 奉节县| 麻城市| 阳曲县| 高州市| 通河县|