内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

基于Selenium+Python的web自動(dòng)化測(cè)試框架-創(chuàng)新互聯(lián)

一、什么是Selenium?

Selenium是一個(gè)基于瀏覽器的自動(dòng)化測(cè)試工具,它提供了一種跨平臺(tái)、跨瀏覽器的端到端的web自動(dòng)化解決方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),太和企業(yè)網(wǎng)站建設(shè),太和品牌網(wǎng)站建設(shè),網(wǎng)站定制,太和網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,太和網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
  • Selenium IDE:Firefox的一個(gè)擴(kuò)展,它可以進(jìn)行錄制回放,并把錄制的操作以多種語(yǔ)言(例如java、python等)的形式導(dǎo)出成測(cè)試用例。

  • Selenium WebDriver:提供Web自動(dòng)化所需的API,主要用作瀏覽器控制、頁(yè)面元素選擇和調(diào)試。不同的瀏覽器需要不同的WebDriver。

  • Selenium Grid:提供了在不同機(jī)器的不同瀏覽器上運(yùn)行selenium測(cè)試的能力。

本文將詳細(xì)介紹如何運(yùn)用Python結(jié)合Selenium WebDriver庫(kù)搭建web自動(dòng)化測(cè)試框架。

二、自動(dòng)化測(cè)試框架

一個(gè)典型的自動(dòng)化測(cè)試框架一般包括用例管理模塊、自動(dòng)化執(zhí)行控制器、報(bào)表生成模塊和log模塊,這些模塊相輔相成。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

接下來(lái)介紹各模塊的邏輯單元:

1、用例管理模塊

用例管理模塊包括新增、修改、刪除等操作單元,這些單元又會(huì)涉及到用例書寫模式,測(cè)試數(shù)據(jù)庫(kù)的管理、可復(fù)用庫(kù)等。

2、自動(dòng)化控制器

控制器是自動(dòng)化用例執(zhí)行的組織模塊,主要是負(fù)責(zé)以什么方法執(zhí)行我們的測(cè)試用例.

3、報(bào)表生成模塊

主要負(fù)責(zé)執(zhí)行用例后的生成報(bào)告,一般以HTML格式居多,信息主要是用例執(zhí)行情況。另外還可以配置發(fā)送郵件功能。

4、log模塊

主要用來(lái)記錄用例執(zhí)行情況,以便于高效的調(diào)查用例失敗信息以及追蹤用例執(zhí)行情況。

三、自動(dòng)化框架的設(shè)計(jì)和實(shí)現(xiàn)

1、需求分析

首先我們的測(cè)試對(duì)象是一個(gè)web平臺(tái),基于此平臺(tái)設(shè)計(jì)的框架要包含測(cè)試用例管理、測(cè)試執(zhí)行控制器、測(cè)試報(bào)告以及測(cè)試日志的生成。

2、設(shè)計(jì)和實(shí)現(xiàn)

頁(yè)面管理

假設(shè)測(cè)試web對(duì)象為一個(gè)典型單頁(yè)面應(yīng)用,所以我們采用頁(yè)面模式。頁(yè)面模式是頁(yè)面與測(cè)試用例之間的紐帶,它將每個(gè)頁(yè)面抽象成一個(gè)單獨(dú)的類,為測(cè)試用例提供頁(yè)面元素的定位和操作。

BaseClass作為父類只包含driver成員變量,用來(lái)標(biāo)識(shí)Selenium中的WebDriver,以便在子類中定位頁(yè)面元素。LoginClass和PageClass作為子類,可以提供頁(yè)面元素的定位和操作方法。比如登錄頁(yè)面。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

從頁(yè)面看,需要操作的元素分別為:登錄用戶名、密碼、下次自動(dòng)登錄和登錄按鈕。具體實(shí)現(xiàn)代碼如下:

頁(yè)面父類BaseClass.py

基于Selenium+Python的web自動(dòng)化測(cè)試框架

LoginClass繼承自BaseClass,并進(jìn)行登錄的元素定位以及操作實(shí)現(xiàn)。代碼中定位了username和password,并添加了設(shè)置用戶名和密碼的操作。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

公共庫(kù)模塊

公共庫(kù)模塊是為創(chuàng)建測(cè)試用例服務(wù)的,主要包括常量、公共函數(shù)、日志、報(bào)告等。

Common.py

基于Selenium+Python的web自動(dòng)化測(cè)試框架

測(cè)試用例信息類用來(lái)標(biāo)識(shí)測(cè)試用例,并且包括執(zhí)行用例、執(zhí)行結(jié)果信息,主要包括以下字段。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

