【測試】?動化測試概念篇

?本節?標:

  • ?動化測試
  • Web?動化測試
  • selenium

1. ?動化

1.1 ?動化概念

    ?動化在?活中處處可?,?動的代替?的?為完成操作。

    ?動灑?機,主要通上?就可以?動化灑?并且可以?動的旋轉。

    ?動洗?液,免去了?動擠壓可以?動感應出洗?液

    超市?動閘?,不需要?動的開?關?

    ?活中的?動化案例有效的減少了??的消耗,同時也提?了?活的質量。

    軟件中的?動化測試也是如此,通過?動化測試有效減少??的消耗的同時也提?了測試的質量和效率。

    • 測試人員編寫自動化測試腳本
    • 增加新的功能:測試人員需要同步增加對應的自動化腳本
    • 自動化測試報錯:測試人員需要維護并解決自動化腳本問題

    ?動化的主要?的就是?來進?回歸測試。回歸測試是什么要講到位

    1.1.1 回歸測試

    軟件有多個版本需要進?功能的整體回歸。

    為了避免新增功能影響到歷史的功能需要進?功能的回歸。

    常??試題

    1.?動化測試能夠取代??測試嗎?

    ?動化測試不?定???測試更能保障系統的可靠性,?動化測試是測試?員??編寫,后續如果有功能的變更?動化也需要進?不定期的維護和更新。

    2.?動化測試可以?幅度降低?作量?

    錯誤

    坑!!“?定程度上”和“?幅度”的表達?式也需要注意

    tips:測試筆試中的選擇題盡量不要選擇說的太死或者太絕對的選項?

    1.2 ?動化分類

    ? 很多同學經常聽到?動化這個詞,但是很容易誤以為?動化就是?個東西,?動化是個統稱,同

    學們可以理解為我們常說的吃?這樣的表達?式和?動化是?樣的,吃?可以是吃西?,吃哈密

    ?,吃??,?動化也包含多種,如接??動化,web?動化,移動端?動化等等...

    ? 主要介紹各測試分類為什么需要實施?動化,?的和意義

    1.2.1 接??動化

    什么是接??動化測試?

    為什么要做?解決了什么問題,?的是什么

    1.2.2 UI?動化

    UI測試也稱為界?測試,常?的UI?動化測試包含web?動化測試、客戶端?動化測試等等。

    客戶端:pc端? 移動端

    1.2.2.1 移動端?動化測試

    什么是移動端?動化測試?

    為什么要做?解決了什么問題,?的是什么

    移動端,顧名思義,就是部署在?機上的應?程序。移動端?動化測試主要測試程序部署在?機上能否按照預期的結果的進?操作。

    移動端測試通常不是將程序部署在移動端上進?測試,?是需要安裝模擬器,在電腦上編寫?動化測試腳本代碼對模擬器上的軟件進?操作

    移動端測試難度相對較?,移動端測試的穩定性要?接??動化測試和web?動化測試的穩定性要差很多,原因主要是移動端測試收到的環境影響?較多,諸如什么呢????

    1.2.2.2 web?動化測試

    什么是web?動化測試?

    為什么要做?解決了什么問題,?的是什么

    如何進?百度搜索?

    通常來說我們?動進?百度搜索的步驟如下,web?動化能夠代替我們?動的執?。

    模擬?在瀏覽器上的操作?為,?動的打開瀏覽器,訪問百度??,并進??系列的搜索和驗證等?為。

    1.3 ?動化測試?字塔

    ?動化的類型?常多,那么到底哪?種是最好的?哪?種測試的收益會更佳?

    這?我們介紹測試圈內?常著名的?動化測試?字塔

    理想的?動化測試?字塔表達了?動化測試的理想情況,利?較少的時間和精?在單元測試上就能夠發現更多有效的問題。

    然后實際上在企業中,?動化往往是“冰淇淋蛋筒反模式”

    ?動化需要?量的初始投資,找到“突破點”,與?動測試相?,我們開始看到它對?期成本產?的 積極影響,也能夠清楚,這兩種測試活動都是完全兼容,產?短期和?期利益。

    2. web?動化測試

    學到這?,希望同學們對?動化測試能夠有?定的了解。然后實際在企業中,我們需要對某?個特定的軟件進??動化的實施,包含但不限于軟件所有界?的UI?動化測試、所有接?的接??動化測試。

    接下來我們將正式步?web?動化測試的學習,了解企業中是如何使??具來統?編寫和管理?動化?例。

    2.1 驅動

    上?給?家已經介紹過,web系統的測試前提是需要打開瀏覽器,通過訪問web服務器來對服務器界?進??系列的操作。對于??測試來說,這?系列的操作都需要測試?員?動的,?步?步的來執?測試。那么對于?動化程序來說,程序如何才能打開瀏覽器并執?我們預期的操作流程呢?

    驅動?詞應??泛,同學們都不會陌?。

    ?有了驅動才能夠讓?跑起來。

    計算機有了驅動程序就可以與設備(?機,攝像頭,?克?,鍵盤,顯?器等等設備)進?通信。

    程序想要打開web瀏覽器就需要安裝web驅動(即WebDriver),WebDriver 以本地化?式驅動瀏覽

    器。

    2.1.1 安裝驅動管理

    驅動管理:

    WebDriverManager是?個開源Java庫,以完全?動化的?式對Selenium WebDriver所需的驅動程 序(如chromedriver、geckodriver、msedgedriver等)進?管理(即下載、設置和維護),?版本5起,WebDriverManager還提供了其他相關功能,如發現本地系統中安裝的瀏覽器的能?,構建 WebDriver對象(如ChromeDriver、FirefoxDriver、EdgeDriver等)

            <dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version><scope>test</scope></dependency>

    3. Selenium

    萬事俱備,只?東?。

    接下來就是使?selenium來編寫web?動化測試腳本。

    selenium是?個web?動化測試?具,selenium中提供了豐富的?法供給使?者進?web?動化測

    試。

    3.1 ?個簡單的web?動化?例

    1)安裝selenium庫

            <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>

    2)使?selenium編寫代碼

    package com.example.seleniumaototest;import io.github.bonigarcia.wdm.WebDriverManager;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.chrome.ChromeDriver;
    import org.openqa.selenium.chrome.ChromeOptions;public class FirstTest {//測試百度搜索關鍵詞迪麗熱巴public void test01() throws InterruptedException {//1.打開瀏覽器WebDriverManager.chromedriver().setup();//增加瀏覽器配置,創建對象時允許訪問所有鏈接ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");WebDriver driver = new ChromeDriver(options);Thread.sleep(1000);//2.輸入完整網址:https://www.baidu.comdriver.get("https://www.baidu.com");Thread.sleep(1000);//3.找到輸入框,輸入“迪麗熱巴”driver.findElement(By.cssSelector("#kw")).sendKeys("迪麗熱巴");Thread.sleep(1000);///4.找到百度一下driver.findElement(By.cssSelector("#su")).click();Thread.sleep(1000);//5.關閉瀏覽器driver.quit();}
    }
    

    3.2 selenium+驅動+瀏覽器的?作原理

    實現web?動化測試需要瀏覽器、瀏覽器驅動、selenium?動化腳本。這三者是如何交互最終實現web的?動化測試?

    1. 通過selenium編寫的?動化腳本代碼中在ChromeDriverService中創建?個服務

    2. 通過創建好的服務打開webdriver,安裝在本地的驅動服務IP為localhost,PORT為ChromeDriverService中創建的端?號,該服務地址為selenium向webdriver發送請求的服務地 址。

    3. 向瀏覽器驅動程序發送HTTP請求,瀏覽器驅動程序解析請求,打開瀏覽器,并獲得sessionid,如果再次對瀏覽器操作需攜帶此id

    4. 打開瀏覽器后,所有的selenium的操作(訪問地址,查找元素等)均通過創建好的服務鏈接到 webdriver,然后使?execute發送請求

    5. 驅動收到請求并對請求進?解析,轉成瀏覽器能夠解析的腳本并發送給瀏覽器,瀏覽器通過請求的內容執?對應動作

    6. 瀏覽器再把執?的動作結果通過瀏覽器驅動程序返回給測試腳本

    驅動需要接收、解析請求,發送請求給瀏覽器,那么驅動到底是什么樣的??呢?

    驗證?式:

    1)執?selenium編寫的?動化腳本代碼中,可以在終端看到創建的驅動服務地址。

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

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

    相關文章

    Java中給List<T> 對象集合去重

    Java中給List 對象集合去重List<Student> getStudentList studentMapper.getStudentList();List<Student> distinctInsurance distinctByField(getStudentList, Student::getCertNo);public static <T> List<T> distinctByField(List<T> list…

    最小二乘法MSE

    最小二乘法MSEx1x2x3x4x5x6x7x8x0y014805-29-31339-41064-14-2-1481-114-1-65-123-32-21305-23105114-81126-15-15-8-157-4-1221-39511-10-243-9-671-87-1404-35101371422-3-7-2-80-6-5-91-3091前景知識: 矩陣相關公式y(339?11430126?395?87422?309)y\begin{pmatrix} 339&a…

    Pixel 4D 3.4.4.0 | 支持豐富的壁紙資源,高清畫質,高度的個性化設置能力,智能推薦功能

    Pixel 4D是一款功能強大且用戶體驗良好的動態壁紙應用。它提供了豐富的壁紙資源和高清畫質&#xff0c;讓用戶可以輕松找到自己喜歡的壁紙。此外&#xff0c;該應用還具備高度的個性化設置能力&#xff0c;允許用戶根據自己的喜好調整壁紙效果。智能推薦功能則能幫助用戶發現更…

    <PhotoShop><JavaScript><腳本>基于JavaScript,利用腳本實現PS軟件批量替換圖片,并轉換為智能對象?

    前言 PhotoShop軟件支持JavaScript腳本,來擴展軟件的功能,官方本身也提供了一些常用腳本,如圖像處理等,同時也支持自定義的JavaScript腳本。 環境配置 系統:windows 平臺:visual studio code 語言:JavaScript 軟件:PhotoShop 2022 版本:23.2.1 概述 本文利用Java…

    【Linux】System V - 基于建造者模式的信號量

    目錄 信號量和P、V原語 信號量集結構體 信號量操作接口 semget semctl semop 封裝Sem 關于建造者模式 信號量和P、V原語 信號量和 P、V 原語由 Dijkstra &#xff08;迪杰斯特拉&#xff09;提出 信號量值含義 S>0: S 表?可?資源的個數 S0: 表??可?資源&a…

    機器學習(11):嶺回歸Ridge

    嶺回歸是失損函數通過添加所有權重的平方和的乘積(L2)來懲罰模型的復雜度。均方差除以2是因為方便求導&#xff0c;w_j指所有的權重系數, λ指懲罰型系數&#xff0c;又叫正則項力度特點:嶺回歸不會將權重壓縮到零&#xff0c;這意味著所有特征都會保留在模型中&#xff0c;但它…

    調整Idea緩存目錄,釋放C盤空間

    本文使用 Idea2024 Idea 會將一些配置默認緩存在C盤&#xff0c;使用久了會占用大量空間&#xff08;本人的Idea占用了將近5個G&#xff0c;以至于不得不進行遷移&#xff09; 緩存目錄主要涉及以下四個目錄&#xff0c;四個目錄可以分為兩組&#xff0c;每組目錄必須一起調整 …

    手搓柵格工具-山體陰影

    一、概述 山體陰影工具通過為柵格中的每個像元確定照明度&#xff0c;來獲取表面的假定照明度。 通過設置假定光源的位置并計算每個像元相對于相鄰像元的照明度值來實現此目的。 它可以顯著增強用于分析或圖形顯示的表面的可視化效果&#xff0c;尤其是在使用透明度時。 默認情…

    Censtos docker安裝方法

    #設置防火墻 systemctl stop firewalld.service setenforce 0 #安裝依賴包 yum install -y yum-utils device-mapper-persistent-data lvm2 #yum-utils&#xff1a;提供了 yum-config-manager 工具。 #device mapper&#xff1a; 是Linux內核中支持邏輯卷管理的通用設備映射機制…

    單片機51 day46

    單片機 一&#xff1a;基礎概念 一&#xff1a;單片機最小系統 單片機&#xff1a;電源時鐘&#xff08;晶振&#xff09;復位 //實現的最小組件 電源&#xff1a;5V直流 時鐘(晶振)&#xff1a;決定系統運行的速率 一般12M&#xff08;不超過50M&#xff09;&#xff0c…

    【無標題】解鎖未來無線網絡的無限可能——Mesh自組網設備

    在科技迅猛發展的今天&#xff0c;無線網絡已經成為了現代生活不可或缺的一部分。無論是在家庭中娛樂觀看視頻、在線游戲&#xff0c;還是在企業中進行辦公、遠程協作&#xff0c;網絡的穩定性和覆蓋范圍都直接影響著我們的使用體驗。傳統的Wi-Fi網絡在面臨多設備同時連接或大面…

    Libevent(5)之使用教程(4)工具

    Libevent(5)之使用教程(4)工具函數 Author: Once Day Date: 2025年8月3日 一位熱衷于Linux學習和開發的菜鳥&#xff0c;試圖譜寫一場冒險之旅&#xff0c;也許終點只是一場白日夢… 漫漫長路&#xff0c;有人對你微笑過嘛… 本文檔翻譯于&#xff1a;Fast portable non-blo…

    Linux指令(3):

    1. cal指令&#xff1a;我們的cal指令有日歷的意思看上面&#xff0c;我們輸入一個cal指令&#xff0c;可以查看當前月的日歷&#xff0c;我們給cal指令后面加上 - 3&#xff0c;他就會顯示這個月為中間的三個月的日歷&#xff0c;但是-4 不行&#xff0c;-5 也不行。只能 - 3。…

    MLS平滑濾波

    1.前言 最近在學習&#xff0c;因此查閱相關資料&#xff0c;該怎么表述感覺有些困難 2.代碼 2.1代碼1 使用全局坐標系 參考&#xff1a;python點云移動最小二乘法(Moving Least Squares)平滑_移動最小二乘法python-CSDN博客 def Moving_Least_Squares_Smoothing_v1_expla…

    華為2288H V5服務器閃紅燈 無法開機案例

    廣東某客戶1臺華為2288H V5服務器&#xff0c;由于單位外圍電力維修導致服務器有過一次異常斷電。結果來電之后發現服務器無法開機&#xff0c;開機面板上有個紅色心跳指示燈&#xff0c; 工程師到客戶現場后通過192.168.2.100登陸到2288H V5服務器的BMC管理口&#xff0c;打算…

    SRIO入門之官方例程仿真驗證

    仿真SRIO事務時序仿真之前先完成下面兩步操作&#xff1a;1.Vivado軟件版本2020.1&#xff0c;創建好工程及SRIO的IP核2.右鍵綜合化的IP核&#xff0c;然后選擇打開IP示例工程直接運行仿真分別將request和response兩個模塊添加到仿真窗口進行查看運行1000us左右就可以看到信號動…

    CMake進階: 使用FetchContent方法基于gTest的C++單元測試

    目錄 1.前言 2.FetchContent詳解 2.1.FetchContent簡介 2.2.FetchContent_Declare 2.2.1.簡介 2.2.2.關鍵特性 2.2.3.常見示例 2.3.FetchContent_MakeAvailable 2.3.1.簡介 2.3.2.核心功能與工作流程 2.3.3.示例用法 2.3.4.關鍵特性 2.3.5.常見問題與解決方案 3.…

    亞馬遜廣告投放:如何減少無效曝光提高ROI

    “為什么廣告花費高但轉化率低&#xff1f;”“如何判斷關鍵詞是否值得繼續投放&#xff1f;”“曝光量暴漲但訂單沒增加怎么辦&#xff1f;”“ACOS居高不下該如何優化&#xff1f;”“手動廣告和自動廣告的預算怎么分配&#xff1f;”如果你也在為這些問題頭疼&#xff0c;說…

    Ethereum:擁抱開源,OpenZeppelin 未來的兩大基石 Relayers 與 Monitor

    不知道大家是否注意到&#xff0c;OpenZeppelin 正在經歷一次重大的戰略轉型。他們決定在 2026 年 7 月 1 日正式關閉其廣受好評的 SaaS 平臺——Defender&#xff0c;并將重心全面轉向開源工具的建設。 這一舉動在社區引發了廣泛的討論&#xff0c;也標志著 OpenZeppelin 希望…

    HFSS許可監控與分析

    在電磁仿真領域&#xff0c;HFSS&#xff08;High Frequency Structure Simulator&#xff09;因其卓越的性能和廣泛的應用而受到用戶的青睞。然而&#xff0c;隨著企業和研究機構對HFSS使用需求的不斷增長&#xff0c;如何有效監控和分析HFSS許可證的使用情況&#xff0c;以確…