成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

利用xdist實(shí)現(xiàn)自動(dòng)化測(cè)試用例并行執(zhí)行

tabalt / 1592人閱讀

摘要:在測(cè)試行業(yè),如果利用作為腳本語言開發(fā)自動(dòng)化測(cè)試用例,可用的框架有等主流可供選擇,個(gè)人感覺較之和應(yīng)該算是現(xiàn)階段最靈活,功能最全面,擴(kuò)展最豐富的框架了。不知道各位在做自動(dòng)化的時(shí)候有沒有遇到過用例數(shù)過多,單機(jī)執(zhí)行效率不高的困擾。

在測(cè)試行業(yè),如果利用python作為腳本語言開發(fā)自動(dòng)化測(cè)試用例,可用的框架有rf,unittest,pytest等主流可供選擇,個(gè)人感覺較之rf和unittest,pytest應(yīng)該算是現(xiàn)階段最靈活,功能最全面,擴(kuò)展最豐富的框架了。

不知道各位在做自動(dòng)化的時(shí)候有沒有遇到過用例數(shù)過多,單機(jī)執(zhí)行效率不高的困擾。接下來淺談個(gè)人對(duì)單元測(cè)試框架pytest中的并行執(zhí)行插件pytest-xdist使用心得.

前提
可以并行執(zhí)行的測(cè)試用例,需要滿足以下原則:
1、用例之間是獨(dú)立的,用例之間沒有依賴關(guān)系,用例可以完全獨(dú)立運(yùn)行?【獨(dú)立運(yùn)行】
2、用例執(zhí)行沒有順序,隨機(jī)順序都能正常執(zhí)行?【隨機(jī)執(zhí)行】
3、每個(gè)用例都能重復(fù)運(yùn)行,運(yùn)行結(jié)果不會(huì)影響其他用例?【不影響其他用例】

pytest-xdist這款插件允許用戶將測(cè)試并發(fā)執(zhí)行(進(jìn)程級(jí)并發(fā)). 我們可以通過官方文檔https://github.com/pytest-dev/pytest-xdist了解到相關(guān)的使用信息

?pytest -n????????參數(shù),指定并行執(zhí)行的cpu個(gè)數(shù),比如咱們的測(cè)試執(zhí)行機(jī)cup個(gè)數(shù)為8,如果想啟動(dòng)全部cpu參與調(diào)度,則直接使用pytest -n 8指定即可

pytest -n auto? ?可以允許自動(dòng)選擇需要調(diào)度的cpu個(gè)數(shù),簡(jiǎn)單方便,可以講此參數(shù)配置到pytest.ini文件中

?可以對(duì)比下使用插件前后的執(zhí)行效率:

使用xdist實(shí)現(xiàn)并行執(zhí)行前(先注釋掉pytest.ini配置文件中配置):

? ? ? ?僅僅構(gòu)造20條測(cè)試數(shù)據(jù),參數(shù)化驅(qū)動(dòng)

?基本每條用例需要執(zhí)行時(shí)間都超過2s,在軟硬件及網(wǎng)絡(luò)環(huán)境影響下個(gè)別用例執(zhí)行時(shí)間甚至超過20s

?如此僅僅20條測(cè)試測(cè)試數(shù)據(jù)執(zhí)行都花了近2分鐘,如果測(cè)試用例數(shù)量達(dá)到數(shù)千條,測(cè)試時(shí)間無法控制,對(duì)執(zhí)行者也是一種煎熬。

當(dāng)用例數(shù)量龐大時(shí),還可以利用分布式+xdist并行執(zhí)行的策略,將執(zhí)行效率再提升,此處以單機(jī)資源+xdist為例,以下為使用并行執(zhí)行策略時(shí)執(zhí)行效率:

先取消pytest.ini中配置的注釋

?

執(zhí)行相同測(cè)試用例,使用xdist并行執(zhí)行所用時(shí)間近11s,時(shí)間對(duì)比使用前,提升還是挺明顯的,當(dāng)然我們?cè)趯?shí)際工作中,還可以使用 多資源分布式+xidist并行執(zhí)行的策略,進(jìn)一步提高執(zhí)行效率。

