亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Selenium和Pytest的Web自動化測試框架應(yīng)用

        2024-01-24 08:52:09馬立鑫劉海燕張兵權(quán)
        電腦知識與技術(shù) 2023年34期
        關(guān)鍵詞:自動化測試

        馬立鑫 劉海燕 張兵權(quán)

        摘要:文章介紹了一個基于Selenium、Pytest和Allure的Web自動化測試框架,它能夠提高測試效率,減少測試人員的工作量,并生成美觀的測試報(bào)告。詳細(xì)介紹了該框架的功能、組成部分、實(shí)現(xiàn)與應(yīng)用以及使用Jenkins進(jìn)行持續(xù)集成的過程。該框架能夠幫助團(tuán)隊(duì)更高效地測試Web應(yīng)用。

        關(guān)鍵詞:Selenium;Pytest;自動化測試

        中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A

        文章編號:1009-3044(2023)34-0052-03

        開放科學(xué)(資源服務(wù))標(biāo)識碼(OSID)

        0 引言

        如今越來越多的企業(yè)應(yīng)用選擇使用B/S架構(gòu)(即Web應(yīng)用),B/S架構(gòu)相對于C/S架構(gòu)更具有跨平臺、維護(hù)簡便、數(shù)據(jù)安全性高、部署靈活性強(qiáng)和兼容性好等優(yōu)點(diǎn)。這些特點(diǎn)使得B/S架構(gòu)成為大多數(shù)Web應(yīng)用程序開發(fā)的首選架構(gòu)[1]。

        隨著Web應(yīng)用不斷的擴(kuò)充,Web應(yīng)用的自動化測試也在逐漸成為軟件自動化測試的重要內(nèi)容。近年來誕生了許多自動化測試工具,比較成熟的有QTP、Selenium、RFT等[2]65,其中Selenium具有多項(xiàng)優(yōu)良特性,成為Web應(yīng)用測試最受歡迎的工具之一。本文將基于Selenium并結(jié)合Pytest、Allure等工具實(shí)現(xiàn)一個Web自動化測試框架。

        1 自動化測試相關(guān)技術(shù)和工具

        1.1 Selenium測試工具

        Selenium可以模擬真實(shí)用戶操作,以此進(jìn)行Web自動化測試。Selenium具有開源免費(fèi)的特點(diǎn),可以進(jìn)行二次開發(fā),具有一定的可擴(kuò)展性[3]16。

        1.2 Pytest測試框架

        Pytest是一個非常成熟的Python測試框架,它可以和Selenium結(jié)合實(shí)現(xiàn)自動化測試,也可以結(jié)合Allure-pytest插件生成Allure報(bào)告。

        1.3 Allure報(bào)告生成工具

        Allure是一款輕量級的自動化測試報(bào)告生成框架。它支持絕大部分測試框架,它可以生成美觀、易讀的測試報(bào)告,提供了詳細(xì)的測試結(jié)果和統(tǒng)計(jì)信息。

        1.4 Jenkins持續(xù)集成工具

        Jenkins是一個開源的持續(xù)集成和交付工具,它能夠幫助團(tuán)隊(duì)自動執(zhí)行測試任務(wù),提高了測試的效率[4]108。

        2 框架功能分析

        2.1 功能自動化測試

        Web項(xiàng)目的功能測試屬于黑盒測試。具體測試內(nèi)容包括:網(wǎng)頁鏈接是否可以正常打開與關(guān)閉,網(wǎng)頁內(nèi)容是否顯示無誤,網(wǎng)頁元素功能是否正常等。主要操作方式是通過對元素進(jìn)行識別、定位、點(diǎn)擊、文本輸入等完成測試[5]105。

        2.2 頁面對象管理

        頁面對象設(shè)計(jì)模式用于管理和組織 Web 自動化測試代碼。在頁面對象模式中,每個頁面都有一個對應(yīng)的頁面對象類,每個類中封裝了相關(guān)的元素定位方式和操作方法,測試腳本只需要調(diào)用類中的方法即可完成對應(yīng)業(yè)務(wù)邏輯的測試[2]65。

        2.3 框架的主要功能

        自動化測試框架需要完成Web應(yīng)用的測試需求,主要功能包括:測試用例的維護(hù)和管理,保證測試數(shù)據(jù)的完整[3]109;確保數(shù)據(jù)驅(qū)動測試的實(shí)現(xiàn);能夠完成被測項(xiàng)目業(yè)務(wù)邏輯的封裝,并組合頁面元素的操作實(shí)現(xiàn)對應(yīng)的業(yè)務(wù)邏輯;可以很好地通過可視化的測試報(bào)告呈現(xiàn)測試結(jié)果;具有優(yōu)良的可擴(kuò)展性;能夠提高測試的效率。

        2.4 框架的組成部分

        測試模塊主要由基礎(chǔ)類庫層、頁面封裝層、測試用例層、工具模塊、持續(xù)集成工具等構(gòu)成,如圖1所示。

        1) 基礎(chǔ)類庫層:Common包中存放著公共類其中封裝了所有操作,包括查找一個元素、輸入文本、點(diǎn)擊操作等操作。在測試過程中還有一些場景需要進(jìn)行截圖操作,在基礎(chǔ)類庫層中定義一個截圖方法并指定截圖的存儲路徑,截圖保存時命名為“頁面(功能名稱)(當(dāng)前時間).png”格式。

        2) 頁面封裝層:Page包中的所有頁面層均繼承基礎(chǔ)類庫層,在頁面層中封裝元素的定位方式包括:Xpath、ID、CSS等八種定位方式和元素的定位路徑,并調(diào)用基礎(chǔ)類庫層實(shí)現(xiàn)元素的定位與操作[4]109。

        3) 測試用例層:TestCase包中存放測試用例文件,每個測試用例文件都包含一個完整業(yè)務(wù)邏輯的測試用例。測試用例層可以調(diào)用一個或多個頁面封裝層,來實(shí)現(xiàn)特定場景的測試[4]。

        4) 工具模塊:Utils包中存放工具類,其中包含自定義日志類,在其中定義日志的存儲路徑、日志的級別等。

        5) 持續(xù)集成工具:測試框架集成了Jenkins持續(xù)集成工具,構(gòu)建完成后自動生成測試報(bào)告[4]108,測試人員可以通過Jenkins管理員賬號查看測試報(bào)告和日志。

        3 框架實(shí)現(xiàn)與應(yīng)用

        3.1 環(huán)境搭建

        實(shí)現(xiàn)自動化測試首先需要安裝Python3軟件并配置環(huán)境變量。然后安裝Selenium、Pytest、Allure-pytets和Jenkins等工具。Selenium用于Web應(yīng)用自動化測試。Pytest用于組織和執(zhí)行測試腳本。Allure用于生成豐富的測試報(bào)告。Jenkins用于自動化執(zhí)行測試任務(wù)。

        此外還需下載對應(yīng)的瀏覽器驅(qū)動,例如Chrome瀏覽器需要下載Chrome Driver,用于Selenium與瀏覽器進(jìn)行交互。

        安裝完成后,使用Selenium提供的API結(jié)合Python編程語言編寫測試腳本,使用Pytest框架組織和執(zhí)行測試腳本,使用Allure-pytest生成測試報(bào)告,最后使用Jenkins進(jìn)行持續(xù)集成,自動化執(zhí)行測試任務(wù)。

        本系統(tǒng)使用的主要工具架構(gòu)圖如圖2所示。

        3.2 測試用例設(shè)計(jì)

        本文以某系統(tǒng)的登錄模塊,單車管理模塊作為自動化測試框架的測試對象,該部分的測試用例設(shè)計(jì)如表1所示。采用等價(jià)類劃分法設(shè)計(jì)登錄模塊的測試用例。

        3.3 自動化測試實(shí)現(xiàn)

        在進(jìn)行測試實(shí)現(xiàn)時,首先需要進(jìn)行測試頁面的頁面對象設(shè)計(jì),以實(shí)現(xiàn)頁面元素的封裝;其次需要進(jìn)行測試用例的封裝,采用數(shù)據(jù)驅(qū)動的方式來組織測試數(shù)據(jù);完成以上步驟后執(zhí)行測試,生成測試報(bào)告;最后使用持續(xù)集成工具來構(gòu)建項(xiàng)目并自動執(zhí)行測試。

        1) 頁面對象設(shè)計(jì)

        本框架在模塊設(shè)計(jì)上使用了Page-Object思想,每個頁面都會有一個對應(yīng)的頁面類,在頁面類中封裝該頁面的元素和操作方法。 以登錄模塊為例,在Login類中以元組的形式封裝登錄頁面所需的用戶名、密碼和登錄按鈕,封裝代碼如圖3所示。

        圖3方框中標(biāo)出的對象自上而下分別為用戶名輸入框、密碼輸入框以及登錄按鈕,以元組的方式封裝元素定位方式By.XPATH和定位路徑。

        2) 數(shù)據(jù)驅(qū)動

        使用Pytest內(nèi)置的參數(shù)化功能進(jìn)行數(shù)據(jù)封裝實(shí)現(xiàn)數(shù)據(jù)驅(qū)動,完成測試數(shù)據(jù)和測試邏輯分離。以登錄模塊為例,將登錄所需的用戶名和密碼封裝為一個元組,使用Pytest的參數(shù)化裝飾器將此元組作為參數(shù)傳遞給登錄函數(shù),關(guān)鍵代碼如圖4所示。

        圖4方框中使用了Pytest的 @pytest.mark.parametrize修飾器,將用戶名和密碼封裝為一個元組并作為參數(shù)傳遞給登錄函數(shù),在函數(shù)中進(jìn)行調(diào)用完成登錄功能的測試。

        3) 測試報(bào)告

        在測試框架中使用Allure-pytest庫生成自定義測試報(bào)告。該庫提供了修飾器和注解,用于標(biāo)注測試用例的功能模塊、標(biāo)題以及重要級別,從而生成詳細(xì)的測試報(bào)告。在測試報(bào)告中可以查看測試用例狀態(tài)圖,該圖標(biāo)注了測試用例通過百分比,還標(biāo)注出了失敗故障以及跳過的比例。報(bào)告樣式如圖5所示。

        除用例狀態(tài)圖外,還可以查看詳細(xì)的功能報(bào)告,其中包括測試模塊、測試用例、測試數(shù)據(jù)、測試用例耗時,以及測試日志等內(nèi)容詳細(xì)界面如圖6所示。

        圖6中左半部分為所有的測試模塊及其詳細(xì)數(shù)據(jù),例如在登錄模塊下可以看到五個測試用例,在測試用例下可以看到測試數(shù)據(jù)、用例狀態(tài)和用例耗時。右半部分是單個測試用例的詳細(xì)數(shù)據(jù),主要包括測試用例的優(yōu)先級、耗時、參數(shù)和日志。

        4) 持續(xù)集成工具

        本框架使用Jenkins作為持續(xù)集成工具,用于自動化打包部署和測試報(bào)告的生成。在Jenkins中,可以通過點(diǎn)擊測試報(bào)告來查看詳細(xì)的測試結(jié)果。每次構(gòu)建完成后,可以查看上次構(gòu)建的成功與失敗情況,以及構(gòu)建所花費(fèi)的時間等信息。具體的界面如圖7所示。

        圖7中方框標(biāo)出的對象從左往右依次是查看測試報(bào)告按鈕、上次成功時間、上次失敗時間、上次持續(xù)時間以及構(gòu)建按鈕。

        3.4 框架評估

        本框架可以增加代碼的復(fù)用率,可以生成較美觀的測試報(bào)告,在回歸測試以及其他測試中具有較好的效果。測試人員可以較輕松地完成測試工作,通過自定義的測試報(bào)告和截圖可以很好地分析出測試失敗的原因,因此使用本框架可以幫助團(tuán)隊(duì)更高效地測試Web應(yīng)用。

        4 結(jié)束語

        本文提出的一種基于Selenium和Pytest的Web自動化測試框架,可以減少代碼冗余,以及編寫腳本的時間,提高測試效率,減少測試工作量,使用該框架可以生成優(yōu)美的測試報(bào)告,用例執(zhí)行后生成截圖和日志供測試人員分析,使用本框架可以更高效、更便捷地完成測試任務(wù)。本框架在一些任務(wù)上還存在不足,例如測試手機(jī)登錄時選擇驗(yàn)證碼登錄的功能不能實(shí)現(xiàn)自動化,對于一些復(fù)雜的驗(yàn)證碼,則需要在后期的研究中進(jìn)行實(shí)現(xiàn)。

        參考文獻(xiàn):

        [1] 單攀攀.一種基于Selenium與Unittest的Web自動化測試框架[J].信息技術(shù)與網(wǎng)絡(luò)安全,2021,40(9):77-80.

        [2] 羊昌燕,鄧印凱.基于Selenium的自動化測試框架設(shè)計(jì)[J].信息技術(shù)與信息化,2021(10):65-68.

        [3] 楊靜.自動化測試平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2020.

        [4] 吳伶琳,方巍.Web自動化測試開源框架研究[J].信息技術(shù)與信息化,2022(11):108-111.

        [5] 朱佳藝,劉從軍.基于Selenium的自動化測試框架設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2023,22(5):103-108.

        【通聯(lián)編輯:謝媛媛】

        猜你喜歡
        自動化測試
        基于Java反射的APP自動化混合測試框架的研究與實(shí)現(xiàn)
        移動通信(2016年22期)2017-03-07 22:22:59
        Hadoop性能測試自動化研究
        數(shù)據(jù)驅(qū)動和關(guān)鍵字驅(qū)動的研究與應(yīng)用
        軟件(2016年4期)2017-01-20 09:56:35
        淺談空調(diào)控制器自動化測試
        東方教育(2016年7期)2017-01-17 21:28:10
        基于多總線結(jié)構(gòu)的電路板測試系統(tǒng)設(shè)計(jì)研究
        航空航天與國防電子新形勢下自動化測試系統(tǒng)的應(yīng)用
        基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動化測試框架的設(shè)計(jì)與實(shí)現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:45:45
        自動化測試實(shí)現(xiàn)研究
        中國市場(2016年34期)2016-10-15 04:20:40
        天線伺服自動化測試系統(tǒng)的設(shè)計(jì)與應(yīng)用
        一種航空交換機(jī)中CAN總線的自動化測試方法
        日产精品久久久久久久性色| 亚洲天堂亚洲天堂亚洲色图| 中文字幕av久久激情亚洲精品| 亚洲色图在线视频观看| 白浆高潮国产免费一区二区三区| 亚洲国产成人久久综合一区77| 欧美大屁股xxxxhd黑色| 亚洲美免无码中文字幕在线| 国产精品成人aaaaa网站| 国产肥熟女视频一区二区三区| 亚洲第一网站免费视频| 精品国产又大又黄又粗av| 91精品国自产拍老熟女露脸| 99久久人妻无码精品系列| 久久99热久久99精品| 亚洲制服无码一区二区三区| 国产精品三级国产精品高| 丰满少妇被爽的高潮喷水呻吟| 狠狠97人人婷婷五月| 色窝窝免费播放视频在线| 欧美日本国产三级在线| 娇柔白嫩呻吟人妻尤物| 粉色蜜桃视频完整版免费观看在线| 91久久偷偷做嫩模影院| 久久视频在线| 伊人色网站| 精品国产迪丽热巴在线| 蜜桃免费一区二区三区| 偷偷色噜狠狠狠狠的777米奇| 欧美性福利| 国产精品一区一区三区| 色偷偷色噜噜狠狠网站30根| 亚洲中文字幕久在线| 国产山东熟女48嗷嗷叫| 亚洲成AV人片无码不卡| 国产精品一区二区三区三| 亚洲最新国产av网站| 九九久久精品无码专区| 国产中文字幕乱码在线| 国产一级r片内射视频播放| 国产免费人成视频在线|