版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Selenium+Webdriver+Python自動化測試環(huán)境一.Selenium+Webdriver+Python基本框架的介紹二.自動化測試環(huán)境的搭建三.selenium-ide腳本錄制和腳本寫作四.unittest的簡單介紹及使用五.網(wǎng)頁元素的定位六.瀏覽器的基本操作七.拓展:(1)測試報告的生成(2)數(shù)據(jù)驅(qū)動(文本、表格等)一.Selenium+Webdriver+Python基本框架介紹Selenium是一個開源的和便攜式的自動化軟件測試工具,用于測試Web應(yīng)用程序有能力在不同的瀏覽器和操作系統(tǒng)運行,相比QTP有以下優(yōu)點:*
開源免費,不用為破解而大傷腦筋*
小巧,對于不同的語言它只是一個包而已,而QTP需要下載安裝1個多G
的程序。*
支持多種腳本語言,這是最重要的一點,不管你以前更熟悉C、
java、ruby、python、或是C#
,你都可以通過selenium完成自動化測試,而QTP只支持VBS
*
支持多平臺:Windows、Linux、MAC
*
支持多瀏覽器:IE、Firefox、Chrome、Safari、Opera等一.Selenium+Webdriver+Python基本框架介紹一.Selenium+Webdriver+Python基本框架介紹Selenium:1、Selenium腳本錄制和回放2、Selenium自動化腳本(.py)編寫3、Selenium測試套(Testsuite)初始化,預(yù)置條件用例執(zhí)行部分清理,還原初始環(huán)境4、截圖以及結(jié)果報告的生成一.Selenium+Webdriver+Python框架的介紹
軟件列表Python(2.7.x)(腳本語言,驅(qū)動Selenium)SetupTools、pip工具(安裝包管理工具)Python的Selenium包(實現(xiàn)網(wǎng)頁自動化測試)瀏覽器(firfox,ie、chrome等)網(wǎng)頁驅(qū)動IE:IEDriver
Chrome:ChromedriverSeleniumIDE插件firebug插件(獲取網(wǎng)頁元素的Xpath、Css等)其他:HTMLTesterRunner.py(生成測試報告)、xlrd(對xls表格進(jìn)行讀操作)等腳本開發(fā)腳本執(zhí)行輔助腳本錄制第一步:下載并安裝Python(推薦使用2.7.x版本)exe文件運行安裝即可,安裝后環(huán)境變量中添加python的安裝目錄。第二步:下載并安裝Python的SetupTools:SetupTools就是一個幫助你安裝第三方工具包的增強(qiáng)工具軟件。下載文件后,對setuptools-x.x.tar.gz文件進(jìn)行解壓,進(jìn)入windows命令提示下執(zhí)行setup.py,X:\setuptools-x.x>pythonsetup.pyinstall
沒有報錯表示安裝成功。第三步:下載并安裝Python的包管理工具pip,pip—有點類似SetupTools
,但是比它強(qiáng)大。下載文件后,pip-x.x.tar.gz文件進(jìn)行解壓,進(jìn)入windows命令提示下執(zhí)行setup.py,如:X:\pipx.x>python
setup.py
install
沒有報錯表示安裝成功。切換到X:\Python27\Scripts
目錄下輸入:X:\Python27\Scripts
>
easy_install
pip沒有報錯表示安裝成功。二.自動化測試環(huán)境的搭建第四步:下載并安裝基于Python的Selenium包下載selenium
x.xx.x
,并解壓把整個目錄放到X:\Python27\Lib\site-packages目錄下,進(jìn)入windows命令提示下執(zhí)行setup.py,如:X:\Python27\Lib\site-packages\selenium-x.xx.x>pythonsetup.pyinstall沒有報錯表示安裝成功。第五步:驗證Selenium安裝是否成功.....其他:
Firefox瀏覽器,網(wǎng)頁驅(qū)動(IE:IEDriver
Chrome:Chromedriver),selenium-ide插件(腳本錄制),HTMLTesterRunner.py(生成測試報告),xlrd(對xls表格進(jìn)行讀操作)等HTMLTesterRunner.py(生成測試報告),xlrd(對xls表格進(jìn)行讀操作)將其放到Python的LIB庫中,ImportHTMLTesterRunner、Importxlrd就可實現(xiàn)相應(yīng)的功能。二.自動化測試環(huán)境的搭建二.自動化測試環(huán)境的搭建Selenium的IDE(集成開發(fā)環(huán)境)是一個易于使用的Firefox插件,用于開發(fā)Selenium測試案例。它提供了一個圖形用戶界面,用于記錄使用Firefox瀏覽器,用來學(xué)習(xí)和使用Selenium用戶操作,但它只能用于Firefox瀏覽器不支持其它瀏覽器。然而,所記錄的腳本可以被轉(zhuǎn)換成由Selenium支持多種編程語言和腳本可以在各種其它的瀏覽器,以及被執(zhí)行。
腳本錄制步驟:
第一步:打開火狐瀏覽器,在地址欄上輸入被測網(wǎng)頁的URL.第二步:菜單欄:工具-selenium-ide打開后,在的selenium-ide地址欄輸入相同的URL.第三步:點擊開始錄制第四步:在瀏覽器中進(jìn)行相應(yīng)的操作第五步:點擊結(jié)束錄制,查看并回放SeleniumIDE錄制的結(jié)果第六步:腳本導(dǎo)出(選擇導(dǎo)出需要的語言腳本:Python2/Unittest/webdiver
)三.selenium-ide腳本錄制和腳本寫作三.selenium-ide腳本本錄錄制制和和腳腳本本寫寫作作三.selenium-ide腳本本錄錄制制和和腳腳本本寫寫作作三.selenium-ide腳本本錄錄制制和和腳腳本本寫寫作作IDE錄制制腳腳本本存存在在局局限限和和問問題題::1、腳腳本本不不穩(wěn)穩(wěn)定定,,回回放放經(jīng)經(jīng)常常出出錯錯。。((部分分操操作作捕捕獲獲不不到到)2、閱閱讀讀性性差差,,不不知知道道自自動動化化測測試試執(zhí)執(zhí)行行了了具具體體哪哪些些操操作作,,和和實實現(xiàn)現(xiàn)什什么么功功能能。。((注釋釋)3、如如果果web頁面面中中的的個個別別元元素素發(fā)發(fā)生生了了變變化化,所所有有涉涉及及該該元元素素的的腳腳本本需需要要修修改改。。4、元元素素的的id或部部分分文文字字是是動動態(tài)態(tài)的的,,即每每次次執(zhí)執(zhí)行行的的腳腳本本都都是是不不同同的的。。((參數(shù)數(shù)化化)5.缺少少對對實實際際結(jié)結(jié)果果進(jìn)進(jìn)行行判判斷斷的的語語句句。。((斷言言)………等等等打開開IDLE(pythonGUI)>OPEN:加載載錄錄制制導(dǎo)導(dǎo)出出的的腳腳本本,,進(jìn)進(jìn)行行腳腳本本編編寫寫。。三.selenium-ide腳本本錄錄制制和和腳腳本本寫寫作作四.unittest的簡簡單單介介紹紹及及使使用用TestCase:一個個測測試試用用例例,或是是一一個個完完整整的的測測試試流流程程,,包包括括測測試試前前準(zhǔn)準(zhǔn)備備環(huán)環(huán)境境的的搭搭建建(setUp),執(zhí)執(zhí)行行測測試試代代碼碼(run)以及及測測試試后后環(huán)環(huán)境境的的還還原原(tearDown)。元測測試試(unittest)的本本質(zhì)質(zhì)也也就就在在這這里里,,一一個個測測試試用用例例是是一一個個完完整整的的測測試試單單元元,,通通過過運運行行這這個個測測試試單單元元,,可可以以對對某某一一個個問問題題進(jìn)進(jìn)行行驗驗證證。。TestSuite:而多個測測試用例例TestCase集合在一一起,就就是TestSuite,而且TestSuite也可以嵌嵌套TestSuite。TestLoader:用來加載載TestCase到TestSuite中的,其其中有幾幾個loadTestsFrom__()方法,就就是從各各個地方方尋找TestCase,創(chuàng)建它它們的實實例,然然后add到TestSuite中,再返返回一個個TestSuite實例。TextTestRunner:是來執(zhí)行行測試用用例的,,其中的的run(test)會執(zhí)行TestSuite/TestCase中的run(result)方法。測試的結(jié)結(jié)果會保保存到TextTestResult實例中,,包括運運行了多多少測試試用例,,成功了了多少,,失敗了了多少等等信息。。整個流程程:首先是要要寫好TestCase,然后由由TestLoader加載TestCase到TestSuite,然后由由TextTestRunner來運行TestSuite,運行的結(jié)結(jié)果保存存在TextTestResult中,整個個過程集集成在unittest.main模塊中。。四.unittest的簡單介介紹及使使用TestFixture:對一個測測試用例例環(huán)境的的搭建和和銷毀,,通過覆覆蓋TestCase的setUp()和tearDown()方法來實實現(xiàn)。這個有什什么用呢呢?比如如說在這這個測試試用例中中需要訪訪問數(shù)據(jù)據(jù)庫,那那么可以以在setUp()中建立數(shù)數(shù)據(jù)庫連連接以及及進(jìn)行一一些初始始化,在在tearDown()中清除在在數(shù)據(jù)庫庫中產(chǎn)生生的數(shù)據(jù)據(jù),然后后關(guān)閉連連接。注注意tearDown的過程很很重要,,要為以以后的TestCase留下一個個干凈的的環(huán)境。。一個完整整的測試試腳本包包含:1.importunittest2.定義一個個繼承自自unittest.TestCase的測試用用例類3.定義setUp和tearDown,在每個個測試用用例前后后做一些些輔助工工作。4.定義測試試用例,,名字以以test開頭。5.一個測試試用例應(yīng)應(yīng)該只測測試一個個方面,,測試目目的和測測試內(nèi)容容應(yīng)很明明確。主主要是調(diào)調(diào)用assertEqual、assertRaises等斷言方方法判斷斷程序執(zhí)執(zhí)行結(jié)果果和預(yù)期期值是否否相符。。6.調(diào)用unittest.main()啟動測試試7.如果測試試未通過過,會輸輸出相應(yīng)應(yīng)的錯誤誤提示。。如果測試試全部通通過則不不顯示任任何東西西,也可可以添加-v參數(shù)顯示示詳細(xì)信信息。四.unittest的簡單介介紹及使使用四.unittest的簡單介介紹及使使用介紹以下下unittest的基本用用法。第1種用法((以下代代碼是官官方文檔檔的sample)。importunittestclassTestSequenceFunctions(unittest.TestCase):defsetUp(self):self.seq=range(10)deftest_choice(self):element=random.choice(self.seq)self.assertTrue(elementinself.seq)deftest_sample(self):withself.assertRaises(ValueError):random.sample(self.seq,20)forelementinrandom.sample(self.seq,5):self.assertTrue(elementinself.seq)defsetDown(self):passif__name__=='__main__':unittest.main()1.從unittest.TestCase繼承一個個子類。。2.定義測試試方法,,以test開頭。3.調(diào)用unittest.main(),這個方方法會自自動執(zhí)行行所有以以test開頭的測測試方法法。四.unittest的簡單介介紹及使使用第2種調(diào)用方方法:自自己創(chuàng)建建一個TestSuite,添加需需要執(zhí)行行測試的的TestCase,然后使使用TestRunner().run(suite)執(zhí)行測試試。if__name__=='__main__':suite=unittest.TestSuite()suite.addTest(TestSequenceFunctions('test_choice')suite.addTest(TestSequenceFunctions('test_sample')unittest.TextTestRunner().run(suite)四.unittest的簡單單介紹紹及使使用測試主主要是是調(diào)用用assertEqual、assertRaises等斷言言方法法判斷斷程序序執(zhí)行行結(jié)果果和預(yù)預(yù)期值值是否否相符符。常見的的斷言言方法法有::selenium對web各元素素的操操作首首先就就要先先定位位元素素,定定位元元素的的方法法主要要有以以下幾幾種::1、通過過id定位元元素::find_element_by_id("id_vaule")2、通過過name定位元元素::find_element_by_name("name_vaule")3、通過過tag_name定位元元素::find_element_by_tag_name("tag_name_vaule")4、通過過class_name定位元元素::find_element_by_class_name("class_name")5、通過過css定位元元素::find_element_by_css_selector();6、通過過xpath定位元元素::find_element_by_xpath("xpath")7、通過過link定位::find_element_by_link_text("text_vaule")或者find_element_by_partial_link_text()五.網(wǎng)頁元元素的的定位位五.網(wǎng)頁元元素的的定位位下面是是百度度輸入入框的的html代碼,,可以以通過過firebug或者谷谷歌的的審查查元素素得::<inputtype=“text“name=”wd”id=“kw1”maxlength=““100““style=””width:474px;”autocomplete=““off””>1.通過id定位::則百度度的輸輸入框框即可可表示示為::find_element_by_id(“kw1”)2.通過name定位::則可以以表示示為::find_element_by_name(“wd””)3.通過tag_name定位::input其實就就是tag_name(標(biāo)簽簽名)),同樣也也可以以表示示成::find_element_by_tag_name("input")注意::通過過tag_name查找時時使用用find_element_by_tag_name查找到到的是是第一一個標(biāo)標(biāo)簽的的tag_name<divclass=”top”><span>Head</span></div><divclass=”top”><span>HeadName</span></div>4.通過class_name定位元元素::top=find_element_by_className(“top”);五.網(wǎng)頁元元素的的定位位5、通過過css定位元元素:用css定位是是比較較靈活活的,,想要要完全全弄懂懂,花花費的的時間間是比比較多多的,,個人人覺得得沒有有必要要,盡量不不使用用6、通過過xpath定位元元素::XPath是一種種在XML文檔中中定位位元素素的語語言。。因為為HTML可以看看做XML的一種種實現(xiàn)現(xiàn),所所以selenium用戶可可是使使用這這種強(qiáng)強(qiáng)大語語言在在web應(yīng)用中中定位位元素素。XPATH的值可可以通通過firebug或者谷谷歌的的審查查元素素中::右鍵功功能::復(fù)制制XPATH即可獲獲得。。例子::driver.find_element_by_xpath("http://tr[7]/td[2]")六.瀏覽器器的基基本操操作常用操操作::六.瀏覽器器的基基本操操作ActionChains類鼠標(biāo)標(biāo)操作作的常常用方方法::引入ActionChains類:mon.action_chainsimportActionChainscontext_click()右擊——如:RightClick=driver.find_element_by_id("id")ActionChains(driver).context_click(RightClick).perform()double_click()雙擊——如:DoubleClick=driver.find_element_by_name("name")ActionChains(driver).double_click(DoubleClick).perform()drag_and_drop(source,target)鼠標(biāo)拖拖放——source::鼠標(biāo)按按下的的源元元素;;target::鼠標(biāo)釋釋放的的目標(biāo)標(biāo)元素素——如:element=driver.find_element_by_name("name")target=driver.find_element_by_name("name")ActionChains(driver).drag_and_drop(element,target).perform()move_to_element()鼠標(biāo)懸停在在一個元素素上——如:above=driver.find_element_by_xpath("xpath路徑")ActionChains(driver).move_to_element(above).perform()click_and_hold()按下鼠標(biāo)左左鍵在一個個元素上——如:left=driver.find_element_by_name("name")ActionChains(driver).click_and_hold(left).perform()六.瀏覽器的基基本操作鍵盤事件::引入Keys類包:mon.keysimportKeyssend_keys()輸入框輸入入內(nèi)容——如:driver.find_element_by_id("id").send_keys("XXX")send_keys(Keys.SPACE)輸入空格——如:driver.find_element_by_id("id").send_keys(Keys.SPACE)send_keys(Keys.CONTROL,‘a(chǎn)‘)ctrl+a全選輸入框框的內(nèi)容——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘a(chǎn)‘)send_keys(Keys.CONTROL,‘x‘)ctrl+x剪切輸入框框的內(nèi)容——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘x‘)send_keys(Keys.CONTROL,‘c‘)復(fù)制——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘c‘)send_keys(Keys.CONTROL,‘v‘)ctrl+v粘貼到輸入入框——如:driver.find_element_by_id("id").send_keys(Keys.CONTROL,‘v‘)send_keys(Keys.ENTER)回車代替點點擊——如:driver.find_element_by_id("id").send_keys(Keys.ENTER)send_keys(Keys.TAB)制表鍵(Tab)——如:driver.find_element_by_id("id").send_keys(Keys.TAB)send_keys(Keys.ESCAPE)回退鍵(Esc)——如:driver.find_element_by_id("id").send_keys(Keys.ESCAPE)七.拓展-測試報告的的生成#導(dǎo)入測試報報告生成的的模塊importHTMLTestRunnersuite=unittest.TestSuite()#定義生成測測試報告的的名稱filename1=r".result\"+str(time.strftime('%Y%m%d%H%M%S'))+".html"
fp=file(filename1,'wb')#定義測試報報告的路徑徑,標(biāo)題,,描述等內(nèi)內(nèi)容runner=HTMLTestRunner.HTMLTes
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《小烏龜看爺爺》課件
- 《電氣安全操作技術(shù)》課件
- 三年級數(shù)學(xué)認(rèn)識分?jǐn)?shù)課件
- 《神經(jīng)系統(tǒng)的療養(yǎng)》課件
- 單位管理制度集合大合集人員管理篇十篇
- 單位管理制度匯編大合集人力資源管理十篇
- 中心對稱課件
- 單位管理制度分享大全職工管理篇
- 《證據(jù)法的基礎(chǔ)知識》課件
- 《診斷學(xué)》課程標(biāo)準(zhǔn)
- 心肺復(fù)蘇應(yīng)急演練腳本
- 華南理工大學(xué)2022年622物理化學(xué)考研真題(含答案)
- 建筑垃圾安全生產(chǎn)管理制度范本
- 酒店總經(jīng)理應(yīng)聘計劃書
- 22G101三維立體彩色圖集
- 2023年CQE客訴工程師年度總結(jié)及下年規(guī)劃
- MQL4命令中文詳解手冊
- 人教版地理七年級上冊期末測試題(4套含答案)
- 水平井施工方案及措施
- 小學(xué)數(shù)學(xué)一年級上冊-期末測試卷(二)含答案-人教版
- 登金陵鳳凰臺
評論
0/150
提交評論