Ui自動化概念+Web自動化測試框架介紹


UI

1.UI自動化測試概念:我們先明確什么是UI

UI,即(User Interface簡稱UI用戶界面)是系統和用戶之間進行交互和信息交換的媒介 UI自動化測試:
Web自動化測試和移動自動化測試都屬於UI自動化測試,UI自動化測試就是借助自動化工具對程序UI層進行自動化的測試

 

2.為什么對UI采用自動化測試?

從不同的階段或層次來說,自動化測試可以分為單元測試、接口測試、UI測試。如果一個產品從沒有做單元測試或接口測試,只做u房的自動化測試是不科學的,很難從本質保證產品的質量
如果妄圖實現全面的UI層的自動化測試更是勞民傷財,投入了大量人力時間結果卻不盡人意,因為越往上層,用例維護成本越高,尤其是UI層的元素經常改變的產品。
但不管什么樣的產品,最終呈現給用戶的是UI層測試人員必須在UI層投入大量的精九。所以。我們有必要通過自動化的方式幫助我們"部分解放"重復的勞動,在解放勞動力和維護成本之間找到一個平衡,自動化測試就會成為我們的一個利器。

 

3.什么項目適合做UI自動化測試?

1項目周期:首先是項目周期較長的產品,一般在一年半以上的產品
2.項目需求變動不頻繁:如果項目需求變動頻繁,在做自動化時會導致大量的腳本需要不斷的迭代維護,就失去了uI自動化解放勞動力的目的
3項目需要回歸測試:項目需要回歸測試,當測試一遍后,再次回歸是可以直接通過自動化腳本進行回測

 

4.UI自動化測試介入時機

項目需要在功能測試完畢后

 

5.UI自動化測試所屬分類

1.黑盒測試(功能測試)
2.白盒測試(單元測試)
3.灰盒測試(接口測試)
注意:UI自動化測試屬於黑盒測試(功能測試)

 

 

Web自動化測試框架介紹

主流的web自動化測試工具

1.QTP

QTP是一個商業化的功能測試工具,收費,支持web,桌面自動化測試。
2.Selenium(本階段學習)
Selenium是一個開源的web自動化測試工具,免費,主要做功能測試。
3.Robot framework
RobotFramework是一個基於Python可擴展地關鍵字驅動的測試自動化框架。(RF框架)

 

2.Selenium框架介紹及特點:

介紹:
Selenium是一個用於web應用程序的自動化測試工具

 

特點:

1,開源軟件:源代碼開放可以根據需要來增加工具的某些功能
2.跨平台:1inux.windows.mac
3.支持多種瀏覽器:FirefoxChrome、IE、EdgeOperaSafari等
4.支持多種語言:PythonJavaC #JavaSeript.Ruby、PHP等

5.成熟穩定:目前已經被qooqle、百度、騰訊等公司廣泛使用
6.功能強大:能夠實現類似商業工具的大部分功能,因為開源性,可實現定制化功能

 

Web自動化測試環境搭建

1.自動化測試環境搭建三要素:

1.python環境
2.selenium框架:pip install selenium
3.Chromedriver驅動:下載地址,注意版本的高度吻合.
4.Chrome瀏覽器

  

 

2.#selenium安裝與Chromedriver
#下載安裝selenium:
pip install selenium 
#chromedriver下載匹配:
下載地址:https://npm.taobao.org/mirrors/chromedriver/
版本匹配:瀏覽器與驅動的版本需要對應,版本號的前三段需要嚴格對應,但最后一段可能找不到完全對應的版本號但需要盡量縮小差距范圍,查看瀏覽器版本:Chrome右上角三個點->幫助-->關於Google Chrome

  

 

 

#3.配置成功驗證
#將驅動放置在一個文件夾中,使用pyeharm打開文件央,配置好虛擬環境(python解釋器),#新建一個test的py文件

#編寫如下代碼:
from selenium import webdriver
browserw webdriver.Chrome(./chromedriver) #mac代碼 
browser webdriver.chrome('./chromedriver.exe' ) #Windows代碼

browser.get"https://www.baidu.com/)

#注意:
#如果不想每次都寫./chromedriver,可以將chromedriver放到python的Seripts里
當你右鍵run一下test文件瀏覽器自動打開並在瀏覽器中打開了百度首頁,就算配置成功 python

  

 

 

 

2.元素定位(一)

在使用Selenium進行自動化測試的過程中經常需要定位到UI界面中的指定元素進行操作,比如點擊搜索按鈕,比如像輸入椎中輸入內容等等在Selenium中經常使用一下8大定位方法:

Selenium的8定位元素方法:
1id:根據DOM節點的id屬性進行定位
name:根據DOM節點的name屬性進行定位
class name:根據DOM節點的class屬性進行定位
tagname:根據DOM節點的標簽名進行定位
linktext;根據超鏈接的文本定位 partial link text:根據超鏈接的部分文本定位
xPath:根據xpath定位
dss:根據css選擇器定位說明: Selenium框架定位元素的方法大致可以分為三類,一類是根據元素自身屬性與特點定位(前6個)。第二類是根據xpath這種HTML解析模塊實現的,第三類是根據css選擇器定位,起始css選擇器同樣是HTML解析器

  

from selenium import webdriver
import time


bowser = webdriver.Chrome('chromedriver.exe')
bowser.get('file:///F:/jiango/zidonghua/pagetest/%E6%B3%A8%E5%86%8CA.html')


time.sleep(3)
#根據id
# bowser.find_element_by_id('userA').send_keys('2597349742')
# time.sleep(3)

#根據class屬性 # bowser.find_element_by_class_name('telA').send_keys('17535827976') # time.sleep(3)
#根據name # bowser.find_element_by_name('emailA').send_keys('123@qq.com') # time.sleep(3)
#根據標簽 # bowser.find_element_by_tag_name('input').send_keys('hellow') # time.sleep(3) #根據超鏈接部分文本 # bowser.find_element_by_partial_link_text('網站').click() # time.sleep(3) #根據超鏈接文本 # bowser.find_element_by_link_text("新浪").click() # time.sleep(3) bowser.quit()

 

idclassname,tagname定位

Selenium是以瀏覽器對象(browser ordriver)為基礎進行定位的,定位的方法
為:browser.find element by xxx,其中到底根據啥進行定位,是根據xxx來決定的,比如 browser.find element byid節點id屬性值)則是根據DOM節點的id進行定位的。

1.id:根據DOM節點的id屬性進行定位
browser.find element by idid屬性值

2.class name:根據DOR節點的class屬性進行定位
browser.find element by class name"class屬性值之一*)注意:如果節點class屬性有多個值,只需要寫其中一個即可定位到該節點
3 .name  相氓DOM節點的name屬性講行定位 
browser.find element by name("name屬性值'
python
4.tag name:根據DOM節點的標簽名進行定位
browser.find element by tag name(div")

  

 

link text與partail link text定位

link text;根據超鏈接的文本定位
browser.find element by link text('新聞)

partiallink text:根據超鏈接的部分文本定位 browser.find element by link text新)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM