1. 程式人生 > >自動化測試簡介及Selenium的一些基礎操作

自動化測試簡介及Selenium的一些基礎操作

第一章:自動化測試簡介
自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常,在設計了測試用例 並通過評審之後,由測試人員根據測試用例中描述的規程一步步執行測試,得到實際結果與期望結果的比較。
一 分層自動化測試
1:UI介面層(10%)前端
包括:(1)UI自動化測試;
(2)JS自動化測試
2:API層(業務邏輯層)service 20% 資料處理邏輯;
包括:(1)模組介面測試
(2)Web介面測試
3:資料處理層 unit70%;
包括:(1)單元測試;
(2)code Review
分層思想:每一層做自己該做的事,這樣很早就可以暴露錯誤
二:常見單元測試框架
JAVA(junit testNG) C#(NUIT) python(unitest pytest) JS(Qunit)
UI(前端發起請求) Server(後端提供資料) response到前端然後由前端進行渲染展示
三:適合UI自動化測試場景(一般用於迴歸,頻繁的迴歸過程)
1.任務測試明確,不會頻繁變動;
2.迴歸測試比較頻繁;
3.介面比較穩定;
4.有大量重複任務;
5.軟體的維護週期較長;(快速迭代不適合UI自動化)
6.專案進度方面壓力較少;
7.測試人員具備較強程式設計能力;
UI自動化用例來源於手工用例.功能用例
a;不適合UI自動化測試的如:音樂播放器,視訊播放器
部分自動化測試:把一些核心的測試場景變為自動化形式

四:常用自動化測試工具
1:UTF=QTP+St 主要用於迴歸測試和同軟體新版本測試,支援B/S和C/S架構;
2:Robot Framework(只知道關鍵字就行)基於關鍵字的自動化封裝
python編寫的功能自動化測試框架。具備良好的可擴充套件性,支援關鍵字驅動,可以同時測試多種型別的客戶端或者介面,可以進行分散式測試執行。主要用於輪次很多的驗收測試和驗收測試驅動開發
3:selenium 一個用於Web應用程式測試的工具,支援多平臺,多瀏覽器,多語言去實現自動化測試
五:Selenium1.0組成
1:selenium IDE
Firefox瀏覽器中的一個小外掛,實現瀏覽器操作的錄製與回放;
2:arid:分式的測試用例在多個環境中分散式執行
用來對測試指令碼做分散式執行,即實現在多臺機器上和異構環境中執行測試用例(分散式的概念是寫好一條用例可以呼叫不同的平臺執行,如 A電腦上有一個測試用例,可以呼叫B電腦(linux)的 Firefox瀏覽器來跑A電腦上的測試用例;也可以呼叫C電腦(windows)的 Chrome瀏覽器來跑A電腦上的測試用例,這是分散式的概念)
3:RC(核心)典型的CS架構
使用瀏覽器內建的JavaScript 翻譯器來翻譯和執行selenese命令(selenese 是 selenium 命令集合),支援多種不同的語言編寫測試指令碼,通過selenium RC的伺服器作為代理伺服器去訪問應用,達到測試的目的。
(1)Lilent libraries(暴露呼叫API,發起請求到server)
(2)Selenium server(分析之前的規則,攔截請求,分析請求實現動作) 負責控制瀏覽器行為。
Selenium Server 主要包括3 個部分:Launcher、Http Proxy、Core
a:Launcher(啟動瀏覽器) 用於啟動瀏覽器,把selenium Core載入到瀏覽器頁面當中,並把瀏覽器的代理設定為selenium server的HTTP Proxy
b:HTTP proxy(設定代理,攔截請求)
c: Core 載入JS(javascript的函式集合)解釋成selenese命令,實現用程式對瀏覽器進行操作。
Selenium2.0=1.0+webdriver(核心),可直接操作控制瀏覽器,提供更出色的API,
更快更安全,將RC和webdriver合併。
Selenium3.0 Firefox獨立化,對IE、Edge等瀏覽器有了更好的支援。徹底廢棄了RC
六:Selenium環境搭建
1:線上安裝
在python的pip路徑下開啟cmd,輸入pip install selenium
Pip可以安裝python的一些庫,setuptools的所有包都在set-packages庫下;
2:離線安裝
1)檔案下載後,windows+R+cmd, cd+路徑,輸入python

setup.py install

3:Firefox中安裝IDE
1)安裝IDE,將下載好的IDE檔案直接拖拽進Firefox瀏覽器中即可。
2)安裝好之後在右上角開啟IDE就可以開始錄製與回放了

4:input(輸入的標籤)
#coding=utf-8 設定編碼格式為UTF-8格式(作用是防止亂碼)

七:
1:Selenium中定位元素:
在這裡插入圖片描述
首先webdrive開啟瀏覽器進入百度主頁,
from selenium import webdriver 匯入selenium的webdrive包
driver = webdriver.Firefox()初始化了一個Firefox的驅動,把webdriver的Firefox物件賦值給driver;
driver.get(‘

https://www.baidu.com’)開啟瀏覽器
2:通過ID定位輸入框,input標籤
在這裡插入圖片描述
3:通過name定位輸入框,
在這裡插入圖片描述
4:通過class定位輸入框:但class屬性值有空格一般不用此方法;
在這裡插入圖片描述
5: 通過patail_link定位輸入框:通過部分文字去定位標籤

在這裡插入圖片描述
6:通過link_text定位輸入框(必須是全文字可點選的)
在這裡插入圖片描述
7:通過xpath定位輸入框:定位框沒有屬性值時可用,絕對路徑定位時用/,相對路徑用//

在這裡插入圖片描述
8:通過CSS定位輸入框:使用相對路徑定位
使用ID定位:有ID屬性用#號
在這裡插入圖片描述
使用class定位:有class屬性用.號

八:webdrive 其他的一些常用的API
1:回退
在這裡插入圖片描述
2:前進
在這裡插入圖片描述
3:重新整理
在這裡插入圖片描述
4:設定視窗尺寸
在這裡插入圖片描述
5:最大化瀏覽器
在這裡插入圖片描述
6:清空
在這裡插入圖片描述
7:獲取百度輸入口尺寸
在這裡插入圖片描述
8:獲取文字資訊(可與預期文字進行對比)
在這裡插入圖片描述
9:獲取屬性值
在這裡插入圖片描述
10:判斷頁面是否顯示出來

在這裡插入圖片描述
11:(跳轉型的需要有等待時間有載入過程)下面是等待5秒
在這裡插入圖片描述