• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

    中圖分類號:TP311? ? ? 文獻標識碼:A

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

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

    0 引言

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

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

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

    1.1 Selenium測試工具

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

    1.2 Pytest測試框架

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

    1.3 Allure報告生成工具

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

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

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

    2 框架功能分析

    2.1 功能自動化測試

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

    2.2 頁面對象管理

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

    2.3 框架的主要功能

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

    2.4 框架的組成部分

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

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

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

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

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

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

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

    3.1 環(huán)境搭建

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

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

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

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

    3.2 測試用例設(shè)計

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

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

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

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

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

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

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

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

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

    3) 測試報告

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

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

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

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

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

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

    3.4 框架評估

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

    4 結(jié)束語

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

    參考文獻:

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

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

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

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

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

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

    猜你喜歡
    自動化測試
    基于Java反射的APP自動化混合測試框架的研究與實現(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è)計研究
    價值工程(2016年32期)2016-12-20 20:32:01
    航空航天與國防電子新形勢下自動化測試系統(tǒng)的應(yīng)用
    價值工程(2016年29期)2016-11-14 02:40:46
    基于CTI—TET和SeleniumWebdriver的Web應(yīng)用自動化測試框架的設(shè)計與實現(xiàn)
    軟件工程(2016年8期)2016-10-25 15:45:45
    自動化測試實現(xiàn)研究
    中國市場(2016年34期)2016-10-15 04:20:40
    天線伺服自動化測試系統(tǒng)的設(shè)計與應(yīng)用
    一種航空交換機中CAN總線的自動化測試方法
    安岳县| 沙田区| 西安市| 剑阁县| 延安市| 鞍山市| 土默特左旗| 壶关县| 尉氏县| 平远县| 交口县| 得荣县| 镇江市| 奉贤区| 沐川县| 柯坪县| 德化县| 武定县| 红桥区| 泰和县| 修文县| 板桥市| 山东| 和政县| 武乡县| 汕尾市| 榆树市| 临武县| 江口县| 绿春县| 华宁县| 洛扎县| 合作市| 桐乡市| 公主岭市| 临邑县| 济宁市| 连江县| 德清县| 牟定县| 温泉县|