使用xdist時(shí)還需注意 官方文檔中提到的加文件鎖的方法,因?yàn)樵趯?shí)際工作中,如果不用filelock,會(huì)導(dǎo)致執(zhí)行時(shí)競(jìng)爭(zhēng)資源而報(bào)錯(cuò)的情況,詳細(xì)可閱讀官方文檔中filelock的使用方法

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119214.html

相關(guān)文章

  • 2021-09-03-接口動(dòng)化-python+requests+pytest+csv+yaml+a

    摘要:本套代碼和邏輯是本人的勞動(dòng)成果,如果有轉(zhuǎn)載需要標(biāo)注,非常適合公司做項(xiàng)目的同學(xué)小白也可以學(xué)哦接口自動(dòng)化項(xiàng)目目錄公共方法的封裝如果不用配置文件可以使用這個(gè)方法進(jìn)行封裝但是有一定的缺陷可以不使用字典。這是在正常的命令行解析之前發(fā)生的。 ...

    李昌杰 評(píng)論0 收藏0
  • Pytest測(cè)試報(bào)告工具Allure的高級(jí)用法

     小編寫這篇文章的主要目的,是給大家來做個(gè)介紹,介紹關(guān)于測(cè)試報(bào)告工具Allure用法的一些詳解,主要是關(guān)于一些Pytest Allure類的用法,那么,具體的代碼實(shí)例是什么呢?下面就給大家詳細(xì)解答下?! llure除了具有Pytest基本狀態(tài)外,其他幾乎所有功能也都支持?! ?、嚴(yán)重性  如果你想對(duì)測(cè)試用例進(jìn)行嚴(yán)重等級(jí)劃分,可以使用 allure.severity裝飾器,它可以應(yīng)用于函數(shù),方法或...

    89542767 評(píng)論0 收藏0
  • PHPUnit 加速技巧分享

    摘要:接下來我們將會(huì)介紹一些可以快速實(shí)現(xiàn)的小技巧,讓你的代碼測(cè)試變得更快。該示例測(cè)試套件有意地模擬更廣泛的測(cè)試集合,并突出改進(jìn)的可行性。真實(shí)情況下,效率的提升可能有所差異。我認(rèn)為相比通過提升一點(diǎn)速度帶來的好處,保持生產(chǎn)環(huán)境一致更重要。 showImg(https://segmentfault.com/img/remote/1460000017962057?w=1440&h=736); 具備高...

    weizx 評(píng)論0 收藏0
  • 動(dòng)化測(cè)試 之 “好用例、壞用例

    摘要:反之,好用例則是表現(xiàn)穩(wěn)定的用例。可以建立測(cè)試或開發(fā)人員壞用例檔案,并自動(dòng)追蹤每一個(gè)壞用例的來源,督促負(fù)責(zé)人跟進(jìn)解決。接下來,需要做的就是大家共同維護(hù)好這樣一個(gè)最佳狀態(tài),避免破窗理論的發(fā)生。 摘要: 自動(dòng)化測(cè)試的重要性顯而易見,但自動(dòng)化測(cè)試又無法解決所有問題,所以說完全依賴自動(dòng)化是不可能的,但完全沒有自動(dòng)化是萬萬不能。在軟件開發(fā)項(xiàng)目中,重度依賴人力進(jìn)行持續(xù)回歸是一件非常枯燥的重復(fù)工作。企...

    hot_pot_Leo 評(píng)論0 收藏0
  • 使用 EOLINKER 進(jìn)行接口測(cè)試的最佳路徑 (下)

    摘要:本文使用進(jìn)行接口測(cè)試的最佳路徑下半部分文章,主要介紹測(cè)試腳本如何執(zhí)行和報(bào)告生成,以及測(cè)試項(xiàng)目人員如何協(xié)作。定時(shí)執(zhí)行,我們可以添加測(cè)試用例在指定的時(shí)間執(zhí)行,并把測(cè)試結(jié)果發(fā)送到你指定的郵箱。 本文《使用 EOLINKER 進(jìn)行接口測(cè)試的最佳路徑》 下半部分文章,主要介紹測(cè)試腳本如何執(zhí)行和報(bào)告生成,以及測(cè)試項(xiàng)目人員如何協(xié)作。還沒看過上篇文章請(qǐng)戳 使用 EOLINKER 進(jìn)行接口測(cè)試的最佳路徑...

    haitiancoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<