版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、內(nèi)容摘要自動化測試簡介自動化測試類型自動化測試優(yōu)勢、劣勢自動化測試適用范圍自動化測試工具Selenium簡介自動化測試框架第1頁,共46頁。自動化測試簡介自動化測試是使用自動化測試工具或編寫代碼來替代手工測試的測試類型。自動化測試只是輔助手工測試,并不能完全替代手工,自動化更多的是去做驗證型測試而非探索性測試,目的是將手工測試從重復的勞動中脫離出來,節(jié)約時間、人力成本,并且在新增一個功能時,可以對其相關所有功能做回歸測試,提高軟件的質(zhì)量。第2頁,共46頁。敏捷測試與自動化測試為什么引入自動化測試敏捷開發(fā)的最大特點是高速迭代,有周期性,并且能夠及時、持續(xù)的響應客戶的頻繁反饋。伴隨著頻繁的迭代,測
2、試人員需要頻繁的重新進行測試。在此由于系統(tǒng)是不穩(wěn)定的系統(tǒng),也造成了測試的不穩(wěn)定,我們不知道這次的故事是否會影響到系統(tǒng)的其他功能。在敏捷測試過程中,項目后期不會給予測試人員很多的集成測試時間,而且測試人員也無法在每次的迭代完成之后對之前的迭代進行回歸測試,基于這一點,就需要自動化測試在每個迭代完成時對之前的迭代進行集成測試第3頁,共46頁。自動化測試類型UI自動化性能自動化接口自動化單元測試自動化第4頁,共46頁。自動化測試優(yōu)勢、劣勢優(yōu)勢:節(jié)約人力,代碼維護好,可自動執(zhí)行節(jié)約時間,測試腳本可在晚上進行執(zhí)行回歸測試,提高軟件質(zhì)量代碼可復用第5頁,共46頁。自動化測試優(yōu)勢、劣勢劣勢:代碼維護成本高,
3、對測試人員的要求高不易做探索性測試不適合頻繁需求變更的項目第6頁,共46頁。自動化測試適用范圍需求變更不頻繁回歸測試測試人員有一定的編碼基礎產(chǎn)品型項目,項目周期長重復工作量大第7頁,共46頁。自動化測試工具QTPselenium瀏覽器IE/FireFoxIE/FireFox/Chrome/Opera語言VBJava/python/ruby/C#等是否收費有破解版,有部分插件是需要收費的免費開源是否容易上手容易有代碼基礎的容易是否存在GUI存在不存在是否支持錄制支持支持第8頁,共46頁。Selenium簡介Selenium是一款基于web應用程序的開源測試工具。Selenium測試直接運行在瀏覽
4、器中,就像真正的用戶在操作一樣。它支持Firefox、ie、Chrome等眾多瀏覽器。它同時支持JAVA、C#、Ruby、Python、PHP、Perl等眾多的主流語言。第9頁,共46頁。Selenium簡介Selenium Core:JavaScript FrameworkSelenium Core是Selenium的核心部分,它由一些純js代碼組成, 可以運行在windows/linux的不同browser上,我們就是通過這些js代碼,才可以實現(xiàn)程序?qū)g覽器的控制。IDE:Firefox插件IDE是在core的基礎上的一種應用, 通過UI實現(xiàn)類似QTP/Winner的腳本錄制回放功能;Se
5、lenium IDE是通過監(jiān)聽用戶對html頁面的操作來錄制腳本的,是真正能夠監(jiān)聽用戶對html頁面的操作的錄制工具第10頁,共46頁。Selenium簡介RC(Remote Control)Selenium RC模式,是客戶端利用各種編程語言,通過網(wǎng)絡向Selenium Server發(fā)送指令,Selenium Server接收到測試指令后,啟動瀏覽器并向其發(fā)出JavaScript調(diào)用實現(xiàn)對Html頁面的全面追蹤,并通過網(wǎng)絡把執(zhí)行結果返回給調(diào)用者Selenium Server的實現(xiàn)原理是其打開瀏覽器時,把自己的JavaScript文件嵌入網(wǎng)頁中。然后Selenium的網(wǎng)頁通過frame嵌入目標
6、網(wǎng)頁。這樣,就可以使用Selenium的JavaScript對象來控制目標網(wǎng)頁第11頁,共46頁。Selenium簡介WebDriverWebDriver啟動目標瀏覽器,并綁定到指定端口。該啟動的瀏覽器實例,做webdriver的remoteserver。Client端通過CommandExcuter發(fā)送HTTPRequest給remoteserver的偵聽端口(通信協(xié)議:thewebriverwireprotocol)Remoteserver需要依賴原生的瀏覽器組件(如:IEDriver.dll,chromedriver.exe),來轉(zhuǎn)化轉(zhuǎn)化瀏覽器的native調(diào)用第12頁,共46頁。Sel
7、enium RC與Selenium WebdriverSelenium RCSelenium WebDriverSelenium RC的結構復雜,因為服務器需要啟動在開始試運行前。webdriver架構比Selenium RC簡單,因為它控制著從操作系統(tǒng)層面的瀏覽器。Selenium服務器充當瀏覽器和Selenese的命令之間的中間人webdriver直接相互作用,以在瀏覽器和使用瀏覽器的引擎進行控制。Selenium RC的腳本執(zhí)行速度較慢,因為它使用了Javascript來與RC互動webdriver的速度更快,因為它直接交互使用的瀏覽器。Selenium RC不能支持無頭,因為它需要一個
8、真正的瀏覽器一起工作webdriver可以支持無頭執(zhí)行它是一個簡單的API復雜,API相比,RC有點大不能測試移動應用程序可測試iPhone/Android應用程序第13頁,共46頁。Selenium安裝(基于Python語言)下載并安裝Pythonpython-2.7.10.msi配置python環(huán)境變量環(huán)境變量:Path變量值:C:Python27下載setuptools【python基礎包工具】python easy_install.py安裝pippython setup.py install進入C:Python27ScriptsEasy_install.exe pip第14頁,共46頁
9、。Selenium安裝(基于Python語言)安裝selenium進入C:Python27Scripts,執(zhí)行pipinstall-Uselenium安裝java下載并安裝selenium服務端selenium-server-standalone-2.39.0.jar在selenium-server-standalone-2.39.0.jar目錄下執(zhí)行:java-jar selenium-server-standalone-2.39.0.jar安裝Chrome driver把chromedriver.exe放置到chrome安裝目錄下,并配置chromedriver.exe環(huán)境變量第15頁,共
10、46頁。瀏覽器操作設置最大化driver.maximize_window()設置瀏覽器大小driver.set_window_size(寬, 高)設置瀏覽器前進后退driver.back()driver.forward()關閉瀏覽器driver.quit()打開瀏覽器driver.get(“”)第16頁,共46頁。瀏覽器操作第17頁,共46頁。對象定位對象的定位和操作是自動化測試的核心部分,其中操作又是建立在定位的基礎上,因此對象的定位又顯得特別重要。對象的定位分為以下幾種:IdNameClass nameTag nameLink textXpath:部分瀏覽器會提供計算xpath的插件。(f
11、irefox、chrome)Css selector第18頁,共46頁。對象定位-單個元素定位Id定位:find_element_by_id()Name定位:find_element_by_name()Class name定位:find_element_by_class_name()tag name定位:find_element_by_tag_name()link text定位:find_element_by_link_text()find_element_by_partial_link_text()Xpath定位:find_element_by_xpath()css selector定位:f
12、ind_element_by_css_selector()第19頁,共46頁。對象定位-一組元素定位Id定位:find_elements_by_id()Name定位:find_elements_by_name()Class name定位:find_elements_by_class_name()tag name定位:find_elements_by_tag_name()link text定位:find_elements_by_link_text()find_elements_by_partial_link_text()Xpath定位:find_elements_by_xpath()css se
13、lector定位:find_elements_by_css_selector()第20頁,共46頁。對象定位對象的定位要依據(jù)idnamecssxpath的順序進行定位id、name是最常用并且最容易的方式Css、xpath往往會與id、name配合使用Xpath是最脆弱的方式unitsServices componesui第21頁,共46頁。對象定位第22頁,共46頁。對象定位第23頁,共46頁。對象定位-id第24頁,共46頁。對象定位-name第25頁,共46頁。對象定位-xpath第26頁,共46頁。操作測試對象清除元素內(nèi)容Clear()模擬按鍵輸入Send_keys(“”)單擊元素Cl
14、ick()提交表單Submit()獲取大小Size獲取文本內(nèi)容Text獲取相關屬性值get_attribute(name)查看對象是否可見is_displayed()獲取對象屬性get_attribute()第27頁,共46頁。鼠標事件右擊:context_click()雙擊:double_click()拖動:drag_and_drop(source,target)鼠標懸停:move_to_element()按下鼠標左鍵在一個元素上:click_and_hold()第28頁,共46頁。鍵盤事件send_keys(Keys.BACK_SPACE) 刪除鍵(BackSpace)send_keys(
15、Keys.SPACE) 空格鍵(Space)send_keys(Keys.TAB) 制表鍵(Tab)send_keys(Keys.ESCAPE) 回退鍵(Esc)send_keys(Keys.ENTER) 回車鍵(Enter)send_keys(Keys.CONTROL,a) 全選(Ctrl+A)send_keys(Keys.CONTROL,c) 復制(Ctrl+C)send_keys(Keys.CONTROL,x) 剪切(Ctrl+X)send_keys(Keys.CONTROL,v) 粘貼(Ctrl+V)第29頁,共46頁。設置等待時間固定休眠時間Sleep(時間)超時等待,設置最長等待時
16、間implicitly_wait(時間)設置每隔一段時間內(nèi)檢測當前頁面元素是否存在WebDriverWait(driver,時間).until( )WebDriverWait(driver,時間).until_not()第30頁,共46頁。層級定位元素有多層父元素,當定位子元素時需要先定位父元素,然后定位到子元素。driver.find_element_by_id().find_element_by_link_text()界面中多個frame,多個frame處于父級子級關系,先找到父級的frame1,再找到子級的frame2.(可通過frame的id及name進行定位)driver.switc
17、h_to_frame(“frame1)driver.switch_to_frame(frame2)第31頁,共46頁。窗口處理獲取當前窗口current_window_handle獲取所有窗口window_handles切換窗口switch_to_window(待切換窗口)第32頁,共46頁。對話框處理定位對話框alert = driver.switch_to_alert()獲取對話框文本內(nèi)容alert.text()點擊對話框確認按鈕alert.accept()點擊對話框取消按鈕alert.dismiss()第33頁,共46頁。下拉框處理test1test2test3test4test5tes
18、t6第34頁,共46頁。下拉框處理例子#-*-coding=utf-8from selenium import webdriverimport os,timedriver= webdriver.Chromefile_path = file:/ + os.path.abspath(test.html)driver.get(file_path)time.sleep(2)#先定位到下拉框m=driver.find_element_by_id(“optiontest)#再點擊下拉框下的選項m.find_element_by_xpath(/optionvalue=test2).click()time.s
19、leep(1)driver.quit()第35頁,共46頁。執(zhí)行js文件當遇到WebDriver無法完成的操作時,可以通過執(zhí)行js文件來完成。方法:execute_script(js)第36頁,共46頁。cookie處理獲取所有cookie信息get_cookies()獲取制定cookie信息get_cookies(name)添加cookie信息add_cookie(name,value)刪除特定cookiedelete_cookie(name)刪除所有cookiedelete_all_cookies()第37頁,共46頁。cookie處理獲取所有cookie信息get_cookies()獲取
20、制定cookie信息get_cookies(name)添加cookie信息add_cookie(name,value)刪除特定cookiedelete_cookie(name)刪除所有cookiedelete_all_cookies()第38頁,共46頁。驗證碼處理去掉驗證碼設置萬能驗證碼Python圖片驗證碼獲取(識別率不是百分之百)通過添加登錄cookie通過擋板第39頁,共46頁。斷言處理assert :驗證失敗了,測試終止Verify:驗證失敗了,其余測試案例繼續(xù)執(zhí)行Waitfor:待某一條件為True時測試案例執(zhí)行,待某一條件為false時測試案例失敗并暫停測試。第40頁,共46頁。
21、斷言處理assertLocation(判斷當前是在正確的頁面)assertTitle(檢查當前頁面的title是否正確)assertValue(檢查input的值, checkbox或radio,有值為”on”無為”off”)assertSelected(檢查select的下拉菜單中選中是否正確)assertSelectedOptions(檢查下拉菜單中的選項的是否正確)assertText(檢查指定元素的文本)assertTextPresent(檢查在當前給用戶顯示的頁面上是否有出現(xiàn)指定的文本)assertTextNotPresent(檢查在當前給用戶顯示的頁面上是否沒有出現(xiàn)指定的文本)as
22、sertAttribute(檢查當前指定元素的屬性的值)assertTable(檢查table里的某個cell中的值)assertEditable(檢查指定的input是否可以編輯)assertNotEditable(檢查指定的input是否不可以編輯)assertAlert(檢查是否有產(chǎn)生帶指定message的alert對話框)waitForElementPresent (等待檢驗某元素的存在。為真時,則執(zhí)行。)第41頁,共46頁。自動化測試框架為什么引入自動化測試框架 有別于傳統(tǒng)的桌面應用開發(fā),Web應用因為其迭代周期短,需求變化快特殊性質(zhì),越來越多的Web開發(fā)團隊在擁抱敏捷。同時隨著前端技術Javacript,Html5,等不斷被推出和完善,Web應用也變得越來越復雜很絢麗。這都給我們的測試帶來了挑戰(zhàn)。第42頁,共46頁。自動化測試框架為什么引入自動化測試框架持續(xù)變化的需求復雜的UI往往一個測試團隊需要應付多個項目的測試工作非常有限的資源(人力,成本)跨平臺、跨瀏覽器第43頁,共46頁。自動化測試框架為什么引入自動化測試框架沒有框架的自動化測試是找不到對象的,即使找到了也不會很幸福,就像沒有車沒有房很難找到對象是一樣的道理。第44頁,共46
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024五人入股成立教育科技有限公司合作協(xié)議書3篇
- 2025年南昌從業(yè)資格證考試答案貨運
- 2025年吉林貨運駕駛員從業(yè)資格題庫
- 2025年郴州貨運資格證考試真題
- 2024年版:高清影視制作與后期服務合同
- 2025年江西貨運從業(yè)資格證考試一共多少題
- 2025年海西貨運從業(yè)資格證怎么考
- 2024年煤炭貨場運營許可合同
- 2024年度互聯(lián)網(wǎng)+教育平臺委托經(jīng)營授權書3篇
- 2024年版權許可使用合同(電子書)
- 《兒童性教育》課件
- 【甲硝唑注射液工藝設計10000字】
- 中醫(yī)思維在臨床中的應用護理課件
- 年會拜年祝福視頻腳本
- 蘇教版五年級數(shù)學上冊期末復習課件
- 上海交通大學2003年481物理化學考研真題
- 2024年內(nèi)蒙古包頭能源公司招聘筆試參考題庫含答案解析
- 2024年內(nèi)蒙古包鋼集團公司招聘筆試參考題庫含答案解析
- 小學五年級科學上冊全冊教案(湘教版)
- 公司財務預算報告
- 《斯蒂芬·庫里》課件
評論
0/150
提交評論