❶ 自動化測試框架有哪幾種
冒昧的說一句,您這個問題問的可能比較大。
因為從自動化測試角度講的測試框架有很多種;而且並沒有什麼固定的條條框框。全部是根據測試需要及公司產品開發現狀進行搭建的。從通俗的 整體的角度講只要滿足:測試輸入(腳本編寫)-》測試執行-》結果輸出 這種模式的都可稱之為自動化測試框架。
而從不同的角度分析框架又可根據不同篩選條件分為多類:
如:1.腳本語言方面分析,很多種語言提供了多種自動化測試的基礎框架:
1)ruby的Watir開源自動化測試框架、Test::Unit單元測試框架、開源測試框架Ruby on Rails 等等
2)java的junit回歸測試框架、Mockito、TestNG、easyb等等等等
3)Perl的perl Mechanize、Test::Base數據驅動測試等等等等
4)Python的PyUnit、PAMIE等等等等
5)基於Tcl/Tk的swift 自動化測試框架,ATF/VTP自動化測試框架
以上僅列舉自動化測試常用的幾種腳本語言的測試框架,當然不僅僅是這些
2.從測試體系角度分又分為:
1)單元測試框架.
2)系統測試框架
3)集成測試框架
。。。。。
3.基於測試目的的劃分
1)GUI自動化測試框架
2)網路協議自動化測試框架
3)基於web的自動化測試框架
。。。。。
4.從實現深度和角度分類:
1)簡單的錄制回放測試框架(或工具)
2)關鍵字驅動的測試框架
3)關鍵字驅動及結果輸出分析的自動化測試框架
4)智能匹配功能及具備快速腳本生成功能的自動化測試框架
。。。。。。
5.從測試工具角度分:
有些測試工具是許多大型公司結合了很多測試經驗及數據後進行開發的自動化測試軟體或者稱之為測試管理軟體的自動化管理部分及自動化測試部分;也有人稱之為自動化測試框架或自動化測試工具。比如QTP;LoadRunner;Quality Center、selenium等等。都具有一定的自動化測試及管理功能。
所以總的來看,測試框架分為很多種;不知提問者問的是哪個具體方面的。
筆者水平有限,僅能做個基本介紹,希望能有所幫助。也祝願所有從事自動化測試相關工作的同志事業順利。歡迎溝通交流
❷ 自動化框架工具有哪些
1.模塊化測試框架
在五種框架中,模塊化框架是最容易掌握和使用的。在一個組件上方建立一個抽象層使其在餘下的應用中隱藏起來,這是眾所周知的編程技巧。這樣應用同組件中的修改隔離開來,提供了程序設計的模塊化特性。模塊化測試腳本框架使用這一抽象或者封裝的原理來提高自動測試組合的可維護性和可升級性。
2.測試庫框架
測試庫框架(Test Library Architecture)與模塊化測試腳本框架很類似,並且具有同樣的優點。不同的是測試庫框架把待測應用程序分解為過程和函數而不是腳本。這個框架需要創建描述模塊、片斷以及待測應用程序的功能庫文件。
3.關鍵字驅動或表驅動的測試框架
對於一個獨立於應用的自動化框架,關鍵字驅動(KEYWORD Driven)I9LJJ試和表驅動(TABLE DRIVEN)測試是可以互換的術語。這個框架需要開發數據表和關鍵字。這些數據表和關鍵字獨立於執行它們的測試自動化工具,並可以用來「驅動"待測應用程序和數據的測試腳本代碼,關鍵宇驅動測試看上去與手工測試用例很類似。在一個關鍵字驅動測試中,把待測應用程序的功能和每個測試的執行步驟一起寫到一個表中。
這個測試框架可以通過很少的代碼來產生大量的測試用例。同樣的代碼在用數據表來產生各個測試用例的同時被復用。
4.數據驅動測試框架
數據驅動(DATA Driven),LJ試是一個框架。在這里測試的輸入和輸出數據是從數據文件中讀取(數據池,ODBC源,CSV文件,EXCEL文件,ado對象等)並且通過捕獲工具生成或者手工生成的代碼腳本被載入到變數中。在這個框架中,變數不僅被用來存放輸入值還被用來存放輸出的驗證值。整個程序中,測試腳本來讀取數值文件,記載測試狀態和信息。這類似於表驅動測試,在表驅動測 試中,它的測試用例是包含在數據文件而不是在腳本中,對於數據而言,腳本僅僅是一個「驅動器」,或者是一個傳送機構。然而,數據驅動測試不同於表驅動測試,盡管導航數據並不包含在表結構中。
5.混合測試自動化(hybrid Test Automation)框架
最普遍的執行框架是上面介紹的所有技術的一個結合,取其長處,彌補其不足。這個混合測試框架是由大部分框架隨著時間並經過若干項目演化而來的。
❸ Python自動化測試框架有哪些
自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。Pytest、Robot Framework和UnitTest主要用於功能與單元測試,Lettuce和Behave僅適用於行為驅動測試。
一、Robot Framework
Python測試框架之一,Robot Framework被用在測試驅動(test-driven)類型的開發與驗收中。雖然是由Python開發而來,但是它也可以在基於.Net的IronPython和基於Java的Jython上運行。作為一個Python框架,Robot還能夠兼容諸如Windows、MacOS、以及Linux等平台。
在使用Robot Framework(RF)之前,需要先安裝Python 2.7.14及以上的版本。推薦使用Python 3.6.4,以確保適當的注釋能夠被添加到代碼段中,並能夠跟蹤程序的更改。同時還需要安裝Python包管理器--pip。
二、Pytest
適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。憑借著其開源和易學的特點,該工具經常被QA(質量分析)團隊、開發團隊、個人團隊、以及各種開源項目所使用。鑒於Pytest具有「斷言重寫(assert rewriting)」之類的實用功能,許多大型互聯網應用,如Dropbox和Mozilla,都已經從下面將要提到的unittest(Pyunit)切換到了Pytest之上。
除了基本的Python知識,用戶並不需要更多的技術儲備。另外,用戶只需要有一台帶有命令行界面的測試設備,並且安裝好了Python包管理器、以及可用於開發的IDE工具。
三、UnitTest/PyUnit
UnitTest/PyUnit一種標准化的針對單元測試的Python類自動化測試框架。基類TestCase提供了各種斷言方法、以及所有清理和設置的常式。因此,TestCase子類中的每一種方法都是以「test」作為名詞前綴,以標識它們能夠被作為測試用例所運行。用戶可以使用load方法和TestSuite類來分組、並載入各種測試。
可以通過聯合使用,來構建自定義的測試運行器。正如我們使用Junit去測試Selenium那樣,UnitTest也會用到UnitTest-sml-reporting、並能生成各種XML類型的報告。由於UnitTest默認使用了Python,因此我們並不需要什麼先決條件。除了需要具備Python框架的基本知識,您也可以額外地安裝pip、以及用於開發的IDE工具。
四、Behave
行為驅動開發是一種基於敏捷軟體開發的方法。它能夠鼓勵開發人員、業務參與者和QA人員,三者之間的協作。Python測試框架Behave允許團隊避開各種復雜的情況,去執行BDD測試。從本質上說該框架與SpecFlow和Cucumber相似,常被用於執行自動化測試。用戶可以通過簡單易讀的語言來編寫測試用例,並能夠在其執行期間粘貼到代碼之中。而且,那些被設定的行為規范與步驟,也可以被重用到其他的測試方案中。
任何具備Python基礎知識的人都可以使用Behave。其他先決條件還包括:先安裝Python 2.7.14及以上的版本。通過Python包管理器或pip來與Behave協作。大多數開發人員會選擇Pycharm作為開發環境,當然您也可以選用其他的IDE工具。
五、Lettuce
Lettuce是另一種基於Cucumber和Python的行為驅動類自動化工具。Lettuce主要專注於那些具有行為驅動開發特徵的普通任務。它不但簡單易用,而且能夠使得整個測試過程更流暢、甚至更有趣。安裝帶有IDE的Python 2.7.14、及以上的版本。當然,您也可以使用Pycharm或任何其他IDE工具。同時,您還需要安裝Python包管理器。
❹ 如何搭建python自動化測試框架
1
新建一台Jenkins伺服器,安裝並配置好Jenkins
2
配置一個自動化測試腳本的代碼庫,可以使用Git或者SVN等版本控制工具。然後在Jenkins伺服器上配置一個Job,負責自動的同步最新代碼到Jenkins伺服器上。
3
配置要跑自動化測試的虛擬機VM,推薦干凈環境下安裝需要跑自動化測試的依賴軟體工具或者配置以及自動化測試工具(不提前安裝配置也行,可以在跑自動化之前用另外的腳本自動安裝配置),配置好之後關機並打一個snapshot鏡像快照,並命名為prebuild或其它。
4
新建一個Jenkins Job,用來跑自動化。配置需要連接並使用的自動化測試虛擬機,配置要構建的自動化測試框架xml腳本文件(後面步驟有說明)和target,以及要歸檔的測試報告,郵件發送等等。
5
接下來的重點就是自動化測試框架的xml腳本文件了,首先裡面定義一個target,負責獲取自動化測試對象的安裝包。
6
接著定義一個target(可選),負責從版本庫上獲取自動化測試腳本同步到Jenkins伺服器上(也可以直接使用Jenkins Job本身的插件配置來獲取代碼)。
7
定義一個target,負責連接到虛擬機伺服器,並恢復到虛擬機的原始狀態例如prebuild,然後開機
8
定義一個target,負責拷貝項目產品安裝包和自動化測試源代碼到目標虛擬機上。
9
定義一個target,負責連接到目標測試虛擬機,並打開自動化測試工具,然後運行自動化測試腳本
10
定義一個target,負責處理自動化測試報告文件和日誌文件並把它們從自動化測試虛擬機拷貝到Jenkins伺服器對應的Job工作空間下。
11
最後定義一個主target,按照上面的target流程依次調用。這個主target就是Jenkins伺服器上的自動化測試Job中配置的需要構建的Target。
❺ 如何搭建自己的自動化測試框架
這段時間一直在為公司內部開發
自動化測試框架
,簡稱GTF,因為這個框架現在還屬於開發階段,很多事都是言之過早。我會持續將我在架構過程中的想法寫下來。供自己和大家一起分享。
這些想法,並不屬於我一個人,我工作中的同事們給了我很大的幫助。
今天這一篇主要說明架構方面的考慮。
在現有的提供自動化測試解決方案的產品很多,包括:Robot,TestComplete,WinRunner等等。我只接觸過這些,公司里也進行過很大的嘗試,但是結果往往總是不竟如人意。
這中間,排除那些人員方面的原因,也總結這些自動化工具
,在使用過程中的不方便的地方:
1. 定位控制項不方便。標准控制項還好,非標准控制項就只能靠很多非正常方法去獲取。而且,控制項的識別往往和界面布局相關。
3. 代碼維護不方便。由於在編寫過程中,大量的和界面相關的代碼,導致最後在需求變更的時候,代碼的維護,成為軟體測試人員的負擔。
針對這些情況,我們經過討論,何不自己做一個軟體測試框架。當然了,這是基於我們的豐富的知識積累的決策。大家不需要關心這個決策的情況。不過,可以多關注一些我們在做的過程中的分析結果。
通過分析流行的軟體測試框架,有多種方式:
第一、最典型的就是消息驅動,自動化工具通過腳本錄制和編寫,保存為測試腳本。在回放的過程中,將這些腳本轉換成為Windows消息,發送給我們應用程序的窗體和各種控制項。
這種方式的好處在於,自動化工具和應用程序之間能夠做到完全的隔離。但是,由於使用了Windows消息,它也擁有了一個非常致命的缺點。那就是消息隊列的非同步性與程序的順序性之間的矛盾。很多消息發送給了應用程序,但是應用程序的處理可能已經和消息隊列錯位了。有一些關於代碼的時間片等待,就是因為這個問題。
另外,就是由於完全的隔離,對於操縱控制項數據的能力大大降低。畢竟,擁有大量數據的控制項都不是標准控制項。
第二、嵌入式
。TestComplete就是這類工具。它有支持不同語言的版本。大概思路,就是在程序編譯的時候,注入自己的控制項代理。腳本的回放,直接可以通過代理,操縱到應用程序。
可惜的是,這類軟體開發的時候,更多的是考慮平台的兼容性。對於特有平台上的支持不是十分完美。特別是對自定義控制項(比如Delphi中,除了VCL的標准控制項)支持也沒有做到最好。不過,我這里必須承認,TC的內部實現機制可能十分強大,我不能窺探所有。如果有人清晰,可以指點一二。
針對上面的兩種,我們想到的第三種方式:一體式。這種方式中,通過給程序在打包的過程中,添加額外的框架代碼,使得程序自動提供控制項的訪問方式。自動化的模塊也會作為軟體測試程序的一部分運行。
應用程序在執行腳本的時候,自動通過腳本
,控制各控制項界面的顯示和關閉。它應該是第二種方式的變種。但是由於是自己實現的,所以在對各類自定義控制項支持的都非常好。
針對一開始提出的幾個自動化測試的難題,我們提出了,自動封裝窗體上所有控制項的概念(這些概念後面會詳細介紹),對於軟體測試人員,只要關心真正的業務操作流程。而業務流程中涉及到的控制項,已經為他們自動提供好。這樣,腳本也自然只成了業務流程的腳本。其復雜度也就大大降下來了。
如果要推薦2個工具的話,我就推薦澤眾軟體公司的
自動化測試工具AutoRunner和測試管理工具Testcenter
,用這2個軟體合作可以很好的進行自動化測試與對測試用例進行管理。