如何使用Selenium進行自動化測試?

🍅?點擊文末小卡片?,免費獲取軟件測試全套資料,資料在手,漲薪更快??

對于很多剛入門的測試新手來說,大家都將自動化測試作為自己職業發展的一個主要階段。可是,在成為一名合格的自動化測試工程師之前,我們不僅要掌握相應的理論知識,還要進行大量的實踐,積累足夠的經驗,以便快速適應工作需求。

今天,筆者就想給大家介紹一些,關于使用Selenium進行自動化測試的實戰案例經驗。希望對測試新手們有所幫助。

1、測試自動化與Selenium工具

首先,我們要先澄清一個觀點,自動化測試不可能完全取代手動測試。換句話說,就是自動化測試是為了減少手動運行測試用例數,幫助快速測試多語言站點,提高測試執行速度;是為了節省手動測試帶來的時間成本、計算準確性成本等,而不是為了完全擺脫手動測試。因此,希望測試新手們對此有一個清晰的認知。

事實上,自動化測試的過程很簡單,你只需要執行以下步驟:

圖片

下面,切回正題。自2000年以來,基于開源工具和應用程序的成本效益、效率、可重復性、準確性和易用性越來越被大家接受和喜愛,因此,使用開源工具進行自動化測試就變得越來越重要。而作為開放源代碼工具之一,Selenium工具(簡稱Selenium)在自動化測試方面,展現了自己的極大優勢。

Selenium包含IDE、RC、Webdriver和Grid等組件,主要用于WEB交互和回歸測試。它除了具有記錄和回放功能外,還能幫助我們將記錄的腳本導出為其他語言,包括Java,C#,Python,Ruby,Javascript和PHP等。

除此以外,Selenium web driver還允許我們通過其封裝好的API進行自動化腳本開發,更好地輔助回歸測試,通過數據驅動DDT,關鍵字驅動,PO等設計模式的結合應用,可以讓我們的自動化腳本更具可靠性,可維護性,及延展性。

2、使用Selenium進行跨瀏覽器測試

顧名思義,跨瀏覽器測試就是在不同的Web瀏覽器和設備上,測試Web應用程序是否能夠正常使用,以確保其在每個設備和瀏覽器上都能正常運行的一種測試。

那么,我們為什么需要跨瀏覽器測試呢?例如,同一個電商頁面,在Chrome瀏覽器中能夠正常顯示,且操作流暢但并不能確保在同一臺機器上IE(通常有不同版本),火狐等瀏覽器上也能正常顯示且操作順利。這也是為什么產生跨瀏覽器測試的由來。

如今,跨瀏覽器測試已成為Web應用程序測試的必需項。Selenium可以幫助我們在同一臺計算機上,執行包括Safari、Chrome、Firefox、IE等不同瀏覽器的測試用例。并且,它還支持多種語言和操作系統。

3、使用Selenium進行測試的一些技巧分享

1便捷好用的定位器

Selenium web driver中封裝的API給我們提供了8中定位頁面元素的方式:通過id或name定位,通過class name或tag name定位,通過link text和partial link text定位,xpath定位,CSS定位;同時還提供了模擬頁面元素操作方法,鍵盤操作,JS事件處理等一些方法,來滿足與瀏覽器交互的功能。

2可利用數據驅動測試

Selenium還具備其他優秀特質。比如,如果要為不同的輸入使用相同的測試和相同的代碼,那么,選它就對了。Selenium允許開發人員和質量檢查團隊進行修改,因為它可以用于系統功能測試,以及瀏覽器兼容性測試。

另外,Selenium還有測試加速器,可以啟動客戶端自動化測試。這可以大大縮減你的回歸測試周期,為你節約時間。

3不依賴特定的驅動程序

永遠不要依賴于某一種特定的驅動程序,去做自動化測試。因為,不同的瀏覽器版本針對的驅動程序都是1-1對應的,舉個例子,不存在這樣的萬能驅動程序,可以兼容各個版本各個廠商提供的瀏覽器。

另外,還可能發生不存在某種驅動程序的可能。比如,并非每一個chrome版本都有與之能對應上的驅動程序,這樣就需要對被測瀏覽器進行范圍上的指定,有針對性地選擇當前項目中必須測試的那些瀏覽器等。

4)使用Page?Objects

時下,Page?Object已成為了測試自動化中的最佳設計模式。因為它不僅能增強測試維護能力,還能減少代碼重復。此外,它還是一個面向對象的類(OOC),可以充當被測應用程序頁面的接口。

簡言之,Page Object是一種面向對象的設計模式,它重新定義了一些內容。如下:網頁=類別;頁面上的各種元素=變量;用戶互動=方法。

因此,它具備以下優點:

  • 由于測試代碼和頁面代碼是分開的。因此,Page Object可以抵制微小的調調整,有助于我們構建更穩固的代碼框架。

  • 服務不會通過測試分散,但是該頁面提供的所有服務都有一個存儲庫。

  • 可靠且易于維護。

  • 腳本是可讀的,且代碼是可重用的,還可以完全消除重復部分。

