[軟件測試]:什么是自動化測試?selenium+webdriver-manager的安裝,實現你的第一個腳本

目錄

1. 什么是自動化測試?

回歸測試

自動化分類

2. web自動化測試

3. selenium


1. 什么是自動化測試?

通過自動化測試工具,編寫腳本,自動執行測試用例,主要用于回歸測試,性能測試等重復測試任務

常見面試題

自動化測試能取代人工測試嗎?

自動化測試腳本是由測試人員編寫的,后續有功能的變更,也需要修改測試腳本,更新測試用例,所以自動化測試不能取代人工

自動化測試可以大幅度降低工作量?

錯誤

自動化測試還需要人工編寫測試腳本,測試人員需要維護自動化測試。測試主要由人工測試為主,自動化測試來輔助測試

回歸測試

自動化測試主要用于回歸測試。什么是回歸測試?

軟件有多個版本需要進行功能的整體回歸,每增加一個功能,都可能會影響之前的功能,所以新版本和舊版本都需要進行測試,使用自動化測試。

自動化分類

接口自動化測試:直接調用API接口,驗證接口的輸入輸出是否符合預期,關注程序的內部交互和數據傳輸

前端自動化測試:模擬用戶在UI界面上的操作,驗證前端頁面的功能,又分為web前端自動化和客戶端自動化

  • web前端自動化測試:主要針對瀏覽器的Web程序,測試頁面元素,交互功能和兼容性

  • 客戶端自動化測試:針對移動端應用,測試安裝,啟動,界面間交互和設備兼容性

2. web自動化測試

web自動化測試的前提是打開瀏覽器,通過訪問web服務器來對服務器界面進行測試,程序想要打開瀏覽器就要安裝對應的web驅動。

若通過安裝驅動的方式來啟動瀏覽器,每次瀏覽器更新后對應的驅動也要更新,為了解決這個問題,selenium中提供了驅動管理工具 webdriver - manager,有了webdriver - manager無需手動安裝瀏覽器驅動,即使瀏覽器更新也不會影響自動化的執行

先安裝python環境,然后安裝webdriver-manager,在控制臺中輸入這條命令

pip install webdriver-manager 

安裝selenium

pip install selenium==4.0.0

3. selenium

我們安裝好了webdriver-manager驅動,可以通過腳本打開瀏覽器,安裝了selenium,可以使用selenium編寫自動化腳本。

在pyCharm編輯器中,檢查python解釋器,確定selenium庫和webdriver-manager庫都安裝成功并加載到項目中,然后編寫一段簡單的selenium腳本

import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
?
# 創建谷歌瀏覽器驅動對象,安裝谷歌瀏覽器驅動
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
#訪問百度頁面
driver.get("https://www.baidu.com")
#在百度頁面的搜索框中搜索 "許嵩" 
driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("許嵩")
#點擊百度頁面的 "百度一下" 按鈕
driver.find_element(By.CSS_SELECTOR, "#su").click()
#休眠30秒
time.sleep(30)
#關閉瀏覽器
driver.quit()

selenium+web驅動+瀏覽器的工作原理

image-20250610205143312

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

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

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

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

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

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

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

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

相關文章

使用OpenCV和Python進行圖像掩膜與直方圖分析

文章目錄 引言1. 準備工作2. 加載并顯示原始圖像3. 創建掩膜3. 應用掩膜5. 計算并顯示直方圖6. 結果分析7. 總結 引言 在圖像處理中,掩膜(Mask)是一個非常重要的概念,它允許我們選擇性地處理圖像的特定區域。今天,我將通過一個實際的例子來展…

Genio 1200 Evaluation MT8395平臺安裝ubuntu

官網教程: Getting Started with Genio 1200 Evaluation Kit — Ubuntu on Genio documentation Windows PC工具: Setup Tool Environment (Windows) — IoT Yocto documentation 鏡像下載地址: Install Ubuntu on MediaTek Genio | Ubu…

如何畫好架構圖:架構思維的三大底層邏輯

👉目錄 0 前言 1 宏觀 2 中觀 3 微觀 4 補充 俗話說,一圖勝千言。日常工作中,當我們要表達自己的設計思路的時候,會畫各式各樣的圖。但因為各自知識儲備的差異,思維的差異,不同類型的系統側重的架構設計點也…

Spring MVC擴展消息轉換器-->格式化時間信息

Spring MVC 的消息轉換器的作用:在 HTTP 請求/響應與 Java 對象之間進行轉換 可以自行擴展消息轉換器 一、創建對象映射規則 package com.sky.json;import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.Objec…

Elasticsearch 的自動補全以及RestAPI的使用