日志主要用來(lái)記錄測(cè)試用例執(zhí)行步驟及產(chǎn)生的錯(cuò)誤信息,不同的信息有不同的日志級(jí)別,比如Information、Warning、Critical和Debug。由于每個(gè)測(cè)試用例產(chǎn)生的日志條目比較少,所以在測(cè)試框架中只利用了最高級(jí)別的日志打印,即Debug級(jí)別,該級(jí)別也會(huì)將其他所有的日志級(jí)別的信息同樣打印出來(lái)。在具體的實(shí)現(xiàn)中引用了Python標(biāo)準(zhǔn)庫(kù)中的logging類庫(kù),以便更方便的控制日志輸出。

測(cè)試用例倉(cāng)庫(kù)

用例倉(cāng)庫(kù)主要用來(lái)組織自動(dòng)化測(cè)試用例。每條測(cè)試用例都被抽象成一個(gè)獨(dú)立的類,并且均繼承自u(píng)nittest.TestCase類。 Python中的unittest庫(kù)提供了豐富的測(cè)試框架支持,包括測(cè)試用例的setUp和tearDown方法,在實(shí)現(xiàn)用例的過(guò)程中可以重寫。依托頁(yè)面管理和公共庫(kù)模塊實(shí)現(xiàn)的頁(yè)面方法和公共函數(shù),每一個(gè)測(cè)試用例腳本的書寫都會(huì)非常清晰簡(jiǎn)潔。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

從這個(gè)測(cè)試用例中,我們可以看到

  • Setup中定義了執(zhí)行測(cè)試用例前的一些實(shí)例化工作
  • tearDown對(duì)執(zhí)行完測(cè)試做了清理和寫日志文件工作
  • 測(cè)試步驟、測(cè)試數(shù)據(jù)和測(cè)試檢查點(diǎn)非常清晰,易修改(比如用戶名密碼)
  • 日志級(jí)別僅有Debug,所以寫日志僅需用同一Log方法

3、用例執(zhí)行模塊

執(zhí)行模塊主要用來(lái)控制測(cè)試用例腳本的批量執(zhí)行,形成一個(gè)測(cè)試集。用例的執(zhí)行引用了Python標(biāo)準(zhǔn)庫(kù)中的subprocess來(lái)執(zhí)行nosetests的shell命令,從而執(zhí)行給定測(cè)試用例集中的用例。測(cè)試用例集是一個(gè)簡(jiǎn)單的純文本文件,實(shí)現(xiàn)過(guò)程中利用了.txt文件testcases.txt。

基于Selenium+Python的web自動(dòng)化測(cè)試框架

用例前沒(méi)有“#“標(biāo)記的測(cè)試用例腳本會(huì)被執(zhí)行,而有”#“標(biāo)記的則會(huì)被忽略,這樣可以很方便的控制測(cè)試集的執(zhí)行,當(dāng)然也可以創(chuàng)建不同的文件來(lái)執(zhí)行不同的測(cè)試集。  

四、需要改進(jìn)的模塊

對(duì)于現(xiàn)有實(shí)現(xiàn)的測(cè)試框架,已經(jīng)可以滿足web對(duì)象的自動(dòng)化需求,但還是有些可以改進(jìn)提高的地方,比如:

  • 部分用例可以嘗試數(shù)據(jù)驅(qū)動(dòng)。
  • 二次封裝selenium的By函數(shù),以便更高效定位元素。
  • 沒(méi)有進(jìn)行持續(xù)化集成。

五、總結(jié)

基于Selenium實(shí)現(xiàn)的web自動(dòng)化測(cè)試框架不僅輕量級(jí)而且靈活,可以快速地開(kāi)發(fā)自動(dòng)化測(cè)試用例,結(jié)合本篇的框架設(shè)計(jì)和一些好的實(shí)踐,希望對(duì)大家以后的web自動(dòng)化框架的設(shè)計(jì)和實(shí)現(xiàn)有所幫助。

作者:武貫祥

來(lái)源:宜信技術(shù)學(xué)院

名稱欄目:基于Selenium+Python的web自動(dòng)化測(cè)試框架-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://www.rwnh.cn/article46/cejpeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、云服務(wù)器、自適應(yīng)網(wǎng)站、商城網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司
临汾市| 榆林市| 宜宾市| 庐江县| 图木舒克市| 凤庆县| 娱乐| 贞丰县| 鸡西市| 会昌县| 遂昌县| 定安县| 五华县| 浙江省| 施秉县| 于田县| 巴中市| 利津县| 孟州市| 多伦县| 淄博市| 临泽县| 吴桥县| 浦北县| 阳信县| 玉溪市| 东乌珠穆沁旗| 防城港市| 林西县| 尉犁县| 红安县| 安多县| 谷城县| 宁强县| 克什克腾旗| 汾西县| 临潭县| 泰和县| 大港区| 阿城市| 射洪县|