5)可利用等待代替睡眠,提升測試效率

Selenium具備Thread.sleep()邏輯,可以利用等待代替睡眠,從而提升測試效率。因為,我們都知道,睡眠不僅會減慢測試速度,并且,我們很難確定它什么時候執行完畢;而等待則不同,它能幫我們判斷等待時長,并保證測試速度,從而提升我們的測試效率。

Selenium為我們提供了兩類常用的等待模式:顯示等待和隱式等待,分別用于不同的場景下,兩者也可以搭配著使用,從而更好地輔助自動化測試。

6)當時間緊迫不要害怕破解Selenium

在工作中,有時候我們會遇到時間比較緊急,但工作量又比較大的情況。這種時候,我們要學會靈活應對。關鍵時刻,你可以通過入侵Selenium Webdriver,來制作有效的自動化腳本。下面給大家介紹兩個快捷技巧。

(劃重點啦!!)

技巧1:Test NG報告–屏幕快照鏈接

使用以下代碼,來鏈接到Test NG報告的屏幕截圖。這可以讓你快速獲取捕獲屏幕截圖的超鏈接:reporte.data("<: a href="+"E:\\ screenshot \\"+?screenshot_timestamp+".png"+">:")Click to open

技巧2:檢查Web元素的存在

使用下面這串代碼,你將可以快速檢查Web對象的代碼大小并確定特定Web元素的存在:Driver.findElements(pass.ID(“元素-ID”)).size()!=0

寫在最后

實際工作中,Selenium還具備很多實用的功能。如果你能充分利用Selenium,就可以創建一個穩定、真實和可靠的UI自動化流程。當然,前提是你得積累Selenium的各種使用技巧,并經常應用他們。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

?這些資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!凡事要趁早,特別是技術行業,一定要提升技術功底。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75592.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洛谷題單3-P5724 【深基4.習5】求極差 最大跨度值 最大值和最小值的差-python-流程圖重構

題目描述 給出 n n n 和 n n n 個整數 a i a_i ai?&#xff0c;求這 n n n 個整數中的極差是什么。極差的意思是一組數中的最大值減去最小值的差。 輸入格式 第一行輸入一個正整數 n n n&#xff0c;表示整數個數。 第二行輸入 n n n 個整數 a 1 , a 2 … a n a_1,…

STM32智能手表——任務線程部分

RTOS和LVGL我沒學過&#xff0c;但是應該能硬啃這個項目例程 ├─Application/User/Tasks # 用于存放任務線程的函數 │ ├─user_TaskInit.c # 初始化任務 │ ├─user_HardwareInitTask.c # 硬件初始化任務 │ ├─user_RunModeTasks.c…

ubuntu22.04LTS設置中文輸入法

打開搜狗網址直接下載軟件&#xff0c;軟件下載完成后&#xff0c;會彈出安裝教程說明書。 網址:搜狗輸入法linux-首頁搜狗輸入法for linux—支持全拼、簡拼、模糊音、云輸入、皮膚、中英混輸https://shurufa.sogou.com/linux

SQL Server數據庫異常-[SqlException (0x80131904): 執行超時已過期] 操作超時問題及數據庫日志已滿的解決方案

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家、CSDN平臺優質創作者&#xff0c;獲得2024年博客之星榮譽證書&#xff0c;高級開發工程師&#xff0c;數學專業&#xff0c;擁有高級工程師證書&#xff1b;擅長C/C、C#等開發語言&#xff0c;熟悉Java常用開發技術&#xff0c…

php8 ?-> nullsafe 操作符 使用教程

簡介 PHP 8 引入了 ?->&#xff08;Nullsafe 操作符&#xff09;&#xff0c;用于簡化 null 檢查&#xff0c;減少繁瑣的 if 語句或 isset() 代碼&#xff0c;提高可讀性。 ?-> Nullsafe 操作符的作用 在 PHP 7 及以下&#xff0c;訪問對象的屬性或方法時&#xff0…

WORD+VISIO輸出PDF圖片提高清晰度的方法

WORDVISIO輸出PDF圖片提高清晰度的方法 part 1: visio 繪圖part 2: word 導出 part 1: visio 繪圖 先在visio中把圖片和對應的文字調整為適合插入到文章中的尺寸&#xff1b; 在visio中把所有元素進行組合&#xff1b; 把組合后的圖片長和寬等比例放縮&#xff0c;如放大10倍…

重要頭文件下的函數

1、<cctype> #include<cctype>加入這個頭文件就可以調用以下函數&#xff1a; 1、isalpha(x) 判斷x是否為字母 isalpha 2、isdigit(x) 判斷x是否為數字 isdigit 3、islower(x) 判斷x是否為小寫字母 islower 4、isupper(x) 判斷x是否為大寫字母 isupper 5、isa…

