1.關於自動化測試的概述
研發效能
可以通過技術的手段來提高效率
自動化測試分類
1.1UI自動化測試(前端自動化測試)-->selenium(框架&庫&工具)
1.2API自動化測試
1.3單元自動化測試
服務端測試開發領域(架構)
大數據測試開發領域
算法測試開發領域(離散數學:線性代數)
專項測試開發領域
功能測試-->自動化測試-->測試開發(前端&架構&容器化)-->回歸功能測試本質
測試開發=測試思維+開發的技術+質量管理體系
自動化測試:可以理解為通過一定的技術手段,操作機器來得到人的模擬操作
目的&意義:隨着產品的完善,需要回歸驗證的測試點越來越多,這個時候我們可以
通過自動化測試的手段,把需要回歸的測試點鍾,可以使用自動化測試實現的部分實現
那么這樣我們需要回歸測試的點就會減少,已實現部分可以一勞永逸的執行。
環境搭建步驟:
1、安裝selenium的地方放的庫 pip3 install selennium
2、按照chrome的瀏覽器
3、下載瀏覽器對應的驅動
支持主流的編程語言:python ,java,go,net,php,js
支持主流的瀏覽器:chrome fireofox ie
2.Selenium元素定位實戰
Selenium是一個用於Web應用程序的自動化測試工具,它可以直接運行在瀏覽器中,可以模擬用戶的行為操作,操作界面友好。且支持IE Chrome Firefox 等主流瀏覽器
2.1元素定位實戰
在UI自動化測試中,最基礎最核心的技能是對頁面元素進行定位,定位到相應的元素后才可以對頁面的操作進行編碼驗證
2.2調試工具實戰
在Chrome瀏覽器中,點擊鼠標右鍵,在彈出的快捷菜單中選擇“檢查”選項:在彈出的調試 窗口中,點擊按鈕后,將鼠標移動到需要定位的目標未知,調試信息窗口就會顯示元素的屬性
舉例:
然后我們在進行查找元素
我們就能獲取元素
前提是在寫代碼的時候需要導入
from selenium import webdriver
2.3利用id查找元素:find_element_by_id
通過元素id定位到元素 以百度的方式來呈現
可以看到百度當中 id的屬性是kw
我們在百度搜索框中輸入“美女”
代碼如下

1 driver=webdriver.Chrome() 2 #導航到被測的網址 3 driver.get('http://www.baidu.com/') 4 t.sleep(5) 5 driver.find_element_by_id('kw').send_keys('美女') 6 t.sleep(5) 7 #退出 8 driver.quit()
2.4利用name查找元素:find_elemet_by_name
通過元素屬性NAME定位到元素 以百度的方式來呈現
圖中我們可以看到百度的name屬性為wd
我們在百度搜索框中輸入“美女”
用同理我們也可以找到搜索按鈕的name的屬性為su
執行點擊
代碼如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_name('wd').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_id('su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.5利用class_name查找元素:find_element_by_class_name
通過元素屬性CLASS_NAME定位到元素 以百度的方式呈現
圖中我們可以看到百度搜索款的class_name屬性為s_ipt
我們在百度框中輸入“美女”
代碼如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_class_name('s_ipt').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_id('su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.6利用xpath查找元素:find_element_by_xpath
通過XPATH定位百度搜索輸入框的元素 以百度的方式呈現
這樣我們就獲取了XPath屬性的元素
代碼如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_xpath('//*[@id="kw"]').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_xpath('//*[@id="su"]').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.7利用link_text查找元素:find_element_by_link_text
LINK_TEXT是用於對超鏈接的處理。在HTML的代碼中主要是以標簽a對應 以百度的方式呈現
上圖所示我們是想實現點擊hao123網頁,實現代碼如下

1 from selenium import webdriver 2 driver = webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_link_text('hao123').click() 7 t.sleep(5) 8 #退出 9 driver.quit()
輸出結果為我們進入了百度頁面點擊了hao123進入hao123網頁
2.8利用partial_link_text查找元素:模糊匹配
partial_link_text也是用於對超鏈接的處理,它與link_text不同的是,它是進行模糊搜索 ,(可以理解成按照模糊關鍵字進行搜索)
代碼如下

1 from selenium import webdriver 2 driver = webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_partial_link_text('hao').click() 7 t.sleep(5) 8 #退出 9 driver.quit()
2.9利用css_selector查找元素:find_element_by_css_selector
當我們使用ID,NAME等定位方法定位不到元素的時候 就可以使用css_selector來獲取元素
以百度為例
代碼如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #導航到被測的網址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_css_selector('#kw').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_css_selector('#su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()