新手必看 自動化測試常識

1、安裝軟件
1.1在線安裝selenium:
selenium安裝在python庫裏,步驟爲:Windows+R
輸入cmd 輸入pip install -u selenium,安裝完成;
1.2 離線安裝selenium:
將selenium壓縮包解壓到D盤後,複製路徑,Windows+R,輸入cmd,輸入d:(切換到d盤),輸入cd+粘貼路徑,輸入python setup.py.install,安裝完成;
1.3 安裝Firefox瀏覽器和selenium IDE:
將Firefox安裝包下載到D盤並安裝,將selenium IDE安裝包託至Firefox瀏覽器中,進行安裝。
2.自動化測試
2.1分層自動化測試
UI:(投入比例10%)界面層,用於UI自動化測試和JS自動化測試;
Service:(投入比例20%)業務邏輯層,用於模塊接口測試和Web接口測試;
Unit:(投入比例70%)數據處理層,用於單元測試。
2.2適合自動化測試場景
①任務測試明確,不會頻繁變動;
②迴歸測試比較頻繁;
③界面比較穩定;
④有大量重複任務;
⑤軟件的維護週期較長;
⑥項目進度方面的壓力較小;
⑦測試人員具備較強的編程能力。
自動化測試的case來源於功能測試的case,抽取核心的case進行測試。
2.3自動化測試工具
①UTF(unified functional testing)統一功能測試=QTP(quick test Professional)+ST(service test):使用QTP的目的是想用它來執行重複的手動測試主要用於迴歸測試和同一軟件新版本測試,支持的腳本語言是VBScrip,支持錄製和回放功能。
②RF(robot framework):是一款基於python語言編寫的自動化測試框架,支持關鍵字驅動,可以同時測多種類型的客戶端或者接口,可以進行分佈式測試,提供了測試執行事件的監聽接口,並且可以自定義接口中的腳本。
③ selenium:用於web應用程序開源測試的工具,與其他測試框架不同的是,它是直接運行在瀏覽器之中的,用戶可以非常清楚地看到瀏覽器執行的每一步操作。支持Firefox、IE、Mozilla等瀏覽器,同時支持Java、C#、ruby、python、PHP、Perl等語言。
2.4 selenium1.0和selenium2.0區別
Selenium2.0=selenium1.0+webdriver selenium1.0是需要啓動一個服務器啓動代理瀏覽器去操作頁面。而selenium2.0是使用了webdriver去驅動瀏覽器操作的,省去了代理。
2.4.1 selenium1.0組成
Selenium1.0 SeleniumIDE 是Firefox瀏覽器中的一個插件,實現瀏覽器操作的錄製和回放。
SeleniumGrid 實現在多臺機器上和異構環境運行測試用例。
seleniumRC Client libraries 用於編寫測試腳本,用於操作selenium driver的庫
Selenium server(負責控制瀏覽器行爲) launcher 啓動器
http proxy 選擇性攔截請求
core 加載JS來執行
備註:①seleniumRC支持多種不同語言編寫的測試腳本,通過對seleniumRC的服務器作爲代理服務器去訪問應用,達到測試的目的。
②selenium core就是一堆Java script函數的集合,即通過這類Java script函數,我們可以實現用程序對瀏覽器進行操作。
③launcher用於啓動瀏覽器,把selenium core加載到瀏覽器頁面中,並把瀏覽器的代理設置爲selenium server的http poxy。
整個流程:
1.我們運用client Library編寫代碼,編寫測試用例,然後執行,通過接口向Selenium server發送http請求,和server建立連接。
2.selenium server用launcher啓動瀏覽器,並把selenium-core這個JS代碼注入到瀏覽器。
3.server接受測試命令(The Server receives the Selenese commands from your test program using simple HTTP GET/POST requests),並轉換爲JS命令發送給瀏覽器,core執行,控制瀏覽器進行模擬操作。
4. 瀏覽器如果向服務器發送請求,selenium server接收到瀏覽器的HTTP請求後,發送給服務器,在接收到服務器返回時,自己重組返回的信息,以此欺騙瀏覽器是從同一個服務器返回(爲了繞過瀏覽器的安全機制:同源策略,Selenium Core的JS腳本的“源”是localhost)
2.5 Selenium特點:
開源,免費
多瀏覽器支持:Firefox、Chrome、IE、Opera、Safari
多平臺支持:Linux 、windows、Mac
多語言支持:Java、Python、ruby、PHP、C#、JavaScript
對web 頁面有良好的支持
簡單(API 簡單)、靈活(用開發語言驅動)
支持分佈式測試用例執行
2.6 webdriver七種定位元素方式
①通過id定位元素
②通過name定位元素
③通過class_name定位元素
④通過link_text(點擊文字)定位元素
⑤通過partial_link_text(點擊部分文字)定位元素
⑥通過xpath絕對/相對路徑定位元素
⑦通過css絕對/相對路徑定位元素
3.0 作業練習
from selenium import webdriver (從selenium中導入webdriver)
driver=webdriver.Firefox() (把webdriver的Firefox賦給driver)
driver.get(“https://www.baidu.com”) (輸入百度瀏覽器)
driver.find_element_by_link_text(“新聞”).click() (點擊新聞)
driver.find_element_by_partial_link_text(“新”).click()
driver.find_element_by_partial_link_text(“互聯”).click()
driver.find_element_by_name(“wd”).send_keys(“selenium”) (通過name=wd 找到元素並輸入關鍵詞selenium)
driver.find_element_by_xpath("/html/body/div/div/div/div/div/form/span[1]/input").send_keys(“selenium”) (xpath絕對路徑找input)
driver.find_element_by_xpath("//form[@name=‘f’]/span[1]/input") (xpath通過@name=f的相對路徑找input)driver.find_element_by_xpath("//form[@name=‘f’]/span[1]/input").send_keys(“selenium”)
driver.find_element_by_css_selector(" html> body>div>div>div>div>div>form>span[1]>input").click()(css絕對路徑找input)
driver.find_element_by_css_selector("#form>span:nth_child(9)>input").click()(css通過span:nth_child(9)的相對路徑找input)
driver.back()(返回)
driver.forward()(前進)
driver.refresh()(刷新)
driver.set_window_size(480,888)(設置窗口大小)
driver.maximize_window()(將窗口最大化)
import time (導入時間)
time .sleep(5)(加載5秒)
driver.refresh()
driver.find_element_by_id(“kw”).send_keys(“selenium”)
driver.find_element_by_id(“kw”).clear()(清除)
size=driver.find_element_by_id(“kw”).size(鎖定元素id=kw欄,獲取窗口大小)
print(size)
attribute=driver.find_element_by_id(“kw”).get_attribute(“name”)(鎖定元素id=kw欄,獲取name屬性值)
print(attribute)
text=driver.find_element_by_id(“cp”).text()(鎖定元素id=cp欄,獲取文本)
print(text)
result=driver.find_element_by_id(“kw”).is_displayed()(鎖定元素id=kw欄,看頁面展示是否正確)
Print(result)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章