1 什么是selenium
萬年ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!Selenium 是一個基于瀏覽器的自動化工具,它提供了一種跨平臺、跨瀏覽器的端到端的web自動化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:
本文中主要使用python結合Selenium WebDriver庫進行自動化測試框架的搭建。
2 自動化測試框架
一個典型的自動化測試框架一般包括用例管理模塊、自動化執(zhí)行控制器、報表生成模塊和日志模塊等,這些模塊之間不是相互孤立的,而是相輔相成的。
下面來介紹下每個模塊的邏輯單元:
用例管理模塊包括用例的添加、修改、刪除等操作單元,這些單元也會涉及到用例書寫的模式,測試數據的管理、可復用庫等
控制器是自動化用例執(zhí)行的組織模塊,主要負責以什么方式去執(zhí)行用例。比較典型的控制器有用戶圖形界面(GUI)和“commandline+文件”兩種。
報表生成模塊主要負責執(zhí)行完用例以后生成報表,報表一般以HTML格式居多,信息主要包括用例的執(zhí)行情況及相應的總結報告。另外還可以添加發(fā)送郵件功能。
日志模塊主要用來記錄用例的執(zhí)行情況,以便于更高效的調查用例失敗信息及追蹤用例執(zhí)行情況。
3 自動化框架的設計與實現
3.1 需求分析
測試對象是一個典型的后臺系統(tǒng)的Web展現平臺,基于此平臺設計的自動化框架要包含測試用例管理、測試執(zhí)行控制、測試報表及測試日志的生成,整體測試框架要輕量易用。
3.2 概要設計
概要設計包括了四個大的模塊:公共庫模塊(可復用函數、日志管理、報表管理以及發(fā)送郵件管理)、用例倉庫(具體用例的管理)、頁面管理(單獨對Web頁面進行抽象,封裝頁面元素和操作方法)以及執(zhí)行模塊。
概要設計類圖:
3.3 詳細設計與實現
3.3.1 頁面管理
測試Web對象是一個典型的單頁面應用,因此采用頁面模式(page pattern)來進行組織:
頁面模式是頁面與測試用例之間的橋梁,它將每個頁面抽象成一個單獨的頁面類,為測試用例提供頁面元素的定位和操作。
頁面模式的類圖如下:
BasePage作為基類只包含一個driver成員變量,它用來標記Selenium中的WebDriver,以便在BasePage的派生類中定位頁面元素。LoginPage和PageN等作為派生類,可以提供相應頁面元素的定位和操作方法。比如測試對象的登錄頁面:
從頁面可以看出,需要操作的頁面元素分別為:Username,Password,remember my username checkbox和Sign in按鈕,它們對應的操作為輸入用戶名和密碼,點選checkbox和點擊Sign In按鈕,具體代碼級別的實現如下:
頁面基類BasePage.py:
class BasePage(object): """description of class""" #webdriver instance def __init__(self, driver): self.driver = driver