本文目錄一覽:
- 1、Web UI自動化測試之Selenium3
- 2、web自動化中頁面多個滾動條時的拖動操作?
- 3、web自動化測試,使用node.js 與python哪個語言更合適
- 4、如何搭建webdriver+selenium+nodejs自動化測試框架
- 5、Web自動化測試有什麼常用的工具?
- 6、[Selenium自動化測試實戰] 不打開瀏覽器如何進行WEB自動化測試
Web UI自動化測試之Selenium3
一、WebDriver(import org.openqa.selenium.WebDriver)操作瀏覽器
selenium通過WebDriver對象來定位頁面元素
1、打開瀏覽器
打開火狐瀏覽器:
WebDriver driver = new FireFoxDriver();
打開IE瀏覽器:
WebDriver driver = new InternetExplorerDriver();
打開chrome瀏覽器
WebDriver driver = new ChromeDriver();
2、最大化瀏覽器
driver.manage().window().maximize();
3、關閉瀏覽器
driver.close();
driver.quit();
4、打開測試頁面
driver.get(“http:”);
二、By(org.openqa.selenium.By) 定位頁面元素
selenium通過By對象來定位頁面元素
1、By.id 通過ID定位頁面元素
By.id(“UserCode”)
2、By.name 通過name定位頁面元素
By.id(“UserCode”)
3、By.className 通過className定位頁面元素
By.className(“input_class”)
4、By.linkText 精確查找
drive.get(“”);
By.linkText(“百科”);
5、By.partialLinkText 模糊查找
driver.get(“”);
By.partialLinkText(“百科”);
6、By.tagName
dirver.get(“”);
By.tagName(“input”);
三、WebElement(org.openqa.selenium.WebElement)操作頁面元素
selenium通過WebElement對象來操作頁面元素
1、操作輸入框
WebElement inputElement = driver.findElement(By.id(“UserCode”));//查找登錄頁面錄入用戶名元素
inputElement.setKeys(“wyl”);//輸入框錄入用戶名wyl
inputElement.clear();//清空輸入框
inputElement.getText();//獲得輸入框中的內容
2、操作單選框
WebElement radioElement = driver.findElement(By.id(“Orders”));
radioElement.click();// 選擇某個單選項
radioElement.clear();// 清空某個單選項
radioElement.isSelected();// 判斷某個單選項是否已被選擇
3、操作多選框
WebElement checkboxElement = driver.findElement(By.id(“Orders”));
checkboxElement.click();// 選擇某個多選項
checkboxElement.clear();// 清空某個多選項
checkboxElement.isSelected();//判斷某個多選項是否已被選擇
4、操作下拉框
Select select = new Select(per.findElement(By.id(“region”)));
select.selectByVisibleText(“北京市”);
select.selectByText(“10010”);
select.deselectAll();
select.deselectByVisibleText(“北京市”);
select.deselectByText(“10010”);
select.getAllSelectedOptions();
select.getFirstSelectedOption();
5、操作上傳文件
WebElement uploadElement = driver.findElement(By.id(“file”));
String uploadFile = “D:1AgentCode.txt”;
uploadElement.setKeys(uploadFile);
6、操作按鈕
WebElement btnElement = driver.findElement(By.id(“add”));
btnElement.click();
btnElement.isEnabled();
7、表單提交
WebElement formElement = driver.findElement(By.id(“fm”));
fromElement.submit();
8、操作彈出對話框
Alert alert = driver.swichTo().alert();
alert.getText();//獲得彈出框內容
alert.accept();//點擊彈出框確認按鈕
alert.dismiss();//點擊彈出框取消按鈕
9、Windows和Frames之間的切換
driver.switchTo().defaultContent();//返回到最頂層的frame
driver.switchTo().frame(“leftMenuFrame”);//切換到左側菜單frame
driver.switchTo().window(“windowName”);//切換到某個windows
10、超時設置
driver.manage().timeouts().implicitly(10,timeUnit.Seconds);//識別元素時的超時時間
driver.manage().timeouts().pageLoadTimeout(10,timeUnit.Seconds);//頁面加載時的超時時間
driver.manage().timeouts().setScriptTimeout(10,timeUnit.Seconds);//異步腳本的超時時間
四、調用js
JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript(“JS腳本”);
五、Selenium官方
1、官方download包下載地址
2、官方User Guide
3、API
web自動化中頁面多個滾動條時的拖動操作?
當頁面中有多個滾動條控制顯示範圍時,拖動指定的滾動條,可以通過JS語句來實現document.querySelector(‘.summary’).scrollTop=200;解釋: 1.通過在頁面中通過選擇器進行元素定位 2.將定位到的指定元素scrollTop屬性設置為200然後通過driver.execute_script()方法執行js語句即可,需要的小夥伴可以到傳智播客的社區看到相關操作的全部解答。傳智播客的官網也可以領取到相關的免費的公開課。
web自動化測試,使用node.js 與python哪個語言更合適
Node.js是現在WEBAPP快速開發的標配。python的WEB框架還有模板很多。這個取決於你習慣什麼方式開發。
如果熟悉 python使用node.js沒有壓力,可以完美融合。 如果對python不熟悉,node.js可以給你驚喜。
不過就我個人而言python很熟練,python給我的自由度與支撐力度遠遠大於node.js。 node.js是一些喜歡javascript的極客做的js的後台執行程序。 支持力度顯然遠遠比不上有10幾年WEB開發歷史的python。
node.js有一個最大的好處是前端與後端的融合比較好。都是JS開發的。有利於前端人員快速開發後台服務器。
再加上node.js大量爆發的各種工具。所以node.js很有前途。 相對python的架構不溫不火。
從開發速度來看。兩者差不多。從系統維護性上。 python要好很多。
從最高性能上看,python也要好很多。 著名的某團隊聊天軟件就是node.js架構。
但是限於javascript語言本身的性能以及執行方式,支持力度。 後台開發還是不建議用node.js,除非你有足夠的理由 。比如快速開發,比如缺少足夠 的後台開發人員,或者是團隊成員整體偏前端等。
node.js真的很適合初學者。 特別是正在學習javascript人。 不過node.js想做好就不容易,特別是團隊規模超過10個人時,代碼很難維護。
v8引擎很強大,大多數測試結果顯示node.js比python性能高。這個感覺挺無語。 js在v8上的優化效果的的確確比python解釋器要強。這是事實。 不過python如果你用得很熟練的情況下,有很多技巧可以將這些差距縮小,以至於超過,完全沒有壓力。
比如我這邊做一個服務器,通常性能要求很高的情況下,不會使用python做前端,而是使用java+cache做後台服務器前端。 這樣性能就遠遠超過其它的WEB後端服務器了。
python在後處理,批處理,數據處理,快速開發很強大。 WEB方面就當是玩具吧。 算是一種快速 開發的補償。 做做膠水,連接不同系統的接口還是可以的。
如何搭建webdriver+selenium+nodejs自動化測試框架
1
安裝nodejs程序包
2
打開nodejs
從開始程序中選擇Node.js—Node.js command prompt
3
在命令窗口輸入以下命令
一、npm install webdreverio -g
二、npm install selenium-standalone@latest -g
4
安裝selenium服務,在命令窗口輸入以及下命令
selenium-standalone install
此時會報錯,告訴你IE和谷歌驅動安排不成功
解決方法:新此目錄下的C:\Users\saber\AppData\Roaming\npm\node_modules\selenium-standalone\.selenium的chromedriver和iedriver文件夾替換掉
5
配置環境變量
編輯用戶變量:
變量名:PATH
變量值:C:\Users\saber\AppData\Roaming\npm
新建系統變量:
變量名:node_path
變量值:C:\Users\saber\AppData\Roaming\npm\node_modules
6
開啟selenium服務,在命令窗口輸入以下命令
selenium-standalone start
7
打開cmd窗口,輸入腳本的位置
8
運行自動化測試腳本
至此,webdriver+selenium+nodejs的自動化框架就搭建完成,大家盡情編寫js腳本吧。
Web自動化測試有什麼常用的工具?
一、單元測試/測試運行器
1、Jest
知名的 Java 單元測試工具,由 Facebook 開源,開箱即用。它在最基礎層面被設計用於快速、簡單地編寫地道的 Java 測試,能自動模擬 require() 返回的 CommonJS 模塊,並提供了包括內置的測試環境 Dom API 支持、合理的默認值、預處理代碼和默認執行並行測試在內的特性。通過在並行進程中同時運行測試,讓測試更快地結束。
2、AVA
號稱“未來的測試運行器”,利用 Java 在 Node.js 里使得 IO 可以並行的優點,讓你的測試可以並發執行,這對於 IO 繁重的測試特別有用。另外,測試文件可以在不同的進程里並行運行,讓每一個測試文件可以獲得更好的性能和獨立的環境。測試並發執行強制你寫原子測試,意味着測試不需要依賴全局狀態或者其他測試的狀態。
3、Mocha
一個功能豐富的測試框架,用於 Node.js 和瀏覽器上的 Java 應用測試,使異步測試變得簡單而有趣。它可以持續運行測試,支持靈活又準確的報告,當映射到未捕獲異常時轉到正確的測試示例。
3、Mocha
一個功能豐富的測試框架,用於 Node.js 和瀏覽器上的 Java 應用測試,使異步測試變得簡單而有趣。它可以持續運行測試,支持靈活又準確的報告,當映射到未捕獲異常時轉到正確的測試示例。
4、Karma
基於 Node.js 的 Java 測試運行器,旨在為開發人員帶來有效的測試環境。可用於測試所有主流 Web 瀏覽器,也可集成到 CI 工具,還可和其他代碼編輯器一起使用。另外一個強大特性就是,它可以監控文件的變化,然後自行執行,通過 console.log 顯示測試結果。
二、Web 測試
1)集成測試
Enzyme
一個用於 React 的 Java 測試工具,方便你判斷、操縱和歷遍 React Components 輸出。其 API 旨在通過模仿 jQuery 的 API ,使得 DOM 操作和歷遍很靈活、直觀。兼容所有的主要測試運行器和判斷庫。
2)功能測試
selenium錄製器
一個易於使用的採用關鍵字驅動的理念的瀏覽器自動化測試解決方案。它強大的錄製回放功能是在所有web測試工具中是最強悍的。該工具支持不同級別的測試技能,非程序員可以輕鬆地啟動自動化測試項目,而程序員和高級自動化測試人員可以節省構建新庫和維護腳本的時間。
3)Visual 測試
Storybook
一個 UI 組件的開發環境,允許你瀏覽組件庫,查看每個組件的不同狀態,以及交互式開發和測試組件。它運行在應用之外,允許隔離開發 UI 組件,這可以提高組件的重用性、可測試性和開發速度。
4)猴子測試(Monkey Testing,也稱“搞怪測試”)
Gremlins.js
一個用 Java 編寫的猴子測試庫,用於 Node.js 和瀏覽器。通過釋放大量無規律的 gremlins 來檢測 Web 應用的魯棒性。
5)服務端測試
1、K6
用於測試性能,以開發人員為中心的負載測試工具。提供了一個通過 REST API 進行編排的清新易用的腳本 API 。使用 Go 和 Java構 建,可以很好地集成到開發工作流程中。
2、SuperTest
SuperAgent 的一個擴展,一個輕量級 HTTP AJAX 請求庫。提供對 HTTP 測試的高度抽象, 極大地簡化了基於 HTTP 的測試。
更多軟件測試知識可關注黑馬程序員
[Selenium自動化測試實戰] 不打開瀏覽器如何進行WEB自動化測試
在一般的使用場景下,使用selenium進行web自動化測試都需要打開一個瀏覽器的實體,測試腳本通過控制webdriver來對瀏覽器進行操作。但是在一些場景下測試工程師需要在不打開瀏覽器的情況下進行自動化測試,也就是以headless的方式運行自動化測試。
業界有一些headless的第三方庫可以使用,例如大名鼎鼎的PhantomJS。但是這些工具的安裝很複雜,同時不一定保證持續的維護。
現在全球最受歡迎的瀏覽器Chrome在Chrome 59 (Chrome 60 for Windows)版本中已經支持了headless mode,只需要配置一些簡單的參數就可以實現。
首先要確認自己機子上的Chrome版本。
require ‘selenium-webdriver’
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument(‘–headless’)
options.add_argument(‘–disable-gpu’)
options.add_argument(‘–remote-debugging-port=9222’)
driver = Selenium::WebDriver.for :chrome, options: options
driver.get “”
driver.save_screenshot(“#{File.dirname(__FILE__)}/#{Time.now.strftime(“%F”)}”)
通過在Selenium::WebDriver::Chrome::Options類的對象中添加argumentoptions.add_argument(‘–headless’),可以讓我們在Chrome在headless模式下運行。
而第二個argument的作用是針對現有bug的work around。第三個argument的作用則是允許我們可以在另外一個瀏覽器中debug。
為了觀測運行的情況,我保存了一個屏幕截圖。
相比於之前的headless web自動化方案,Chrome的優勢在於設置的方便,甚至可以和當前的框架無縫切換,同時Chrome作為最為主流的瀏覽器,你也不用擔心持續維護的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184990.html