selenium環境搭建
瀏覽器:火狐瀏覽器,只能是火狐
必備的插件:FireBug 和FirePath,這兩個是FireFox的拓展,需要額外的安裝,值得注意的是,在2016 年 6 月,Firebug 和 Firefox DevTools 整合在一起了,在2017年的時候和大家說再見了,所以高版本的FireFox無法安裝FireBug。FireBug的作用主要是用來調試網頁的,FirePath的作用主要是定位網頁元素的。
selenium IDE簡介:一個Firefox插件,需要額外安裝,可以錄製用戶的基本操作,生成測試用例。隨後可以運行這些測試用例在瀏覽器裡回放,可將測試用例轉換為其他語言的自動化腳本。selenium IDE安裝,用火狐瀏覽器打開 https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/,然後點擊Add to Firefox就好了,這個網站加載的有點慢。
selenium IDE打開:
打開的界面如下:
不同版本的瀏覽器安裝的IDE版本可能不一樣,這裡安裝的是最新的版本
selenium IDE界面大致介紹:
1.用來填寫被測網站的地址。
2.速度控制:控制案例的運行速度。
3.運行所有:運行一個測試案例集中的所有案例。
4.運行:運行當前選定的測試案例。
5.錄製:點擊之後,開始記錄你對瀏覽器的操作。
6.案例集列表。
7.當選中前命令對應參數。
8.日誌:案例運行時的日誌
9.新建案例
10.測試的結果
新版的IDE相對於老版的IDE簡化很多功能。比如去掉了定時執行、單步執行等等。
selenium IDE的使用
基本的步驟如下:
- 輸入測試網頁的地址
- 打開錄製按鈕
- 在瀏覽器界面進行相關操作
- 回放錄製的腳本(注意回放的時候,瀏覽器一定要處於打開的狀態)
- 保存測試腳本
注意:selenium為我們錄製的腳本不是100%符合我們的需求的,所以,編輯錄制的腳本是必不可少的工作。
selenium IDE常用的命令
Selenium 的命令格式
語法:Command Target Value
Command:操作命令
Target:操作對象,通常是頁面及頁面元素
Value:作為斷言的值
Comment:相當於註釋
open(打開):
(1)作用:打開指定的URL,URL可以為相對的也可以是絕對的URL
(2)target:要打開的URL,value值為空,當target為空的時候,將要打開baseURL中填寫的頁面
(3)當target不為空切值為相對路徑,將打開baseURL+target頁面,如,假設baseURL為https://cnblogs.com,而target為/blog/all/,則執行open命令的時候,將打開:https://cnblogs.com/blog/all/
(4)當target以http://開頭的時候,將忽略baseURL,直接打開target的網址
pause(暫停)
(1)作用:暫停腳本運行
(2)waittime:等待時間,單位ms
goBack(後退)
作用:模擬單機瀏覽器的後退按鈕,由於沒有參數,所以target和value可不填
refresh(刷新)
作用:刷新當前頁面,由於沒有參數,所以target和value可不填
windowMaximize(最大化)
作用:將當前的窗口最大化,即設置為全屏顯示,由於沒有參數,所以target和value可不填
click(點擊)
作用:單擊一個按鈕,鏈接,複選框或者單選按鈕,如果該單擊事件導致新的頁面加載,命令將會加上後綴AndWait,即clickAndWait,或者waitForToLoad命令
type(輸入)
作用:向指定輸入域中輸入指定的值,也可以為下拉框,複選框,和單選按鈕賦值
target:元素的定位表達式,如id=kw
value:要輸入的值
selec(selectLocator,optionLocator)
作用:模擬人工單擊下拉列表框,selectLocator:指向指定選擇元素的定位器,optionLocator:選項的選擇器,(默認為標籤)
注意:選項的定位方式和下拉框的定位方式有所不同,選項的定位方式:label和Value
label=文本值,基於選項的文本進行匹配(默認方式),如label=three
Value=實際值,基於選項的真實進行匹配的,如:value=4
close(關閉)
作用:用於模擬用戶單擊窗口上的關閉按鈕,沒有參數,target和value可以不填寫
selenium斷言
概念:斷言就是驗證程序的狀態是否同期望的一致
斷言的四種模式
1.Assert:斷言失敗時,案例將終止,並宣佈用例執行失敗
2.Verify:斷言失敗時,測試還會繼續執行,並將錯誤記錄日誌,允許單個驗證通過,提高腳本的伸縮性
3.Waitfor:用於等待某些條件為真,可用於AJAX應用程序的測試,如果為真,他們講立即成功執行,如果不為真則將失敗並暫停測試,知道超過當前設定的時間,經常和setTimeout一起使用
4.store:定義變量,可以獲取頁面的相關元素進行判斷
斷言的五種手段
Title:獲取頁面的標題
Value:獲取元素的值
Text:獲取元素文本的信息
Table:獲得元素標籤
ElementPresent:獲得當前元素
常用的斷言
assertTitle:檢查當前頁面的標題是否正確
assertValue:檢查輸入框的值,單選或複選框的值
verifyValue:驗證元素的值
selenium IDE只能做簡單的自動化場景,下一章我們從Python開始。
閱讀更多 軟件測試BlackCoffee 的文章