自動化測試系列 —— UI自動化測試!

UI 測試是一種測試類型,也稱為用戶界面測試,通過該測試,我們檢查應用程序的界面是否工作正常或是否存在任何妨礙用戶行為且不符合書面規格的 BUG。了解用戶將如何在用戶和網站之間進行交互以執行 UI 測試至關重要,通過執行 UI 測試,測試人員將嘗試模仿用戶的行為,以查看用戶將如何與程序進行交互,并查看網站的運行情況是否如預期的那樣,是否有缺陷。

什么是 UI 測試?

UI 測試涵蓋了用戶交互部分,包括用戶關注的網站結構和視覺部分。Web 網站包含許多來自 CSS,JavaScript 和許多其他語言的不同 Web 元素,網站元素可以連接到屏幕、鍵盤、鼠標或用戶用于與網站進行交互的任何其他工具,UI 測試則捕獲這些元素并對其進行測試和聲明。

在執行 UI 測試時,需要注意確保應用程序不存在任何跨瀏覽器兼容性問題。由于每個瀏覽器都使用不同的瀏覽器引擎,并且可能不支持相同的 CSS 功能。因此,確保UI 在所有主要瀏覽器上無縫呈現非常重要。在不同的瀏覽器上進行測試稱為跨瀏覽器測試,可以幫助測試人員在所有主要瀏覽器和設備(包括手機,平板電腦等)的多種組合下測試其網站。

手動或自動,如何選擇?

與其他任何類型的測試一樣,UI 測試也可以手動或通過自動化執行。手動測試要求測試人員在每個元素上手動執行每個測試。例如,測試輸入字段將需要針對任何差異一次又一次地鍵入不同的值。如果網站 UI 的組件較少??,則最好通過手動過程進行 UI 測試,快速地完成。但它不適合復雜的網站,用戶界面豐富的網站使手動 UI 測試則非常低效,費時且容易出錯。

現在我也找了很多測試的朋友,做了一個分享技術的交流群,共享了很多我們收集的技術文檔和視頻教程。
如果你不想再體驗自學時找不到資源,沒人解答問題,堅持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動化,性能,安全,測試開發等等方面有一定建樹的技術大牛
分享他們的經驗,還會分享很多直播講座和技術沙龍
可以免費學習!劃重點!開源的!!!
qq群號:691998057【暗號:csdn999】

適合UI自動化測試的場景

不是所有的測試場景都適合用自動化測試來實現,對此,可以參考以下的標準輔助判斷:

  • 項目的需求不會頻繁變動
  • 頁面的 UI 已經進入穩定階段
  • 項目周期足夠長
  • 大量回歸的測試任務

其中,有些項目是明顯不適合使用 UI 自動化測試的,例如視頻播放器,音樂播放器等交動性強,并發依賴強的軟件。

UI自動化測試的優點

UI自動化測試過程簡化了創建UI測試、運行測試以及查看結果的過程,開發和測試團隊選擇自動化UI測試的原因有很多,最值得注意的包括:

  • 時間 – 手動測試速度很慢,無法與許多開發過程保持同步。
  • 成本 – 手動測試需要大量資源且成本很高。
  • 準確性 – 執行重復性任務時,手動測試容易出現更多錯誤。相反,自動化減少了這些錯誤的機會。
  • 規模化 – 執行復雜的迭代時,很難依靠手動測試。
  • 趨勢 – 大多數組織已經意識到如何從自動化測試中受益,因此,跳上自動化潮流的壓力越來越大。

UI自動化測試設計原則

  • 一個測試用例完成一個功能點測試(常用):一個手工用例對應一個自動化測試用例;
  • 一個腳本是一個完整的場景;
  • 腳本之間獨立,不能有依賴(腳本間相互隔離):例如與登陸狀態相關的用例:個人中心、訂單詳情、下單購物等,如果腳本之間不獨立,相互依賴,在登陸的測試腳本失敗的情況下,會導致個人中心、訂單詳情、下單購物的測試腳本全軍覆滅,后續修復與維護成本高;
  • 設置合適的檢查點:通過斷言判斷用例的成功與否;
  • 設計良好的框架:Python 常用的測試框架有 unittest 與 pytest,利用框架,及對共用的測試模塊進行封裝,減少自動化測試腳本維護的工作量;

