中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Selenium自動化框架的簡單介紹和具體使用

發布時間:2021-09-08 15:35:49 來源:億速云 閱讀:265 作者:chen 欄目:大數據

本篇內容主要講解“Selenium自動化框架的簡單介紹和具體使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Selenium自動化框架的簡單介紹和具體使用”吧!

一、什么是Selenium?


        Selenium是一個基于瀏覽器的自動化工具,她提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:

  1. Selenium IDE:Firefox的一個擴展,它可以進行錄制回放,并可以把錄制的操作以多種語言(例如java,python等)的形式導出成測試用例。

  2. Selenium WebDriver:提供Web自動化所需的API,主要用作瀏覽器控制、頁面元素選擇和調試。不同的瀏覽器需要不同的WebDriver。

  3. Selenium Grid:提供了在不同機器的不同瀏覽器上運行selenium測試的能力  

        本文使用Python結合Selenium WebDriver庫進行自動化測試框架的搭建。

二、自動化測試框架


        一個典型的自動化測試框架一般包括用例管理模塊、自動化執行控制器、報表生成模塊和log模塊,這些模塊相輔相成。

Selenium自動化框架的簡單介紹和具體使用

接下來介紹一下各模塊的邏輯單元:

1)用例管理模塊

    用例管理模塊包括新增、修改、刪除等操作單元,這些單元又會涉及到用例書寫模式,測試數據庫的管理、可復用庫等。

2)自動化控制器

    控制器是自動化用例執行的組織模塊,主要是負責以什么方法執行我們的測試用例

3)報表生成模塊

    主要負責執行用例后的生成報告,一般以HTML格式居多,信息主要是用例執行情況。另外還可以配置發送郵件功能。

4)log模塊

    主要用來記錄用例執行情況,以便于高效的調查用例失敗信息以及追蹤用例執行情況。

三、自動化框架的設計和實現


1、需求分析

首先我們的測試對象是一個web平臺,基于此平臺設計的框架要包含測試用例管理、測試執行控制器、測試報告以及測試日志的生成。

2、設計和實現

    1)頁面管理

        假設測試web對象為一個典型單頁面應用,所以我們采用頁面模式。頁面模式

是頁面與測試用例之間的紐帶,它將每個頁面抽象成一個單獨的類,為測試用例提供頁面元素的定位和操作。

        BaseClass作為父類只包含driver成員變量,用來標識Selenium中的WebDriver,以便在子類中定位頁面元素。LoginClass和PageClass作為子類,可以提供頁面元素的定位和操作方法。比如登錄頁面。

Selenium自動化框架的簡單介紹和具體使用

        從頁面看,需要操作的元素分別為,登錄用戶名、密碼、下次自動登錄和登錄按鈕,具體實現代碼如下:

頁面父類BaseClass.py

Selenium自動化框架的簡單介紹和具體使用

        LoginClass繼承自BaseClass,并進行登錄的元素定位以及操作實現。代碼中定位了username和password,并添加了設置用戶名和密碼的操作。

Selenium自動化框架的簡單介紹和具體使用

    2)公共庫模塊

        公共庫模塊是為創建測試用例服務的,主要包括常量、公共函數、日志、報告等。

Common.py

Selenium自動化框架的簡單介紹和具體使用

        測試用例信息類用來標識測試用例,并且包括執行用例、執行結果信息,主要包括以下字段。

Selenium自動化框架的簡單介紹和具體使用

        日志主要用來記錄測試用例執行步驟及產生的錯誤信息,不同的信息有不同的日志級別,比如Information,Warning,Critical和Debug。由于每個測試用例產生的日志條目比較少,所以在測試框架中只利用了最高級別的日志打印,即Debug級別,該級別也會將其他所有的日志級別的信息同樣打印出來。在具體的實現中引用了Python標準庫中的logging類庫,以便更方便的控制日志輸出。

3)測試用例倉庫

        用例倉庫主要用來組織自動化測試用例。每條測試用例都被抽象成一個獨立的類,并且均繼承自unittest.TestCase類。 Python中的unittest庫提供了豐富的測試框架支持,包括測試用例的setUp和tearDown方法,在實現用例的過程中可以重寫。依托頁面管理和公共庫模塊實現的頁面方法和公共函數,每一個測試用例腳本的書寫都會非常清晰簡潔。

Selenium自動化框架的簡單介紹和具體使用

        從這個測試用例中,我們可以看到

1. Setup中定義了執行測試用例前的一些實例化工作

2. tearDown對執行完測試做了清理和寫日志文件工作

3. 測試步驟、測試數據和測試檢查點非常清晰,易修改(比如用戶名密碼)

4. 日志級別僅有Debug,所以寫日志僅需用同一Log方法

3)用例執行模塊

        執行模塊主要用來控制測試用例腳本的批量執行,形成一個測試集。用例的執行引用了Python標準庫中的subprocess來執行nosetests的shell命令,從而執行給定測試用例集中的用例。測試用例集是一個簡單的純文本文件,實現過程中利用了.txt文件testcases.txt

Selenium自動化框架的簡單介紹和具體使用

        用例前沒有“#“標記的測試用例腳本會被執行,而有”#“標記的則會被忽略,這樣可以很方便的控制測試集的執行,當然也可以創建不同的文件來執行不同的測試集。

四、需要改進的模塊

        對于現有實現的測試框架,已經可以滿足web對象的自動化需求,但還是有些可以改進提高的地方,比如:

1) 部分用例可以嘗試數據驅動

2) 二次封裝selenium的By函數,以便更高效定位元素

3)沒有進行持續化集成

到此,相信大家對“Selenium自動化框架的簡單介紹和具體使用”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

方山县| 延安市| 陆河县| 本溪| 望谟县| 石屏县| 宾川县| 南阳市| 枣庄市| 信丰县| 临海市| 闵行区| 马边| 炉霍县| 神池县| 会泽县| 禹城市| 台北县| 尚志市| 彭州市| 高碑店市| 白沙| 肇州县| 大邑县| 土默特右旗| 岑溪市| 工布江达县| 抚州市| 新余市| 民权县| 辉县市| 沾化县| 恩平市| 东乡县| 通化县| 富裕县| 特克斯县| 周至县| 北海市| 安阳市| 库伦旗|