最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python自動化測試利器selenium詳解

 更新時間:2023年04月27日 11:06:56   作者:ZIYE_190  
Selenium是一種常用的Web自動化測試工具,支持多種編程語言和多種瀏覽器,可以模擬用戶的交互行為,自動化地執(zhí)行測試用例和生成測試報告。Selenium基于瀏覽器驅動實現(xiàn),結合多種定位元素的方法,可以實現(xiàn)各種復雜的Web應用程序的測試

1 自動化測試

自動化測試指軟件測試的自動化,在預設狀態(tài)下運行應用程序或者系統(tǒng),預設條件包括正常和異常,最后評估運行結果。將人為驅動的測試行為轉化為機器執(zhí)行的過程。

自動化測試包括UI自動化,接口自動化,單元測試自動化。按照這個金字塔模型來進行自動化測試規(guī)劃,可以產生最佳的自動化測試產出投入比(ROI),可以用較少的投入獲得很好的收益。

1.1 單元測試

最大的投入應該在單元測試上,單元測試運行的頻率也更加高。

java的單元測試框架是Junit。

1.2 接口測試

接口測試就是API測試,相對于UI自動化API自動化更加容易實現(xiàn),執(zhí)行起來也更穩(wěn)定。

接口自動化的有以下特點:

  • 可在產品前期,接口完成后介入
  • 用例維護量小
  • 適合接口變動較小,界面變動頻繁的項目

常見的接口自動化測試工具有,RobotFramework,JMeter,SoapUI,TestNG+HttpClient,Postman等

1.3 UI測試

雖然測試金字塔告訴我們盡量多做API層的自動化測試,但是UI層的自動化測試更加貼近用戶的需求和軟件系統(tǒng)的實際業(yè)務。并且有時候我們不得不進行UI層的測試。

UI自動化的特點:

  • 用例維護量大
  • 頁面相關性強,必須后期項目頁面開發(fā)完成后介入
  • UI測試適合與界面變動較小的項目

UI層的測試框架比較多,比如Windows客戶端測試的AutoIT,web測試的selenium以及TestPlant ,eggPlant,Robot framework,QTP等。

1.3.1 UI自動化測試的優(yōu)點

降低大型系統(tǒng)的由于變更或者多期開發(fā)引起的大量的回歸測試的人力投入,這可能是自動化測試最主要的任務,特別是在程序修改比較頻繁,效果是非常明顯的,自動化測試前期人力投入較多,但后期進入維護期后,可節(jié)省大量人力,而手工測試后期需要增加大量人力用于回歸測試

  • 減少重復測試的時間,實現(xiàn)快速回歸測試
  • 創(chuàng)建優(yōu)良可靠的測試過程,減少人為錯誤
  • 可以運行更多更繁瑣的測試
  • 可以執(zhí)行一些手工測試困難或不可能進行的測試
  • 更好的利用資源
  • 測試腳本的復用性

1.3.2 UI自動化測試的適用對象

實施自動化測試的前提條件:需求變動不頻繁、項目周期足夠長、自動化測試腳本可重復使用。

適合做自動化的項目:

  • 產品型項目。產品型的項目,新版本是在舊版本的基礎上進行改進,功能變不大的項目,但項目的新老功能都必須重復的進行回歸測試?;貧w測試是自動化測試的強項,它能夠很好的驗證你是否引入了新的缺陷,老的缺陷是否修改過來了。在某種程度上可以把自動化測試工具叫做回歸測試工具。
  • 機械并頻繁的測試。每次需要輸入相同、大量的一些數(shù)據(jù),并且在一個項目中運行的周期比較長。比如兼容性測試。

以下情況的項目不適合做自動化測試:

  • 需求變動頻繁的項目,自動化腳本不能重復使用,維護成本太大,性價比低
  • 項目周期短,自動化腳本編制完成后使用次數(shù)不多,性價比低
  • 交互型較強的項目,需要人工干預的項目,自動化無法實施

