本文目錄一覽:
- 1、如何搭建python自動化測試框架
- 2、Python自動化測試框架有哪些?
- 3、python自動化測試框架有哪些
- 4、Python測試框架pytest入門基礎
- 5、python測試框架:如何執行pytest測試用例
如何搭建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。
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自動化測試框架有哪些
第一種:Robot Framework
作為最重要的python測試框架之一,Robot Framework主要被用在測試驅動類型的開發與驗收中。雖然由python開發而來,但是它也可以在基於.net的Ironpython和基於Java的Jython上運行。同時,作為一個python框架,Robot還能夠兼容諸如Windows、MacOS、Linux等平台。
在使用Robot Framework之前,需要先安裝python2.7.14及以上版本,在這裡推薦大家使用python3.6.4,以確保適當的註解能夠被添加到代碼段中,並能夠跟蹤程序的更改,同時,您還需要安裝python包管理器–pip。
第二種:Pytest
適用於多種軟件測試的Pytest,是另一個python類型的自動化測試框架。憑藉著開源和易學的特點,該工具經常被QA團體、開發團體、個人團體以及各種開源項目所使用。鑒於Pytest具有斷言重寫之類的實用功能,許多大型互聯網應用,如Dropbox、Mozilla,都已經從下面將要提到的unittest切換到了Pytest之上。
除了基本的python知識,用戶並不需要更多的技術儲備。另外,用戶只需要有一台帶有命令行界面的測試設備,並且安裝好了python包管理器以及可用於開發的IDE工具。
第三種:UnitTest/PyUnit
受到Junit啟發的UnitTest/PyUnit,也是一種標準化的針對單元測試的python類自動化測試框架。它的基類TestCase提供了各種斷言方法、以及所有清理和設置的例程。因此,TestCase子類中的每一種方法都是以test作為名詞點綴,以標識它們能夠被作為測試用例所運行。用戶可以使用load方法和TestSuite類來分組、並加載各種測試。當然,也可以通過聯合使用,來構建自定義的測試運行器。正如我們使用Junit去測試Selenium那樣,UnitTest也會用到unittest-sml-reporting,並能生成各種XML類型的報告。
第四種:Behave
行為驅動開發是一種基於敏捷軟件開發的方法。它能夠鼓勵開發人員、業務參與者和QA人員,三者之間的協作。python測試框架Behave允許團隊避開各種複雜的情況,去執行BDD測試。從本質上說該框架與SpecFlow和Cucumber相似,常被用於執行自動化測試。用戶可以通過簡單易讀的語言來編寫測試用例,並能夠在其執行期間粘貼到代碼之中。而且,那些被設定的行為規範與步驟,也可以被重用到其他的測試方案中。
第五種:Lettuce
Lettuce是另一種基於Cucumber和python的行為驅動類自動化工具。Lettuce主要專註於那些具有行為驅動開發特性的普通任務。它不但簡單易用,而且能夠使得整個測試過程更流暢、甚至更有趣。
您需要安裝帶有IDE的python2.7.14及以上版本。當然,您也可以使用pycharm或任何其他IDE工具。同時,您還需要安裝python包管理器。
Python測試框架pytest入門基礎
通過官方網站介紹我們可以了解到,pytest是一個非常成熟的全功能的python測試框架,主要有
以下幾個特點:
1.直接使用pip命令安裝
2.驗證安裝結果
3.在pytest測試框架中,要遵循以下約束:
pytest進行測試比較簡單,我們來看一個實例:
這裡我們定義了了兩個測試函數,直接打印出結果,下面執行測試:
輸出結果中顯示執行了多少條案例、對應的測試模塊、通過條數以及執行耗時。
pytest斷言主要使用Python原生斷言方法,主要有以下幾種:
可以看到運行結果中明確指出了錯誤原因是”AssertionError”,因為PHP不在str1中。
1.運行指定案例
2.運行當前文件夾包括子文件夾所有用例
3.運行指定文件夾(code目錄下所有用例)
4.運行模塊中指定用例(運行模塊中test_add用例)
5.執行失敗的最大次數
使用表達式”–maxfail=num”來實現( 注意:表達式中間不能存在空格 ),表示用例失敗總數等於num 時停止運行。
6.錯誤信息在一行展示
在實際項目中如果有很多用例執行失敗,查看報錯信息將會很麻煩。使用”–tb=line”命令,可以很好解決這個問題。
本地寫一個查詢用戶信息的接口,通過pytest來調用,並進行接口斷言。
python測試框架:如何執行pytest測試用例
pytest 執行目錄下所有用例
pytest 腳本名稱.py 執行某一個 py 文件下用例
pytest -m xx 執行@pytest.mark.xx 裝飾器修飾的所有測試
pytest -q 腳本名稱.py 簡單打印,只打印測試用例的執行結果
pytest -s 腳本名稱.py 詳細打印
pytest 腳本名稱.py -x 遇到錯誤時停止測試
pytest 腳本名稱.py –maxfail=X ,當用例錯誤個數達到X數量時,停止測試
pytest -s -k xx 腳本名稱.py 匹配xx用例名稱
pytest -s -k “not xx” 腳本名稱.py 匹配不包含XX的用例名稱
pytest -s -k “xxx or xx” 腳本名稱.py 同時匹配包含XX XXX的用例名稱
或者
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129095.html