基于大模型預測不穩定性心絞痛的多維度研究與應用

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的 1.3 國內外研究現狀 二、不穩定性心絞痛概述 2.1 定義與分類 2.2 發病機制 2.3 臨床表現 三、大模型技術原理與應用基礎 3.1 大模型介紹 3.2 在醫療領域的應用現狀 3.3 用于不穩定性心絞痛預測的可行性 四、術前預…

第一講—函數的極限與連續(一)

思維導圖 筆記 雙曲正弦函數及其反函數

Mac VM 卸載 win10 安裝win7系統

卸載 找到相應直接刪除&#xff08;移動到廢紙簍&#xff09; 可參考&#xff1a;mac如何卸載虛擬機win 下載 win7下載地址

免費送源碼:Java+SSM+Android Studio 基于Android Studio游戲搜索app的設計與實現 計算機畢業設計原創定制

摘要 本文旨在探討基于SSM框架和Android Studio的游戲搜索App的設計與實現。首先&#xff0c;我們詳細介紹了SSM框架&#xff0c;這是一種經典的Java Web開發框架&#xff0c;由Spring、SpringMVC和MyBatis三個開源項目整合而成&#xff0c;為開發企業級應用提供了高效、靈活、…

網絡安全的現狀與防護措施

隨著數字化和信息化的迅猛發展&#xff0c;互聯網已成為人們日常生活、工作和學習不可或缺的一部分。然而&#xff0c;隨著網絡技術的普及&#xff0c;網絡安全問題也日益突出。近年來&#xff0c;數據泄露、惡意軟件、網絡攻擊等事件層出不窮&#xff0c;給企業和個人帶來了巨…

android databinding使用教程

Android DataBinding 是一種可以將 UI 組件與數據源綁定的框架&#xff0c;能夠減少 findViewById 的使用&#xff0c;并提高代碼的可維護性。下面是 DataBinding 的完整使用教程&#xff1a; 1. 啟用 DataBinding 在 build.gradle&#xff08;Module 級別&#xff09;中啟用 …

python如何快速刪除文件夾中的大量文件

在 Python 中&#xff0c;刪除文件夾中的大量小圖片文件可以通過使用 os 模塊或 shutil 模塊來實現。以下是一個示例代碼&#xff0c;展示了如何快速刪除指定文件夾中的所有文件。如果你只需要刪除小圖片文件&#xff0c;可以添加額外的邏輯來檢查文件大小。 以下是一個示例代…

如何使用 IntelliJ IDEA 開發命令行程序(或 Swing 程序)并手動管理依賴(不使用 pom.xml)

以下是詳細步驟&#xff1a; 1. 創建項目 1.1 打開 IntelliJ IDEA。 1.2 在啟動界面&#xff0c;點擊 Create New Project&#xff08;創建新項目&#xff09;。 1.3 選擇 Java&#xff0c;然后點擊 Next。 1.4 確保 Project SDK 選擇了正確的 JDK 版本&#x…

FastAPI-Cache2: 高效Python緩存庫

FastAPI-Cache2是一個強大而靈活的Python緩存庫&#xff0c;專為提升應用性能而設計。雖然其名稱暗示與FastAPI框架的緊密集成&#xff0c;但實際上它可以在任何Python項目中使用&#xff0c;為開發者提供簡單而高效的緩存解決方案。 在現代應用開發中&#xff0c;性能優化至關…

android開發:zxing-android-embedded豎屏掃描功能

Android 點擊按鈕調用豎屏二維碼掃描 提示&#xff1a;zxing-android-embedded插件已過時&#xff0c;建議更換別的。 場景&#xff1a;Home頁面上有個掃描按鈕&#xff0c;點擊后打開攝像頭完成掃描功能&#xff0c;掃描時要求豎屏。 方案&#xff1a;使用zxing-android-embe…

指令補充+樣式綁定+計算屬性+監聽器

一、指令補充 1. 指令修飾符 1. 作用: 借助指令修飾符, 可以讓指令更加強大 2. 分類: 1> 按鍵修飾符: 用來檢測用戶的按鍵, 配合鍵盤事件使用. keydown 和 keyup 語法: keydown.enter/v-on:keydown.enter 表示當enter按下的時候觸發 keyup.enter/v-on:keyup.enter 表示當…

Python基于時間序列分析的降雨量預測系統的設計與實現【附源碼、文檔說明】

博主介紹&#xff1a;?Java老徐、7年大廠程序員經歷。全網粉絲12w、csdn博客專家、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專欄推薦訂閱&#x1f447;&…

【2022】【論文筆記】基于相變材料的光學激活的、用于THz光束操作的編碼超表面——

前言 類型 太赫茲 + 超表面 太赫茲 + 超表面 太赫茲+超表面 期刊 A D V A N C E D ?? O P T I C A L ?? M A T E R I A L S ADVANCED \; OPTICAL \; MATERIALS