1.4 自動化測試流程

  • 分析:總體把握系統(tǒng)邏輯,分析出系統(tǒng)的核心體系架構。
  • 設計:設計測試用例,測試用例要足夠明確和清晰,覆蓋面廣而精
  • 實現(xiàn):實現(xiàn)腳本,有兩個要求一是斷言,二是合理的運用參數(shù)化。
  • 執(zhí)行:執(zhí)行腳本遠遠沒有我們想象中那么簡單。腳本執(zhí)行過程中的異常需要我們仔細的去分析原因。
  • 總結:測試結果的分析,和測試過程的總結是自動化測試的關鍵。
  • 維護:自動化測試腳本的維護是一個難以解決但又必須要解決的問題。
  • 分析:在自動化測試過程中深刻的分析自動化用例的覆蓋風險和腳本維護的成本。

2 selenium

Selenium是web應用中基于UI的自動化測試框架,支持多平臺、多瀏覽器、多語言。

早期的selenium RC已經(jīng)被現(xiàn)在的webDriver所替代,可以簡單的理解為selenium1.0 +webdriver構成,現(xiàn)在的Selenium2.0?,F(xiàn)在我們說起selenium,一般指的是Selenium2.0。它有由Selenium IDE,Webdriver,Selenium Grid組成。

分別做一下介紹:

Selenium IDE

Selenium IDE一個用于Selenium測試的完成集成開發(fā)環(huán)境,可以直接錄制在瀏覽器的用戶操作,并且能回放,編輯和調試測試腳本。調試過程中可以逐步進行或調整執(zhí)行的速度,并且可以在底部瀏覽日志出錯信息。錄制的測試腳本可以以多種語言導出,比如java,C#,Python,Ruby等,方便掌握不同語言的測試人員操作。Webdriver

