"Selenium+Python自動化技術與實戰"——自動化測試基礎——1(持續更新)

2022-01-09 樂搏軟體測試

嘿~大家好,我是小編4U:

今天跟大家講講自動化測試基礎知識的講解教學,希望通過我的分享,能給你帶來希望與幫助。

本章特色:針對向軟體測試自動化提升的學員全面講解

無論你是否從事計算機相關行業,無論你是否接觸過軟體測試,你都能通過自動化系統直播課及教材輕鬆的掌握自動化測試的各項技能。

👇掃描我,獲取免費直播課👇

學測試,找樂搏

受眾對象:

1、應屆畢業生,實習生

2、有1-2年測試經驗,功能測試在職提升

3、其他跨行業轉型,零基礎入門

掃碼獲取更多 軟體測試 乾貨+資料包+知識!

自動化測試是把以人為驅動的測試行為轉化為機器執行的一種過程。通常在設計了測試用例並通過評審之後,由測試人員根據測試用例中描述的規程步步執行測試,得到實際結果與期望結果的比較。簡言之,自動化測試就是讓被測試的軟體自己運行起來,執行軟體的功能,或者就是讓其他的工具自己運行起來,去檢查軟體的內部和外部。

自動化測試包含自動化和測試兩個概念:

自動化:由程序(或機器、設備等)代替人工自動完成指定目標的過程。

測試:校驗系統是否滿足規定的需求。

自動化測試:讓程序(或機器、設備等)代替人工自動完成系統校驗的過程。那麼機器怎麼知道人類的要求?關鍵點是程式語言。機器學習一個程式語言,輕鬆和簡單到令人髮指的地步:安裝上去,機器就學會了。好在人類學習程式語言也不是特別難的事情。有了程式語言,就有了人機交流的橋梁,剩下的事情,是幫機器挑選工具。做對應的測試,找到對應的工具,這樣自動化就自動起來了。

總之,自動化測試引入的原因是就把軟體測試人員枯燥乏味的機械性手工測試勞動中解放出來,以自動化測試工具取而代之,使測試人員的精力真正花在提高軟體產品質量本身。儘管自動化測試可以降低人工測試的工作量,但並不能完全取代手工測試,一味追求測試自動化只會給企業帶來運作成本的急劇上升。

 自動化測試優缺點:

➤優點:

(1)提高測試執行效率,節約時間成本

(2)解放人力去做更重要的工作;

(3)可重複利用,建設對人的依賴

(4)提升客戶滿意度;

(5)提升測試團隊的整體水平;

(6)可大幅度減少兼容性測試的工作量

(7)有些測試工作必須依靠自動化實現來完成。

➤缺點:

(1)開發測試腳本需要花費較大的時間成本,拉長周期

(2)產品的快速迭代,自動化腳本也將不斷迭代,時間成本很高

(3)不同的項目之間自動化腳本的復用度很低

(4)對短期型項目產品實現自動化價值不高

(5)自動化無法完全代替手工測試找到bug,實現100%覆蓋

(6)自動化更多的適用於回歸測試

(7)自動化開發過程對軟體測試團隊的技術有更高的要求。

 手工測試與自動化測試:

手工測試:手工測試就是由測試人員一個一個的執行用例,然後觀察測試結果是否符合預期,手工測試一般是基於兩個原因:(1)時間資源不足;(2)技術水平不足。在這些情況下,手工測試能夠發揮重要的作用。利用手工測試,我們可以定義測試,還可以跟蹤測試。

自動化測試:自動化測試分為功能自動化和性能自動化,前者是通過測試工具(或框架)錄製/編寫測試腳本,對軟體的功能進行測試,並驗證測試結果是否正確,從而代替部分的手工測試工作,達到節約人力成本和時間成本的目的。後者是通過性能工具來模擬成千上萬的虛擬用戶向系統發送請求,從而驗證系統處理能力。

(1)軟體需求變動不頻繁:

