測試基礎筆記第十六天

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 一、UI自動化介紹
    • 1.認識UI自動化測試
    • 2.實施UI自動化測試前置條件
    • 3.UI自動化測試執行時機
    • 4.UI自動化測試核心作用和劣勢
  • 二、認識Web自動化測試工具-Selenium02
    • 1.Selenium 特點
    • 2.Selenium 核心組件
    • 3.Web自動化測試環境搭建步驟
  • 1.導包
  • 三、入門案例
    • 1.自動登錄
  • 四、CSS選擇器定位
    • 1.認識CSS定位
    • 2.css選擇器
    • 3.CSS定位-層級選擇器
    • 4.表單自動化
    • 5.元素屬性定位


一、UI自動化介紹

1.認識UI自動化測試

  • UI:User Interface,簡稱UI,用戶界面是系統和用戶之間進行交互和信息交換的媒介
  • UI自動化測試:使用程序、腳本對系統界面體現的功能和數據信息展示等進行的測試技術
  • 為什么要自動化測試:
  1. 大量的版本需要回歸測試
  2. 手工回歸測試效率比較低
  3. 測試工程師價值得不到體現

2.實施UI自動化測試前置條件

  • 項目需要實施UI自動化測試需要滿足以下前置條件
    1.項目上線發布頻率高,回歸測試任務重
    2.項目需要實現自動化的功能模塊,需求變更不頻繁

一般只實現核心功能模塊

3.項目周期要長

公司自研或者公司核心產品

3.UI自動化測試執行時機

  • 一般情況下在手工測試完成之后
  • 版本或項目功能趨于穩定
  • 在這里插入圖片描述

4.UI自動化測試核心作用和劣勢

  • 項目實現UI自動化測試后:
    1.節省人力成本:回歸測試工作由腳本代替人去執行
    2.提高回歸測試效率:腳本執行測試速度更快
    3.提高測試質量:一旦自動化腳本庫完善后測試執行過程更標準和準確
  • UI自動化測試劣勢
    1.對測試人員要求提高
    2.前期投入成本大
    3.對項目要求高

二、認識Web自動化測試工具-Selenium02

1.Selenium 特點

在這里插入圖片描述
在這里插入圖片描述

2.Selenium 核心組件

  • Selenium-IDE
    瀏覽器插件,錄制腳本工具。支持腳本回放和導出。
  • Selenium-Grid
    分布式執行自動化測試用例工具,用于大批量測試用例
    的執行
  • Selenium-Webdriver
    腳本編寫核心工具,提供模擬手工操作的常用方法

3.Web自動化測試環境搭建步驟

在這里插入圖片描述

  • 安裝包語法:pip install selenium
  • 查看包語法:pip show selenium
  • 卸載包語法:pip uninstall selenium
  • 示例:通過程序啟動瀏覽通過程序啟動瀏覽器,并打開商城首頁,暫停3秒,關閉瀏覽器,并打開百度首頁,暫停3秒,關閉瀏覽器

1.導包