Elasticsearch 提供了強大的自動補全 (Autocomplete) 功能,以下為一個基礎的自動補全DSL語句 {"suggest": {"my_suggestion": { // 自定義建議器名稱,可按需修改"text": "ap", // 用戶輸入的前綴(如搜索框…

1.4、SDH網狀拓撲

鏈形網星形網樹形網環形網網孔形網 1.鏈形拓撲 結構: 節點像鏈條一樣首尾依次串聯連接。信號從一個節點傳到下一個節點,直至終點。 特點: 簡單經濟: 結構最簡單,成本最低,適用于沿線覆蓋(如鐵…

如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614

如何在 ArcGIS 中使用 Microsoft Excel 文件 軟件版本:win11; ArcGIS10.8; Office2024 1. 確認 ArcGIS 10.8 對 .xlsx 文件的支持 ArcGIS 10.8 支持 .xlsx 文件(Excel 2007 及以上格式),但需要安裝 Microsoft Access Database …

Python----OpenCV(圖像處理——圖像的多種屬性、RGB與BGR色彩空間、HSB、HSV與HSL、ROI區域)

Python----計算機視覺處理(opencv:像素,RGB顏色,圖像的存儲,opencv安裝,代碼展示) Python----計算機視覺處理(Opencv:圖片顏色識別:RGB顏色空間,…

java設計模式[1]之設計模式概覽

文章目錄 設計模式什么是設計模式為什么要學習設計模式設計模式的設計原則設計模式的分類 設計模式 什么是設計模式 設計模式是前人根據經驗的總結,是軟件開發中的最佳實踐,幫助開發者在面對復雜設計問題時提供有效的解決方案。設計模式不僅僅只是一種…

aflplusplus:開源的模糊測試工具!全參數詳細教程!Kali Linux教程!(四)

使用 afl-lto clang LLVM 編譯器 1. -help 顯示可用選項 afl-lto --help 其他選項同上,這里不再展開敘述。 afl-lto 1. -help 顯示可用選項 afl-lto --help 其他選項同上,這里不再展開敘述。 afl-network-client 1. 幫助文檔 afl-network-cl…

區間合并:牛奶

區間合并:牛奶 牛奶 www.acwing.com/problem/content/description/1345/ 本質就是區間合并問題從第一次擠奶才開始計算兩個最長時間 import java.util.*;public class Main {static final int N 5010;static Pair[] pairs new Pair[N];static class Pair imple…

Hive實現值列表橫向展示(非列轉行)

一、場景說明: 當前有各個流程的節點名稱和節點時間。數倉中的表存在的格式為縱向存儲,分別為節點名稱、接收時間 現數據分析過程中需要將每個流程的節點時間橫向展示,如果沒有該節點則置空 這種區別于行轉列和列轉行的操作。(具體可參考博主**

藍橋杯20151 跳石頭

問題描述 小明正在和朋友們玩跳石頭的小游戲,一共有 n 塊石頭按 1 到 n 順序排成一排,第 i 塊石頭上寫有正整數權值 ci? 。 如果某一時刻小明在第 j 塊石頭,那么他可以選擇跳向第 jcj? 塊石頭 (前提 jcj≤n )或者跳…

深度學習——基于卷積神經網絡的MNIST手寫數字識別詳解

文章目錄 引言1. 環境準備和數據加載1.1 下載MNIST數據集1.2 數據可視化 2. 數據預處理3. 設備配置4. 構建卷積神經網絡模型5. 訓練和測試函數5.1 訓練函數5.2 測試函數 6. 模型訓練和評估6.1 初始化損失函數和優化器6.2 訓練過程 7. 關鍵點解析8. 完整代碼9. 總結 引言 手寫數…

Activiti初識

文章目錄 1 工作流介紹1_工作流概念介紹2 工作流系統3 適用行業4 具體應用5 實現方式 2 Activiti介紹1_BPM2 BPM 軟件3 BPMN 3 使用步驟1_部署 activiti2 流程定義3 流程定義部署4 啟動一個流程實例5 用戶查詢待辦任務(Task)6 用戶辦理任務7 流程結束 4 Activiti應用1_Activiti…

CyclicBarrier入門代碼解析

文章目錄 核心思想:組隊出游,人到齊了才出發 🚌最簡單易懂的代碼示例代碼解析運行效果分析CyclicBarrier vs CountDownLatch 的關鍵區別CyclicBarrier在業務系統里面通常有什么常用的應用場景核心應用模式1. 數據并行處理與ETL(最…

Maven 配置中繞過 HTTP 阻斷機制的完整解決方案

Maven 配置中繞過 HTTP 阻斷機制的完整解決方案 一、背景與問題分析 自 Maven 3.8.1 版本起&#xff0c;出于安全考慮&#xff0c;默認禁止了對 HTTP 倉庫的訪問。這一機制通過 <mirror> 配置中的 maven-default-http-blocker 實現&#xff0c;其作用是攔截所有使用 HT…

【大廠機試題解法筆記】恢復數字序列

題目 對于一個連續正整數組成的序列&#xff0c;可以將其拼接成一個字符串&#xff0c;再將字符串里的部分字符打亂順序。如序列8 9 10 11 12,拼接成的字符串為89101112,打亂一部分字符后得到90811211,原來的正整數10就被拆成了0和1。 現給定一個按如上規則得到的打亂字符的字…

MongoDB 事務有哪些限制和注意事項?

MongoDB 的多文檔 ACID 事務雖然強大&#xff0c;但在使用時確實有一些限制和需要特別注意的事項。 以下是主要的限制和注意事項&#xff1a; 1. 性能開銷 (Performance Overhead) 額外協調: 事務需要額外的協調工作&#xff0c;包括跟蹤事務狀態、管理鎖&#xff08;即使是樂…

CTF實戰技巧:獲取初始權限后如何高效查找Flag

CTF實戰技巧&#xff1a;獲取初始權限后如何高效查找Flag 在CTF比賽中&#xff0c;獲得初始訪問權限只是開始&#xff0c;真正的挑戰在于如何在系統中高效定位Flag。本文將分享我在滲透測試中總結的系統化Flag搜索方法&#xff0c;涵蓋Linux和Windows雙平臺。 引言&#xff1a;…