WEB端UI測試工具介紹

API測試用例主要由4個部分組成,分別是:用例的基礎信息、前置步驟、請求腳本以及斷言。

UTF

UTF( Unified Functional Testing) = QTP( Quick Test Pro) + ST( Service Test)由 HP 公司開發。它是一種企業級的自動測試工具,提供了強大易用的錄制回放功能,同時兼容對象識別模式與圖像識別模式兩種識別方式,支持 B/S 與 C/S 兩種架構的軟件測試,是目前主流的自動化測試工具。主要是用于回歸測試和同一軟件的新版本測試。

Robot Framework

是一款基于 Python 語言編寫的自動化測試框架,具備良好的可擴展性,支持關鍵字驅動,可以同時測試多種類型的客戶端或者接口,可以進行分布式測試。

Selenium

Selenium概要

Selenium 也是一個用于 Web 應用程序測試的工具,支持多平臺、多瀏覽器、多語言去實現自動化測試,目前在 Web 自動化領域應用最為廣泛。

Selenium 是最廣泛使用的開源 Web UI(用戶界面)自動化測試套件之一,最初由杰森·哈金斯(Jason Huggins)于 2004 年開發,作為 Thought Works 的內部工具。Selenium 支持跨不同瀏覽器,平臺和編程語言的自動化。

Selenium功能特性

  • Selenium 是一個開源和可移植的 Web 測試框架。
  • Selenium IDE 為創作測試提供了回放和錄制功能,而無需學習測試腳本語言。
  • 它可以被視為領先的基于云的測試平臺,可幫助測試人員記錄他們的操作并將其導出為可重復使用的腳本,并具有易于理解且易于使用的界面。
  • Selenium 支持各種操作系統,瀏覽器和編程語言。如下列表:
    • 編程語言: C# ,Java,Python,PHP,Ruby,Perl 和 JavaScript
    • 操作系統:Android,iOS,Windows,Linux,Mac,Solaris。
    • 瀏覽器:谷歌瀏覽器,Mozilla Firefox,Internet Explorer,Edge,Opera,Safari 等。
  • 它還支持并行測試執行,從而減少了時間并提高了測試效率。
  • Selenium 可以與 Ant 和 Maven 等框架集成,用于源代碼編譯。
  • Selenium 還可以與 TestNG 等測試框架集成,以進行應用程序測試和生成報告。
  • 與其他自動化測試工具相比,Selenium 需要的資源更少。
  • WebDriver API 已經嘗試集于 Selenium 中,這是對 Selenium 進行的最重要的修改之一。
  • Selenium Web 驅動程序不需要服務器安裝,測試腳本直接與瀏覽器交互。
  • Selenium 命令根據不同的類進行分類,使其更易于理解和實現。
  • Selenium Remote Control(RC)與 WebDriver API 一起被稱為 Selenium 2.0。此版本旨在支持充滿活力的網頁和 Ajax。

Selenium三大優點

  • 速度:時間是每家公司的主要資源,自動化測試可以節省很多時間。Selenium Automation 測試要求我們只編寫一次測試,然后一次又一次地運行它們,而不會以不同的值和不同的方案進行任何干預。
  • 準確性:只要測試編寫正確,Selenium Automation 測試就可以幫助我們正確執行測試。手動測試的主要缺點是容易發生人為錯誤。
  • 透明度:Selenium Automation 測試還有助于快速生成報告,并在測試完成后立即與團隊共享。另一方面,手動測試需要時間來提取結果并手動報告結果以通過軟件或手動生成報告。

總結

UI測試是軟件測試周期的重要組成部分,是改善用戶體驗和客戶滿意度的重要驅動力,大多數最終用戶更關心他們實際看到和觸摸的內容。因此,這也是為什么UI或用戶界面變得如此重要,從而進行UI測試的原因。