import time
from selenium import webdriver
#2.創建瀏覽器驅動對象
#Chrome瀏覽器:
driver = webdriver.Chrome()
#3.打開Web頁面
driver.get(“https://hmshop-test.itheima.net/index.php”)
#4.暫停
time.sleep(3)
#5.關閉驅動對象

三、入門案例

1.自動登錄

  • 關鍵步驟:
  1. 打開瀏覽器
  2. 訪問頁面
  3. 頁面操作
  4. 關閉瀏覽器
    在這里插入圖片描述
  • 查找元素:element = driver.find_element(定位方法, 值)
  • 元素操作:
    輸入:element.send_keys(value)
    點擊: element.click()
  • 步驟:
    步驟:
    1、導包
    2、打開瀏覽器
    3、訪問頁面
    4、頁面操作
    ① 用戶名查找及操作
    ② 密碼查找及操作
    ③ 驗證碼查找及操作
    ④ 登錄按鈕查找及操作
    5、關閉瀏覽器

#1、導包
import time
from selenium import webdriver
#快捷導包 ctrl + alt + 空格
from selenium.webdriver.common.by import By
#2、打開瀏覽器
driver = webdriver.Chrome()
#窗口最大化
driver.maximize_window()
#3、訪問頁面
driver.get(“https://hmshop-test.itheima.net/Home/user/login.html”)
#4、頁面操作
#用戶名查找及操作
element = driver.find_element(By.ID, “username”)
element.send_keys(“13488888888”)
#密碼查找及操作
element = driver.find_element(By.ID, “password”)
element.send_keys(“123456”)
#驗證碼查找及操作
driver.find_element(By.ID, “verify_code”).send_keys(“8888”)
#登錄按鈕查找及操作
driver.find_element(By.NAME, “sbtbutton”).click()
#5、關閉瀏覽器
time.sleep(3)
driver.quit()

四、CSS選擇器定位

1.認識CSS定位

  • css概念:(Cascading Style Sheets)是一種語言,用來描述HTML
    元素的顯示樣式。
  • 選擇器:一種表達式,可以找到HTML中的標簽元素。
  • css定位概念:selenium利用選擇器定位元素的定位方式。
  • 方法:driver.find_elements(By.CSS_SELECTOR, 選擇器表達式)

2.css選擇器

  • ID選擇器:
    | 說明:利用元素ID屬性來選擇
    l 格式:#id屬性值
  • 類選擇器
    l 說明:利用類名來選擇
    l 格式:.類名
  • 屬性選擇器
    l 說明:利用標簽的屬性來選擇
    l 格式:HTML標簽[屬性=值]
    l 局部屬性:HTML標簽[屬性名*=‘局部屬性值’]

3.CSS定位-層級選擇器

  • 父子關系:后代關系包含了父子關系,一般只需要記憶后代關系即可
    概念:據元素的父子關系來選擇元素。
    表達式寫法:element1>element2。
  • 語法:在這里插入圖片描述
  • 后代關系:
    概念:根據元素的上級元素來選擇元素(只要是目標元素上層元素即可)
    表達式寫法:element1 element2。
  • 語法:在這里插入圖片描述

4.表單自動化

  • 能夠通過CSS選擇器定位到頁面元素
  • 能通過id,class進行元素定位,并實現輸入框自動輸入及自動清除
  • 案例:在這里插入圖片描述
  • 代碼:

#導包
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
#打開瀏覽器
driver = webdriver.Chrome()
driver.maximize_window()
#打開頁面
driver.get(“https://hmshop-test.itheima.net/Home/user/reg.html”)
#頁面操作
#手機號碼:#username
driver.find_element(By.CSS_SELECTOR, “#username”).send_keys(“13612330001”)
#圖像驗證碼:.inp.imgcode.J_imgcode
driver.find_element(By.CSS_SELECTOR, “[name=‘verify_code’]”).send_keys(“8888”)
#設置密碼:#password
driver.find_element(By.CSS_SELECTOR, “#password”).send_keys(“123456”)
#確認密碼:#password2
driver.find_element(By.CSS_SELECTOR, “#password2”).send_keys(“123456”)
#推薦人手機:.inp.fmobile.J_cellphone
driver.find_element(By.CSS_SELECTOR, “[name=‘invite’]”).send_keys(“13488888888”)
#我已閱讀并同意《用戶服務協議》:
#同意協議并注冊:.regbtn.J_btn_agree
driver.find_element(By.CSS_SELECTOR, “.regbtn.J_btn_agree”).click()
time.sleep(3)
#退出瀏覽器
driver.quit()

  • 在這里插入圖片描述

5.元素屬性定位

  • id定位: driver.find_element(By.ID, “id屬性值”)
  • class定位: driver.find_element(By.CLASS_NAME, “class屬性值”)
  • name定位: driver.find_element(By.NAME, “name屬性值”)
  • 案例:

#導入工具包
import time
from selenium.webdriver.common.by import By
from tools.chromeDriver import get_driver, quit_driver
import random
#獲取驅動、并實現頁面元素定位與操作
driver = get_driver(“https://hmshop-test.itheima.net/Home/user/reg.html”)
##username
#driver.find_element(By.CSS_SELECTOR, “#username”).send_keys(“13633331001”)
#引入隨機數解決手機號唯一性問題
driver.find_element(By.ID, “username”).send_keys(f"136{random.randint(20000000,
88887777)}“)
#.inp.imgcode.J_imgcode
driver.find_element(By.CLASS_NAME, “imgcode”).send_keys(“8888”)
##password
driver.find_element(By.ID, “password”).send_keys(“123456”)
##password2
driver.find_element(By.ID, “password2”).send_keys(“123456”)
#[name=‘invite’]
driver.find_element(By.NAME, “invite”).send_keys(”")
#.regbtn.J_btn_agree
time.sleep(2)
driver.find_element(By.CLASS_NAME, “J_btn_agree”).click()
#退出瀏覽器
quit_driver(driver)
在這里插入圖片描述

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

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

相關文章

PaddleX的安裝

參考:安裝PaddlePaddle - PaddleX 文檔 1、安裝PaddlePaddle 查看 docker 版本 docker --version 若您通過 Docker 安裝,請參考下述命令,使用飛槳框架官方 Docker 鏡像,創建一個名為 paddlex 的容器,并將當前工作目…

長效住宅IP是什么?如何獲取長效住宅IP?

在當今的互聯網世界里,IP地址作為連接用戶與網站之間的橋梁,其重要性不言而喻。對于跨境電商、社交媒體運營以及數據采集等領域的專業人士而言,普通的IP地址已無法滿足日益復雜的需求。他們更需要一種穩定、安全且持久的長效住宅IP來完成各類…

02 業務流程架構

業務流程架構提供了自上而下的組織鳥瞰圖,是業務流程的全景圖。根據所采用的方法不同,有時被稱為流程全景圖或高層級流程圖,提供了業務運營中所有業務流程的整體視圖。 這樣有助于理解企業內部各個業務流程之間的相互關系以及它們如何共同工…

jenkins slave節點打包報錯Failed to create a temp file on

jenkins slave節點打包報錯 一、報錯信息 FATAL: Unable to produce a script file Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to slave-83at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)at hudson.remoting.UserRequest$…

什么是 Swagger 以及如何在 Spring Boot 中實現 Swagger:配置與實踐指南

在現代 RESTful API 開發中,Swagger 是一種廣泛使用的工具,用于生成、描述和可視化 API 文檔。它極大地簡化了 API 的開發、測試和維護過程。結合 Spring Boot,Swagger 可以快速集成到項目中,生成交互式 API 文檔,方便…

Xilinx FPGA支持的FLASH型號匯總

以博主這些年的FPGA開發使用經驗來看,FPGA開發的主流還是以Xilinx FPGA為主,貿易戰關稅戰打了這么多年,我們做研發的也不可避免的要涉及一些國產替代的工作;這里把Xilinx FPGA官方支持的各類(國產和非國產)…

第3講:ggplot2完美入門與美化細節打磨——從基礎繪制到專業級潤色

目錄 1. 為什么選擇ggplot2? 2. 快速了解ggplot2繪圖核心邏輯 3. 基礎繪圖示范:柱狀圖、折線圖、散點圖 (1)簡單柱狀圖 (2)折線圖示范 (3)高級散點圖 + 擬合線 4. 精細美化:細節打磨決定專業感 5. 推薦的美化小插件(可選進階) 6. 小練習:快速上手一幅美化…

Vue3 上傳后的文件智能預覽(實戰體會)

目錄 前言1. Demo12. Demo2 前言 🤟 找工作,來萬碼優才:👉 #小程序://萬碼優才/r6rqmzDaXpYkJZF 爬蟲神器,無代碼爬取,就來:bright.cn 此處的基本知識涉及較少,主要以Demo的形式供大…

transformer-實現單層Decoder 層

Decoder Layer 論文地址 https://arxiv.org/pdf/1706.03762 解碼器層結構 Transformer解碼器層由三種核心組件構成: Masked多頭自注意力:關注解碼器序列當前位置之前的上下文(因果掩碼) Encoder-Decoder多頭注意力:關…

設計模式每日硬核訓練 Day 16:責任鏈模式(Chain of Responsibility Pattern)完整講解與實戰應用

🔄 回顧 Day 15:享元模式小結 在 Day 15 中,我們學習了享元模式(Flyweight Pattern): 通過共享對象,分離內部狀態與外部狀態,大量減少內存開銷。適用于字符渲染、游戲場景、圖標緩…

大數據開發環境的安裝,配置(Hadoop)

1. 三臺linux服務器的安裝 1. 安裝VMware VMware虛擬機軟件是一個“虛擬PC”軟件,它使你可以在一臺機器上同時運行二個或更多Windows、DOS、LINUX系統。與“多啟動”系統相比,VMWare采用了完全不同的概念。 我們可以通過VMware來安裝我們的linux虛擬機…

多模態大語言模型arxiv論文略讀(四十九)

When Do We Not Need Larger Vision Models? ?? 論文標題:When Do We Not Need Larger Vision Models? ?? 論文作者:Baifeng Shi, Ziyang Wu, Maolin Mao, Xin Wang, Trevor Darrell ?? 研究機構: UC Berkeley、Microsoft Research ?? 問題背…

【深度學習與大模型基礎】第14章-分類任務與經典分類算法

Part 1:什么是分類任務? 1.1 分類就是“貼標簽” 想象你有一堆水果,有蘋果🍎、橘子🍊、香蕉🍌,你的任務是讓機器學會自動判斷一個新水果屬于哪一類——這就是分類(Classification&…

LeetCode 2906 統計最大元素出現至少K次的子數組(滑動窗口)

給出一個示例: 輸入:nums [1,3,2,3,3], k 2 輸出:6 解釋:包含元素 3 至少 2 次的子數組為:[1,3,2,3]、[1,3,2,3,3]、[3,2,3]、[3,2,3,3]、[2,3,3] 和 [3,3] 。該題也是一個比較簡單的滑動窗口的題目,但是…

使用 Spring Boot 進行開發

? 使用 Spring Boot 進行開發 ? 📌 本節將深入介紹如何高效使用 Spring Boot,涵蓋以下核心主題: 1?? 🔧 構建系統 深入了解 Spring Boot 的項目結構和依賴管理 2?? ?? 自動配置 探索 Spring Boot 的自動化配置機制和原…

Qt的WindowFlags窗口怎么選?

Qt.Dialog: 指示窗口是一個對話框,這通常會改變窗口的默認按鈕布局,并可能影響窗口框架的樣式。Qt.Popup: 指示窗口是一個彈出式窗口(例如菜單或提示),它通常是臨時的且沒有任務欄按鈕。Qt.Tool: 標識窗口作為一個工具…

Redis高可用架構全解析:主從復制、哨兵模式與集群實戰指南

Redis高可用架構全解析:主從復制、哨兵模式與集群實戰指南 引言 在分布式系統架構中,Redis作為高性能內存數據庫的標桿,其高可用與擴展性設計始終是開發者關注的焦點。本文將深入剖析Redis的三大核心機制——主從復制、哨兵模式與集群架構&…

音視頻之H.265/HEVC網絡適配層

H.265/HEVC系列文章: 1、音視頻之H.265/HEVC編碼框架及編碼視頻格式 2、音視頻之H.265碼流分析及解析 3、音視頻之H.265/HEVC預測編碼 4、音視頻之H.265/HEVC變換編碼 5、音視頻之H.265/HEVC量化 6、音視頻之H.265/HEVC環路后處理 7、音視頻之H.265/HEVC熵編…

element-plus(vue3)表單el-select下拉框的遠程分頁下拉觸底關鍵字搜索實現

一、基礎內核-自定義指令 1.背景 2.定義 3.使用 4.注意 當編輯時需要回顯,此時由于分頁導致可能匹配不到對應label文本顯示,此時可以這樣解決 二、升級使用-二次封裝組件 三、核心代碼 1.自定義指令 定義 ----------------selectLoadMoreDirective.…

大內存生產環境tomcat-jvm配置實踐

話不多講,奉上代碼,分享經驗,交流提高! 64G物理內存,8核CPU生產環境tomcat-jvm配置如下: JAVA_OPTS-server -XX:MaxMetaspaceSize4G -XX:ReservedCodeCacheSize2G -XX:UseG1GC -Xms48G -Xmx48G -XX:MaxGCPauseMilli…