嘿~大家好,我是小編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。
確切的說,在 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
樂搏軟體測試
喜馬拉雅/官方帳號
樂搏軟體測試
點擊底部 「 點讚 + 在看 」 這個秋天會有幸運降臨哦!