Hi,大家好,關注過我的應該知道前面其實是有寫selenium的,為什么要重新寫,因為前面寫的不是特別的明白,有很多小伙伴私信我說沒怎么看懂,所以,這里寫這一系列的手把手教寫,
我的微信是qing_an_an,公眾號是Sea_Cha,有興趣的可以加我一起學習,我也有一個學習群,群內都是剛剛學習的朋友,更有大佬的加持,分分鐘教導
目錄
什么是自動化?
為什么要自動化?
什么時候開始自動化測驗?
自動化測驗的優缺點:
什么web專案適合做自動化測驗?
測驗工具有哪些?
初識selenium
Selenium+WebDriver環境搭建
webDriver原理
簡單的操作
1. 打開網頁:get(url)
2. 重繪:refresh()
3. 前進:forward()
4. 后退:back()
5. 截屏:get_screenshot_as_file(保存路徑)
6. 退出:close(),quit()
什么是自動化?
讓程式代替人為,自動化驗證web專案功能的程序
為什么要自動化?
1. 解決回歸測驗(新版本正式測驗之前的問題回歸以及周邊功能的驗證)
2. 解決壓力測驗(多用戶操作軟體,統計軟體服務器處理多用戶請求的能力)
3. 解決兼容性測驗(兼容不同的軟體環境,如瀏覽器,作業系統,解析度等)
4. 提高測驗效率,保證產品質量
什么時候開始自動化測驗?
功能測驗完畢(手工測驗)》》》web UI自動化
自動化測驗的優缺點:
優點:
1. 較少的時間內運行更多的測驗用例;
2. 自動化腳本可重復運行
3. 較少人為的錯誤;
4. 測驗資料存盤
缺點:
1. 不能取代手工測驗;
2. 手工測驗比自動化測驗發現的缺陷更多;
3. 測驗人員技能要求高
誤區:
1. 自動化測驗完全替代手工測驗
2. 自動化測驗一定比手工測驗厲害
3. 自動化可以發現更多的bug
什么web專案適合做自動化測驗?
1. 需求變動不頻繁
2. 專案周期長
3. 專案需要回歸測驗
測驗工具有哪些?
主流工具
1. web自動化測驗:Selenium、Robot Framework
2. App自動化測驗:Appium、MonkeyRunner、UIautomation
3. PC客戶端自動化測驗:QTP、WinRunner
4. 介面自動化測驗:Jmeter、Postman、HttpUnit、RestClient、Python+requests
5. 云測平臺:Testin、Testbird --》app兼容性測驗
6. 性能測驗:Jmeter、LoadRunner
初識selenium
特點:
1. 開源軟體:源代碼開放,可以根據需要來增加工具的某些功能;
2. 跨平臺:Linux、Windows、MacOS
3. 核心功能:就是可以在多個瀏覽器上進行自動化測驗,Chrome,Firefox,IE,Safari,opear
4. 多語言:java、python、C#、JavaScript、Ruby等
5. 成熟穩定:目前已被百度、騰訊等公司廣泛使用
6. 功能強大:能夠實作類似商業工具的大部分功能,因為開源,可實作定制化功能,
Selenium+WebDriver環境搭建
1. WebDriver是一種用于web應用程式的自動化測驗工具;
2. 它提供了一套友好的API;
3. WebDriver完全就是一套類別庫,不依賴與任何測驗框架,除了必要的瀏覽器驅動;
webDriver原理
1. WebDriver API(基于Java、Python、C#等語言),對于java語言來說,就是下載下來的selenium的Jar包,比如 selenium-java-3.8.1.zip包,代表Selenium3.8.1的版本
2. 瀏覽器的驅動(browser driver),每個瀏覽器都有自己的驅動,均以exe檔案形式存在比如谷歌的 chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe
3. 瀏覽器,瀏覽器當然就是我們很熟悉的常用的各種瀏覽器(IE、Firefox、Chrome),
簡單一點就是,有一把刀,它的作用就是削水果,也可以切菜等,這把刀相當于webDriver,你呢就是寫代碼的人,你想讓它干嘛,切菜,削水果還是其他的,寫一系列的代碼,然后水果刀完成它要做的動作,
道理講完了,我們也該進入正題了,一些簡單的操作,也是非常實用的,
簡單的操作
1. 打開網頁:get(url)
from selenium import webdriver
# 打開火狐瀏覽器
fox = webdriver.Chrome()
fox.get('https://baidu.com')
# 打開谷歌瀏覽器
gu = webdriver.Chrome()
gu.get('https://baidu.com')
其他的瀏覽器方法類似,通過實體化驅動,指定瀏覽器,打開百度網址,至于驅動,在這里之說下載自己瀏覽器所對應的版本的驅動即可,如果你瀏覽器版本是2.1.1,驅動沒有的只有2.3.3也沒關系,是兼容的,但是你不能下載比你瀏覽器版本低的驅動,
2. 重繪:refresh()
from selenium import webdriver
fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.refresh()
3. 前進:forward()
from selenium import webdriver
fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.forward()
4. 后退:back()
from selenium import webdriver
fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.back()
注意:4、5這兩個操作,只能在你瀏覽了其他頁面的情況下才能使用,這里還沒有講到元素定位,所以這里先做了解,后續熟悉元素定位后,可自行操作
5. 截屏:get_screenshot_as_file(保存路徑)
from selenium import webdriver
fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.get_screenshot_as_file('F:\MES\baidu.png')
6. 退出:close(),quit()
from selenium import webdriver
fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.quit()
注意,這里兩者是有區別的,quit是關閉打開瀏覽器中的所有視窗,而close是關閉當前視窗,所以,用的時候可別搞混了,搞混不得,
看看下面的例子,就明白了:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://baidu.com')
js = "window.open('https://www.jd.com/')"
driver.execute_script(js)
driver.close()
這里我用js重新打開了一個視窗,然后用close的方法關閉一個視窗,此時,你會覺得關閉的是京東的視窗吧,其實不然,你錯了哦,我沒有切換視窗,所以關閉了還是第一次打開的視窗,也就是百度視窗,至于為什么要做視窗切換操作,這一點后續會有一章專門講到,敬請期待吧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/298419.html
標籤:其他