Selenium RC 在瀏覽器中運行 JavaScript 應用,會存在環(huán)境沙箱問題,而WebDriver可以跳出JavaScript的沙箱,針對不同的瀏覽器創(chuàng)建更健壯的,分布式的,跨平臺的自動化測試腳本?;谔囟ㄕZ言(Java,C#,Python,Ruby,Perl,JavaScript等)綁定來驅動瀏覽器對Web元素進行操作和驗證。

webdriver的工作原理:

  • 啟動瀏覽器后,selenium-webdriver會將目標瀏覽器綁定到特定的端口,啟動后的瀏覽器則作為webdriver的remote server。
  • 客戶端(也就是測試腳本),借助ComandExecutor發(fā)送HTTP請求給sever端(通信協(xié)議:The WebDriver Wire Protocol,在HTTP request的body中,會以WebDriver Wire協(xié)議規(guī)定的JSON格式的字符串來告訴Selenium我們希望瀏覽器接下來做什么事情)。
  • Sever端需要依賴原生的瀏覽器組件,轉化Web Service的命令為瀏覽器native的調用來完成操作。

selenium Grid

selenium Grid是一個服務器,提供對瀏覽器實例訪問的服務器列表,管理各個節(jié)點的注冊和狀態(tài)信息??梢詫崿F(xiàn)在同一時刻不同服務器上執(zhí)行不同的測試腳本。

3 selenium IDE 錄制腳本

打開Edge-插件-選擇selenium IDE:

創(chuàng)建一個新項目,此時左部 Test Case 窗口會有一個Untitled 的測試案例,右鍵點擊重命名為”test”

點擊 IDE 的右上部錄制按鈕(小紅點)開始手動錄制

在地址欄中輸入待測試的網(wǎng)址( 禪道)如http://www.baidu.com,搜索關鍵詞,這時可以看到IDE進行了錄制操作。

在頁面中點擊右鍵,可以增加檢查點。

錄制結束后,點擊錄制按鈕(小紅點),結束本次手動錄制。在selenium IDE 中,選中一個 Test Case,右擊選擇“Export 導出為test.py文件。

將該腳本在python中運行并調試。

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class TestTest():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  def teardown_method(self, method):
    self.driver.quit()
  def test_test(self):
    self.driver.get("https://www.baidu.com/")
    self.driver.set_window_size(809, 864)
    self.driver.find_element(By.ID, "kw").click()
    self.driver.execute_script("window.scrollTo(0,0)")
    self.driver.find_element(By.ID, "kw").send_keys("四月是你的謊言")
    self.driver.find_element(By.ID, "su").click()

至此,我們就完成了一個test case的生成

到此這篇關于Python自動化測試利器selenium詳解的文章就介紹到這了,更多相關Python selenium內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • django將圖片保存到mysql數(shù)據(jù)庫并展示在前端頁面的實現(xiàn)

    django將圖片保存到mysql數(shù)據(jù)庫并展示在前端頁面的實現(xiàn)

    這篇文章主要介紹了django將圖片保存到mysql數(shù)據(jù)庫并展示在前端頁面的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Python循環(huán)控制詳解

    Python循環(huán)控制詳解

    本文介紹了Python編程語言中關于for循環(huán)和if條件控制的一些基本使用,包含了單層循環(huán)的退出機制和多層循環(huán)的退出機制,使得我們在滿足特定條件時,可以直接結束多層循環(huán),需要的朋友可以參考下
    2024-07-07
  • Python?async+request與async+aiohttp實現(xiàn)異步網(wǎng)絡請求探索

    Python?async+request與async+aiohttp實現(xiàn)異步網(wǎng)絡請求探索

    這篇文章主要介紹了Python?async+request與async+aiohttp實現(xiàn)異步網(wǎng)絡請求探索,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2022-10-10
  • 三種Python比較兩個時間序列在圖形上是否相似的方法分享

    三種Python比較兩個時間序列在圖形上是否相似的方法分享

    這篇文章主要為大家詳細介紹了三種Python中比較兩個時間序列在圖形上是否相似的方法,文中的示例代碼簡潔易懂,感興趣的小伙伴可以了解一下
    2023-03-03
  • 使用python對泰坦尼克號幸存者進行數(shù)據(jù)分析與預測

    使用python對泰坦尼克號幸存者進行數(shù)據(jù)分析與預測

    這篇文章主要介紹了使用python對泰坦尼克號幸存者進行數(shù)據(jù)分析與預測,應用機器學習的工具來預測哪些乘客在悲劇中幸存下來
    2023-03-03
  • Pandas中時間序列的處理大全

    Pandas中時間序列的處理大全

    這篇文章主要給大家介紹了關于Pandas中時間序列處理的相關資料,pandas 是基于NumPy 的一種工具,該工具是為解決數(shù)據(jù)分析任務而創(chuàng)建的,需要的朋友可以參考下
    2021-06-06
  • Python實現(xiàn)JavaBeans流程詳解

    Python實現(xiàn)JavaBeans流程詳解

    這篇文章主要介紹了Python實現(xiàn)JavaBeans流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Python使用Selenium+BeautifulSoup爬取淘寶搜索頁

    Python使用Selenium+BeautifulSoup爬取淘寶搜索頁

    這篇文章主要為大家詳細介紹了Python使用Selenium+BeautifulSoup爬取淘寶搜索頁,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python學習入門之區(qū)塊鏈詳解

    Python學習入門之區(qū)塊鏈詳解

    區(qū)塊鏈的基礎概念很簡單:一個分布式數(shù)據(jù)庫,存儲一個不斷加長的 list,list 中包含著許多有序的記錄。下面這篇文章主要給大家介紹了關于Python學習入門之區(qū)塊鏈的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-07-07
  • python字符串大小寫轉換的三種方法

    python字符串大小寫轉換的三種方法

    本文主要介紹了python字符串大小寫轉換的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論

新建县| 绥江县| 开封市| 吴堡县| 浮山县| 义乌市| 湘潭县| 仁布县| 望谟县| 阿克| 任丘市| 桦川县| 资源县| 义马市| 烟台市| 德令哈市| 喀什市| 鄱阳县| 克拉玛依市| 乐至县| 六安市| 教育| 潍坊市| 皮山县| 门源| 临安市| 东台市| 缙云县| 禹城市| 延安市| 甘肃省| 茶陵县| 高州市| 襄城县| 陇西县| 女性| 若羌县| 石阡县| 二连浩特市| 北票市| 文昌市|