下面是配套資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!

最后: 可以在公眾號:程序員小濠 ! 免費領取一份216頁軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、互聯網程序原理、Mysql數據庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。

如果我的博客對你有幫助、如果你喜歡我的博客內容,請 “點贊” “評論” “收藏” 一鍵三連哦!

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

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

相關文章

Maven 插件之 maven-enforcer-plugin 解決沖突重復依賴

目錄 0、前言1、enforcer 是什么2、能干什么3、怎么用4、規則5、擴展規則6、使用7、banDuplicateClasses8、banDuplicatePomDependencyVersions 0、前言 maven 項目種經常出現 jar 包沖突、重復依賴、無效引用怎么辦,maven-enforcer-plugin 了解一下 1、enforcer …

《AI紀元:幻域探險》

游戲項目名稱:《AI紀元:幻域探險》 游戲類型:AI驅動的角色扮演探險游戲(RPG) 背景設定: 《AI紀元:幻域探險》設定在一個名為“幻域”的廣闊虛擬世界。這個世界由高度發達的AI技術支持&#xff0…

SpringCloud-同步異步通訊比較

本文詳細探討了同步通訊和異步通訊在信息傳遞中的區別,以及它們分別帶來的優勢和不足。通過對支付流程的案例分析,突顯了同步通訊可能面臨的阻塞和服務依賴問題,而異步通訊通過引入事件驅動模式和消息代理(Broker)成功…

SQL Server 開發環境配置教程(SSMS+SQL Prompt)

背景 記錄一下 SQL Server 常用開發軟件 體驗了各種數據庫IDE(DBeaver、Navicat、DataGrip)之后綜合下來還是感覺 SSMSSQL Prompt 對于 SQL Server 最好用,所以在此記錄一下配置過程 數據庫可視化管理工具SSMS 官方下載地址: https://learn.microsoft…

Java基礎數據結構之棧

一.什么是棧 棧是一種特殊的線性表,它只允許在固定的一端進行元素的添加與使用,且遵循先進后出的原則。添加取用元素的一端稱為棧頂,另一端稱為棧底。出棧和入棧都是操作棧頂元素 二.棧的模擬實現 棧的底層是一個數組 這是里面的成員變量以…

智能汽車加速車規級存儲應用DS2431P+TR 汽車級EEPROM 存儲器IC

DS2431PT&R是一款1024位1-Wire EEPROM芯片,由四頁存儲區組成,每頁256位。數據先被寫入一個8字節暫存器中,經校驗后復制到EEPROM存儲器。該器件的特點是,四頁存儲區相互獨立,可以單獨進行寫保護或進入EPROM仿真模式…

第2章 線性代數

目錄 1. 標量、向量、矩陣和張量2. 矩陣和向量相乘3. 單位矩陣和逆矩陣4. 線性相關和生成子空間5. 范數6. 特殊類型的矩陣和向量7. 特征分解8. 奇異值分解9. Moore-Penrose偽逆10. 跡運算11. 行列式 1. 標量、向量、矩陣和張量 標量(scalar):…

【 C++ 】特殊類設計

1、請設計一個類,不能被拷貝 拷貝只會出現在兩個場景中:拷貝構造函數以及賦值運算符重載,因此想要讓一個類禁止拷貝,只需讓該類不能調用拷貝構造函數以及賦值運算符重載即可。在C98和C11都有相對應的方法來解決此問題&#xff0c…

ssm172旅行社管理系統的設計與實現

** 🍅點贊收藏關注 → 私信領取本源代碼、數據庫🍅 本人在Java畢業設計領域有多年的經驗,陸續會更新更多優質的Java實戰項目希望你能有所收獲,少走一些彎路。🍅關注我不迷路🍅** 一 、設計說明 1.1 研究…

day03-Vue-Element