測試腳本的穩定性決定了自動化測試的維護成本。如果軟體需求變動過於頻繁,測試人員需要根據變動的需求來更新測試用例以及相關的測試腳本,而腳本的維護本身就是一個代碼開發的過程,需要修改、調試,必要的時候還要修改自動化測試的框架,如果所花費的成本不低於利用其節省的測試成本,那麼自動化測試便是失敗的。項目中的某些模塊相對穩定,而某些模塊需求變動性很大。我們便可對相對穩定的模塊進行自動化測試,而變動較大的仍使用手工測試。

(2)項目周期足夠長:

自動化測試需求的確定、自動化測試框架的設計、測試腳本的編寫與調試均需要相當長的時間來完成,這樣的過程本身就是一個測試軟體的開發過程,需要較長的時間來完成。如果項目的周期比較短,沒有足夠的時間去支持這樣一個過程,那麼自動化測試便成為笑談。

(3)自動化測試腳本可重複使用:

如果費盡心思開發了一套近乎完美的自動化測試腳本,但是腳本的重複使用率很低,致使其間所耗費的成本大於所創造的經濟價值,自動化測試便成為了測試人員的練手之作,而並非是真正可產生效益的測試手段了。

自動化測試使用場景:

(1)比較頻繁的回歸測試

(2)任務測試明確,不會頻繁變動

(3)每日構建後的測試驗證

(4)需要在多平臺上運行的相同測試案例、組合遍歷型的測試,大量的重複任務

(5)軟體維護周期長

(6)項目進度壓力不太大

(7)被測軟體系統開發較為規範,能夠保證系統的可測試性;

(8)具備大量的自動化測試平臺;

(9)測試人員具備較強的編程能力

(10)軟體系統界面穩定,變動少。

目前市面上自動化工具非常多,我們可以根據測試需求的不同級別來酌情選擇,大體上,有三種級別:代碼級別、接口/協議級別、界面級別,以下是根據不同級別對應常用工具及特性。

代碼級別:

XUnit:為每個測試方法產生一個對象實例,可擴展的斷言、測試方法和測試類

MOck:僅能適用於純粹的面向對象的語言,使用多態來實現細節的模擬

接口/協議級別:

LoadRunner:支持全協議,重點是支持HTP等

SoapUI:支持 WebService協議SOA

Webload:支持HTP協議

RPT:重點支持HTP和TCP/UDP協議

SilkPerformance:重點支持HTTP和TCP/UDP協議

HttpcLienT, SoUP:HTP協議和HML元素處理

JMeter:支持HTP,JMS協議

界面(UI)級別:

QTP/UFT:支持 Windows,web,java,NET應用程式

RFT:支持 Windows,web,java,NT應用程式等

TestComplete:支持各類應用程式及第三方組件,對象識別能力強

Selenium/ Watir:支持Web應用,支持多平臺、多語言、多瀏覽器

Sikuli Ide:基於圖像識別自動化測試工具,支持所有應用

Apium/ Monkey Runner: Android,os移動應用

Selenium特點:

開源,免費;

多瀏覽器支持: FireFox、 Chrome、IE、 Opera、Edge;

多平臺支持: Linux、 Windows、MAC;

多語言支持:Java、 Python、Ruby、C#、 JavaScript、C++;

對Web頁面有良好的支持

簡單(API簡單)、靈活(用開發語言驅動)

支持分布式測試用例執行。

Selenium版本:

Selenium經歷了兩個版本, Selenium1.0和 Selenium2.0, Selenium不

是由單獨一個工具構成的,而是由一些插件、類庫組成,每個部分都有其特點和應用場景。

Selenium的構成:

Selenium IDe:嵌入到 Firefox瀏覽器中的一個插件,實現簡單的瀏覽器操作的錄製與回放功能。官方給出了它自身作用的定位:快速地創建bug重現腳本,在測試人員測試過程中,發現bug之後可以通過IDE將重現的步驟錄製下來,以幫助開發人員更容易地重現bug。IDE錄製的腳本可以轉換成多種語言,從而幫助我們快速地開發腳本。

Selenium Grid:自動化的測試輔助工具,Grid通過利用現有的計算機基礎設施,能加快Web-App的功能測試用Grid可以很方便地實現在多臺機器上和異構環境中運行測試用例。

Selenium RC遠程控制:Selenium rC( Remote Control遠程控制)是 Selenium家族的核心部分。Selenium RC支持多種不同的語言編寫自動化測試腳本,通過 Selenium RC的伺服器作為代理伺服器去訪問應用,從而達到測試的目的。

Client Libraries:主要用於編寫測試腳本的庫,用來控制 Selenium

Selenium Server:負責控制瀏覽器行為。

Selenium Core是被 Selenium Server嵌入到瀏覽器頁面中的。其實Selenium Core就是一堆 JavaScript函數的集合,即通過這些 JavaScript函數,我們才可以實現用程序對瀏覽器進行操作。

Launcher:用於啟動瀏覽器,把 Selenium Core加載到瀏覽器頁面當中,並把瀏覽器的代理設置為 Selenium Server 的 Http Proxy。

Selenium RC與 WebDriver的區別

確切的說,在 Selenium2.0中,可以將 WebDriver看作 Selenium rc的替代品。因為 Selenium為了保持向下的兼容性,所以在 Selenium2.0中並沒有徹底地拋棄 Selenium RO。如果是初次使用 Selenium開發一個新的自動化測試項目那麼可以直接使用 WebDriver。那 Selenium RC與 WebDriver的區別是什麼呢?Selenium RC是在瀏覽器中運行 JavaScript應用,使用瀏覽器內置的JavaScript翻譯器來翻譯和執行 sienese命令( celanese是 Selenium命令集合)。

WebDriver是通過原生瀏覽器支持或者瀏覽器擴展來直接控制瀏覽器WebDriver針對各個瀏覽器而開發,取代了嵌入到被測Web應用中的JavaScript。與瀏覽器的緊密集成,因此支持創建更高級的測試,避免了

JavaScript安全模型導致的限制。除了來自瀏覽器廠商的支持之外, WebDriver還利用作業系統級的調用,模擬用戶輸入。

特別說明:Selenium與 WebDriver原先屬於兩個不同的項目,現在兩個項目已合併,合併的部分原因是 WebDriver解決了 Selenium存在的缺點(例如能夠

繞過 JavaScript沙箱,我們有出色的API),部分原因是 Selenium解決了

WebDriver存在的問題(例如支持廣泛的瀏覽器)。

Python語言簡介:

Python是一種電腦程式設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(she11),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。

有人說我們公司的軟體是用某語言開發的,所以自動化測試也要選某語言其實軟體開發語言和軟體自動化測試語言沒有必然聯繫。也就是說,基於 Python(+ Selenium)編寫的自動化測試腳本既可以測試基於Java開發的Web項目,也可以測試基於PHP開發的Web項目。所以,在選擇 Selenium自動化測試語言時不需要考慮與開發語言的一致性。

為什麼選擇 Python:

既然 Selenium 可以支持多語言,如Java、C#、Ruby、PHP等,那我們為什

麼會選擇 Pyhton呢?主要有以下幾點原因:

➤第一:簡單易學,對編程能力較弱的初學者來說,通過自動化測試技術的實踐,讀者不僅可以掌握自動化測試技術,還能掌握一門語法簡單且功能強大的程式語言。

➤第二:通用性強, Python可以應對很多不同的項目需求,根據不同場景需要選擇相應的工具可以大大提高工作效率,例如:

ok,本期我們的內容就到此結束啦~能看到最後的同學當然是要送一波福利了,我是不會告訴他們我會在文章最底部放了我珍藏已久的壓箱底!

————————————————

CONTACT US / 聯繫我們