一、Ajax 1 Ajax 介紹 1.1 Ajax 概述 概念:Asynchronous JavaScript And XML,異步 的 JavaScript 和 XML。 作用: 數據交換:通過 Ajax 可以給服務器發送請求,并獲取服務器響應的數據。異步交互:可以在 不…

Java教程:SpringBoot項目如何對接Nacos實現服務發現治理,配置管理

–Nacos大家都知道,不懂的可以去官網或者網上查閱一下,本次給大家講解一下如何在SpringBoot項目中引入Nacos服務來進行服務治理與發現,配置管理等,在微服務當中是必不可少的,各個模塊之間可以通過Feign遠程調用&#x…

物聯網主機:為智能交通賦能

物聯網(IoT)技術的發展為智能交通領域帶來了許多創新的解決方案。而在物聯網應用中,物聯網主機起著關鍵的作用。本文將為大家介紹一款名為E6000的物聯網主機,它是一種多協議、多接口的物聯網主機,為智能交通系統的建設…

antvX6 - Vue自定義節點,并實現多種畫布操作,拖拽、縮放、連線、雙擊、檢索等等

一、 首先 antv x6 分為兩個版本 低版本和高版本 我這里是使用的2.0版本 并且搭配了相關插件 例如:畫布的圖形變換、地圖等 個人推薦 2.0版本,高版本配置多,可使用相關插件多,但是文檔描述小,仍在更新, 低…

小d和圖片壓縮

題目描述 小ddd和她對象小紅去海洋館玩了,但是由于小ddd拍照技術不好,他對象說把她拍的像嘎子! 小ddd看了看,發現是小紅最近長痘痘了,于是他為了討小紅開心,讓痘痘看不見,自學了圖像壓縮這個技…

裝飾器模式 詳解 設計模式

裝飾器模式 它允許你在不改變對象結構的情況下,動態地將新功能附加到對象上。 結構: 抽象組件(Component):定義了原始對象和裝飾器對象的公共接口或抽象類,可以是具體組件類的父類或接口。具體組件&…

固定排班計劃

目錄 1.按發車時間排序。 2.排班日期默認當天時間。 3.編輯不可修改線路和排班日期。 4.線路、車號、司機是否匹配,不匹配不可入庫(和其他表比),線路、發車時間、司機、車號、日期、上下行相同不可入庫(和自己表比…

GO語言學習筆記(與Java的比較學習)(一)

GO的優缺點: 此處引用華為云開發者聯盟的一篇文章: GO語言的亮點很明顯: GoDoc。 GoDoc的靜態語言分析能力很強大,可以直接從代碼和注釋生成漂亮的文檔。這一點區別于其他的類似工具如JavaDoc, PHPDoc或者JSDoc。這些工具需要添加…

如何在群暉Docker運行本地聊天機器人并結合內網穿透發布到公網訪問

文章目錄 1. 拉取相關的Docker鏡像2. 運行Ollama 鏡像3. 運行Chatbot Ollama鏡像4. 本地訪問5. 群暉安裝Cpolar6. 配置公網地址7. 公網訪問8. 固定公網地址 隨著ChatGPT 和open Sora 的熱度劇增,大語言模型時代,開啟了AI新篇章,大語言模型的應用非常廣泛,包括聊天機…

C# Socket通信從入門到精通(21)——TCP發送文件與接收文件 C#代碼實現

1、前言 我們在開發上位機軟件的過程中經常需要發送文件,本文就是介紹如何利用tcp客戶端發送文件、tcp服務器端接收文件,而且本文介紹的方法可以自動發送一個文件夾下的所有子目錄以及所有文件,經驗來自于實際項目,具備非常有價值的參考意義! 2、發送文件以及C#代碼 被發…

LeetCode第48天 買賣股票的最佳時機 買賣股票的最佳時機II 動態規劃

121. 買賣股票的最佳時機 class Solution { public:int maxProfit(vector<int>& prices) {// int res 0 ;// int low INT_MAX;// for (int i 0; i < prices.size(); i) {// low min(low, prices[i]);// res max(res, prices[i]-low);// }// return r…