VX/官方公眾號

樂搏軟體測試

VX/官方微信

lebo5201

頭條號/官方帳號

樂搏軟體測試

WEIBO/官方微博

樂搏軟體學院

軟體測試大樂er

樂搏軟體測試

喜馬拉雅/官方帳號

樂搏軟體測試

點擊底部 「 點讚 + 在看 」 這個秋天會有幸運降臨哦!

相關焦點

  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • 小白學 Python 爬蟲(27):自動化測試框架 Selenium 從入門到放棄(上)
    爬蟲(3):前置準備(二)Linux基礎入門小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門小白學 Python 爬蟲(5):前置準備(四)資料庫基礎小白學 Python 爬蟲(6):前置準備(五)爬蟲框架的安裝小白學 Python 爬蟲(7):HTTP 基礎小白學 Python 爬蟲(8):網頁基礎
  • 自動化測試基礎篇:Selenium 框架設計(POM)
    Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。本文介紹selenium的框架設計。自動化測試框架1.什麼是自動化測試框架簡單來說,自動化測試框架就是由一些標準,協議,規則組成,提供腳本運行的環境。
  • selenium+unittest自動化測試實戰項目(一)
    前言之前的文章說過, 要寫一篇自動化實戰的文章, 這段時間比較忙再加回家過11一直沒有更新博客,今天整理一下實戰項目的代碼共大家學習。(注:項目是針對我們公司內部系統的測試,只能內部網絡訪問,外部網絡無法訪問)問:1.外部網絡無法訪問,代碼也無法運行,那還看這個項目有啥用2.如何學習本項目3.如何學習自動化測試(python+selenium)答:1.其實代碼並不重要,希望大家完完整整的看完這個項目後,自己會有思路有想法,學會這個項目的框架結構和設計思想,把這些能應用到自己的項目中
  • Selenium自動化測試-6.滑鼠鍵盤操作
    59次推文在上一篇:Selenium自動化測試-腳本錄製神器Katalon Recorder,我們認識了一個實用的腳本錄製神器。到此為止,已經學完了8種定位方式以及利用Firefox插件協助定位,學會定位,Selenium自動化就成功了一半。But,我們好像只是知道定位,定位後的操作並不多,今天就來系統的了解下滑鼠鍵盤操作。
  • selenium+python自動化96-執行jquery報:$ is not defined
    前言背景介紹:做wap頁面自動化的時候,把url地址直接輸入到瀏覽器(chrome瀏覽器有手機wap模式)上測試,有個按鈕死活點不到,用wap模式的觸摸事件也無法解決
  • python 自動化,Helium 憑什麼取代 Selenium?
    作者:星安果來源: AirPython1. python自動化:Helium 是什麼?Helium 是一款 Web 端自動化開源框架,全稱是:Selenium-Python-Helium,從名字上就可以看出,Helium 似乎和 Selenium 息息相關確實,Helium 針對 Selenium 進行了封裝,它屏蔽了 Selenium 很多實現細節,提供了更加簡潔直觀的 API,更方便我們進行 Web 端的自動化官方表示,要實現同樣的功能,
  • Appium+Python做移動端自動化測試
    第一章 導言  1.1 編制目的  該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。
  • 我從功能測試進階到自動化測試工程師的經驗總結~|Atstudy
    這也是我為什麼花3個月時間整理《測試開發之Python Django 接口自動化測試框架實戰》的原因。第一章講解python、python IDE 以及本地資料庫環境安裝。第二章講解django的基礎,讓大家對django有一個快速的認識。第三章講解http協議以及cookie和session,然後根據前面所學知識開發一個博客系統以及教會大家如何編寫接口測試文檔。
  • Selenium2+python自動化54-unittest生成測試報告(HTMLTestRunner)
    3.下載後手動拖到python安裝文件的Lib目錄下 二、demo解析1.下載Download下的第二個文件test_HTMLTestRunner.py,這個就是官方給的一個測試demo了,從這個文件可以找到該模塊的用法。
  • 【免費】自動化測試視頻教程Selenium Java
    章 : 自動化測試基礎課時1:1.1 軟體測試分類課時2:1.2 分層的自動化測試課時3:1.3 什麼樣的項目適合自動化測試課時4:1.4 自動化測試及工具簡述課時5:1.5 Selenium 工具介紹課時6:1.6 前端技術介紹課時7:1.7 前端工具介紹課時8:1.8 開發語言的選擇
  • Selenium2+python自動化55-unittest之裝飾器(@classmethod)
    一、裝飾器1.用setUp與setUpClass區別setup():每個測試case運行前運行teardown():每個測試case運行完後執行setUpClass():必須使用@classmethod 裝飾器,所有case運行前只運行一次tearDownClass():必須使用@classmethod裝飾器,所有case
  • Python測試開發庫及項目(超全面!)
    https://github.com/hitchtest/hitchhttps://github.com/python-needle/needleseleniumbase - 端到端自動化測試框架。它通常用於Web性能和擴展性測試,但您也可以使用Multi-Mechanize來測試任何遠程API。--基於python多進程和多線程實現,學習自行開發性能測試的佳品。Python 2.6 or 2.7 較長時間沒有更新,一般只建議改造使用。
  • 自動化測試面試題(附答案)
    4、【規範制定】 熟悉CI系統,完善準入/準出標準,持續提升測試效率;5、【效率提升】根據業務特點,引入新的測試方法和工具,探索新技術。改進測試工具或測試方法,提高效率,培訓測試人員並支持技術難題解決 1)3年以上測試工作經驗,1年以上自動化測試經驗或開發經驗;2)至少熟悉一種腳本語言,如Shell、Python、java等;3)至少熟悉一種測試框架,unittest、pytest、testng等;可獨立完成複雜邏輯的接口自動化測試;4)熟悉appium、selenium可獨立完成
  • Python自動化測試實戰
    很開心自己寫的書出版了,在這期間特別感謝電子工業出版社張瑞喜老師一年多來對我的鼓勵和寫作的支持,也感謝京東測試架構師陳磊老師和
  • 實戰 | UI 調度自動化測試平臺(基於 Python)
    測試開發之 UI 自動化測試平臺最佳實踐,進階學習文末加群!
  • 自動化測試學習路線
    拋開疑問,只做學術探討這次我們拋開所有的疑惑,比如自動化測試到底有什麼用?自動化真的能提升效率麼?學了自動化能漲多少工資等等,以上的話題,我這次將不再論述,這幾個問題也是平時討論的比較多的問題。針對以上的問題,我做一個總結,能漲工資,能多賺錢的技術,就值得我們去學!既然自動化現如今發展的這麼火,自然有它存在的價值。小白在想什麼?
  • 【收藏乾貨】基於Appium、Python的自動化測試環境部署和實踐
    1 導言1.1 編制目的該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。1.2 預期讀者自動化測試人員、測試代表、開發人員等。
  • 技術中臺之DevOps自動化測試實踐
    Devops作為技術中臺的重要組成部分之一,其下「自動化測試」功能也是不可或缺的一環,如何結合DevOps自身提供的自動化測試功能,做好DevOps的接口自動化呢?首先要先了解DevOps為自動化測試提供了哪些功能,如何使用該功能進行自動化測試,以及如何設計測試框架等等,本文將會為大家一一解答。
  • Android APP自動化測試框架實戰
    自動化腳本的意義就是為了測試應用程式的,如果自動化腳本自身就有很多的問題,那麼自動化測試的效率和意義就會大打折扣!所以為了保證自動化測試的效率和質量,使用一個成熟穩定的自動化框架就尤為必要了。  作為一個自動化測試工程師,編寫腳本時,在引入自動化測試框架後,只需要關心和測試用例相關的腳本部分就可以了。