導航:首頁 > 編程語言 > python測試框架圖

python測試框架圖

發布時間:2023-01-20 13:15:53

python學習的框架是哪些

從GitHub中整理出的15個最受歡迎的Python開源框架。這些框架包括事件I/O,OLAP,Web開發,高性能網路通信,測試,爬蟲等。
Django: Python Web應用開發框架
Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理後台:只需要使用起ORM,做簡單的對象定義,它就能自動生成資料庫結構、以及全功能的管理後台。
Diesel:基於Greenlet的事件I/O框架
Diesel提供一個整潔的API來編寫網路客戶端和伺服器。支持TCP和UDP。
Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2
模板引擎。Flask也被稱為「microframework」,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數
據庫、窗體驗證工具。
Cubes:輕量級Python OLAP框架
Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregated data)等工具。
Kartograph.py:創造矢量地圖的輕量級Python框架
Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處於beta階段,你可以在virtualenv環境下來測試。
Pulsar:Python的事件驅動並發框架
Pulsar是一個事件驅動的並發框架,有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的非同步伺服器。
Web2py:全棧式Web框架
Web2py是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的資料庫驅動的應用,兼容Google App Engine。
Falcon:構建雲API和網路應用後端的高性能Python框架
Falcon是一個構建雲API的高性能Python框架,它鼓勵使用REST架構風格,盡可能以最少的力氣做最多的事情。
Dpark:Python版的Spark
DPark是Spark的Python克隆,是一個Python實現的分布式計算框架,可以非常方便地實現大規模數據處理和迭代計算。DPark由豆瓣實現,目前豆瓣內部的絕大多數數據分析都使用DPark完成,正日趨完善。
Buildbot:基於Python的持續集成測試框架
Buildbot是一個開源框架,可以自動化軟體構建、測試和發布等過程。每當代碼有改變,伺服器要求不同平台上的客戶端立即進行代碼構建和測試,收集並報告不同平台的構建和測試結果。
Zerorpc:基於ZeroMQ的高性能分布式RPC框架
Zerorpc是一個基於ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和 Zerorpc 一起使用的 Service API 被稱為 zeroservice。Zerorpc 可以通過編程命令行方式調用。
Bottle: 微型Python Web框架
Bottle是一個簡單高效的遵循WSGI的微型python Web框架。說微型,是因為它只有一個文件,除Python標准庫外,它不依賴於任何第三方模塊。
Tornado:非同步非阻塞IO的Python Web框架
Tornado的全稱是Torado Web Server,從名字上看就可知道它可以用作Web伺服器,但同時它也是一個Python Web的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了之後便開源了出來。
webpy: 輕量級的Python Web框架
webpy的設計理念力求精簡(Keep it simple and powerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有資料庫的訪問。
Scrapy:Python的爬蟲框架
Scrapy是一個使用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。

⑶ 如何搭建python+selenium自動化測試框架

selenium是一個web的自動化測試工具,不少學習功能自動化的同學開始首選selenium,相因為它相比QTP有諸多有點:

*免費,也不用再為破解QTP而大傷腦筋

*小巧,對於不同的語言它只是一個包而已,而QTP需要下載安裝1個多G的程序。

*這也是最重要的一點,不管你以前更熟悉C、java、ruby、python、或都是C#,你都可以通過selenium完成自動化測試,而QTP只支持VBS

*支持多平台:windows、linux、MAC,支持多瀏覽器:ie、ff、safari、opera、chrome

*支持分布式測試用例的執行,可以把測試用例分布到不同的測試機器的執行,相當於分發機的功能。

關於selenium的基礎知識與java平台的結合,我之前寫過一個《菜鳥學習自動化測試》系列,最近學python,所以想嘗試一下selenium的在python平台如何搭建;還好這方法的文章很容易,在此將搭建步驟整理分享。

搭建平台windows

准備工具如下:

-------------------------------------------------------------

下載python

-------------------------------------------------------------

如果你是新學python,哪果你沒有要用的包是必須依賴於pyhton2.x 的,那麼請毫不猶豫的選擇python3.5吧!

window安裝步驟:

1、下載python安裝。

又報了個錯:

Chromeversionmustbe>=27.0.1453.0 (Driverinfo:chromedriver=2.0,platform=WindowsNT5.1SP3x86)

說我chrome的版本沒有大於27.0.1453.0,這個好辦,更新到最新版本即可。

安裝IEdriver

在新版本的webdriver中,只有安裝了iedriver使用ie進行測試工作。

iedriver的下載地址在這里,記得根據自己機器的操作系統版本來下載相應的driver。

暫時還沒嘗試,應該和chrome的安裝方式類似。

記得配置IE的保護模式

如果要使用webdriver啟動IE的話,那麼就需要配置IE的保護模式了。

把IE里的保護模式都選上或都勾掉就可以了。

⑷ 怎麼搭建 python 的介面自動化測試框架

1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象

⑸ Python - pytest

目錄

pytest是Python的單元測試框架,同自帶的unittest框架類似,但pytest框架使用起來更簡潔,效率更高。

pytest特點

安裝

測試

在測試之前要做的准備

我的演示腳本處於這樣一個的目錄中:

踩坑:你創建的pytest腳本名稱中不允許含有 . ,比如 1.簡單上手.py ,這樣會報錯。當然,可以這么寫 1-簡單上手.py

demo1.py :

上例中,當我們在執行(就像Python解釋器執行普通的Python腳本一樣)測試用例的時候, pytest.main(["-s", "demo1.py"]) 中的傳參需要是一個元組或者列表(我的pytest是5.2.2版本),之前的版本可能需要這么調用 pytest.main("-s demo1.py") ,傳的參數是str的形式,至於你使用哪種,取決於報不報錯:

遇到上述報錯,就是參數需要一個列表或者元組的形式,而我們使用的是str形式。

上述代碼正確的執行結果是這樣的:

大致的信息就是告訴我們:

pytest.main(["-s", "demo1.py"])參數說明

除了上述的函數這種寫法,也可以有用例類的寫法:

用法跟unittest差不多,類名要以 Test 開頭,並且其中的用例方法也要以 test 開頭,然後執行也一樣。

執行結果:

那麼,你這個時候可能會問,我記得unittest中有setup和teardown的方法,難道pytest中沒有嘛?你怎麼提都不提?穩住,答案是有的。

接下來,我們來研究一下pytest中的setup和teardown的用法。

我們知道,在unittest中,setup和teardown可以在每個用例前後執行,也可以在所有的用例集執行前後執行。那麼在pytest中,有以下幾種情況:

來一一看看各自的用法。

模塊級別setup_mole/teardown_mole

執行結果:

類級別的setup_class/teardown_class

執行結果:

類中方法級別的setup_method/teardown_method

執行結果:

函數級別的setup_function/teardown_function

執行結果:

小結

該腳本有多種運行方式,如果處於PyCharm環境,可以使用右鍵或者點擊運行按鈕運行,也就是在pytest中的主函數中運行:

也可以在命令行中運行:

這種方式,跟使用Python解釋器執行Python腳本沒有什麼兩樣。也可以如下面這么執行:

當然,還有一種是使用配置文件運行,來看看怎麼用。

在項目的根目錄下,我們可以建立一個 pytest.ini 文件,在這個文件中,我們可以實現相關的配置:

那這個配置文件中的各項都是什麼意思呢?

首先, pytest.ini 文件必須位於項目的根目錄,而且也必須叫做 pytest.ini 。

其他的參數:

OK,來個示例。

首先,(詳細目錄參考開頭的目錄結構)在 scripts/test_case_01.py 中:

在 scripts/test_case_dir1/test_case02.py 中:

那麼,在不同的目錄或者文件中,共有5個用例將被執行,而結果則是兩個失敗三個成功。來執行驗證一下,因為有了配置文件,我們在終端中(前提是在項目的根目錄),直接輸入 pytest 即可。

由執行結果可以發現, 2 failed, 3 passed ,跟我們的預期一致。

後續執行相關配置都來自配置文件,如果更改,會有相應說明,終端都是直接使用 pytest 執行。

我們知道在unittest中,跳過用例可以用 skip ,那麼這同樣是適用於pytest。

來看怎麼使用:

跳過用例,我們使用 @pytest.mark.skipif(condition, reason) :

然後將它裝飾在需要被跳過用例的的函數上面。

效果如下:

上例執行結果相對詳細,因為我們在配置文件中為 addopts 增加了 -v ,之前的示例結果中,沒有加!
另外,此時,在輸出的控制台中, 還無法列印出 reason 信息,如果需要列印,則可以在配置文件中的 addopts 參數的 -s 變為 -rs :

如果我們事先知道測試函數會執行失敗,但又不想直接跳過,而是希望顯示的提示。

Pytest 使用 pytest.mark.xfail 實現預見錯誤功能::

需要掌握的必傳參數的是:

那麼關於預期失敗的幾種情況需要了解一下:

結果如下:

pytest 使用 x 表示預見的失敗(XFAIL)。

如果預見的是失敗,但實際運行測試卻成功通過,pytest 使用 X 進行標記(XPASS)。

而在預期失敗的兩種情況中,我們不希望出現預期失敗,結果卻執行成功了的情況出現,因為跟我們想的不一樣嘛,我預期這條用例失敗,那這條用例就應該執行失敗才對,你雖然執行成功了,但跟我想的不一樣,你照樣是失敗的!

所以,我們需要將預期失敗,結果卻執行成功了的用例標記為執行失敗,可以在 pytest.ini 文件中,加入:

這樣就就把上述的情況標記為執行失敗了。

pytest身為強大的單元測試框架,那麼同樣支持DDT數據驅動測試的概念。也就是當對一個測試函數進行測試時,通常會給函數傳遞多組參數。比如測試賬號登陸,我們需要模擬各種千奇百怪的賬號密碼。

當然,我們可以把這些參數寫在測試函數內部進行遍歷。不過雖然參數眾多,但仍然是一個測試,當某組參數導致斷言失敗,測試也就終止了。

通過異常捕獲,我們可以保證程所有參數完整執行,但要分析測試結果就需要做不少額外的工作。

在 pytest 中,我們有更好的解決方法,就是參數化測試,即每組參數都獨立執行一次測試。使用的工具就是 pytest.mark.parametrize(argnames, argvalues) 。

使用就是以裝飾器的形式使用。

只有一個參數的測試用例

來看(重要部分)結果::

可以看到,列表內的每個手機號,都是一條測試用例。

多個參數的測試用例

(重要部分)結果:

可以看到,每一個手機號與每一個驗證碼都組合一起執行了,這樣就執行了4次。那麼如果有很多個組合的話,用例數將會更多。我們希望手機號與驗證碼一一對應組合,也就是只執行兩次,怎麼搞呢?

在多參數情況下,多個參數名是以 , 分割的字元串。參數值是列表嵌套的形式組成的。

固件(Fixture)是一些函數,pytest 會在執行測試函數之前(或之後)載入運行它們,也稱測試夾具。

我們可以利用固件做任何事情,其中最常見的可能就是資料庫的初始連接和最後關閉操作。

Pytest 使用 pytest.fixture() 定義固件,下面是最簡單的固件,訪問主頁前必須先登錄:

結果:

在之前的示例中,你可能會覺得,這跟之前的setup和teardown的功能也類似呀,但是,fixture相對於setup和teardown來說更靈活。pytest通過 scope 參數來控制固件的使用范圍,也就是作用域。

比如之前的login固件,可以指定它的作用域:

很多時候需要在測試前進行預處理(如新建資料庫連接),並在測試完成進行清理(關閉資料庫連接)。

當有大量重復的這類操作,最佳實踐是使用固件來自動化所有預處理和後處理。

Pytest 使用 yield 關鍵詞將固件分為兩部分, yield 之前的代碼屬於預處理,會在測試前執行; yield 之後的代碼屬於後處理,將在測試完成後執行。

以下測試模擬資料庫查詢,使用固件來模擬資料庫的連接關閉:

結果:

可以看到在兩個測試用例執行前後都有預處理和後處理。

pytest中還有非常多的插件供我們使用,我們來介紹幾個常用的。

先來看一個重要的,那就是生成測試用例報告。

想要生成測試報告,首先要有下載,才能使用。

下載

如果下載失敗,可以使用PyCharm下載,怎麼用PyCharm下載這里無需多言了吧。

使用

在配置文件中,添加參數:

效果很不錯吧!

沒完,看我大招

Allure框架是一個靈活的輕量級多語言測試報告工具,它不僅以web的方式展示了簡潔的測試結果,而且允許參與開發過程的每個人從日常執行的測試中最大限度的提取有用信息。
從開發人員(dev,developer)和質量保證人員(QA,Quality Assurance)的角度來看,Allure報告簡化了常見缺陷的統計:失敗的測試可以分為bug和被中斷的測試,還可以配置日誌、步驟、fixture、附件、計時、執行 歷史 以及與TMS和BUG管理系統集成,所以,通過以上配置,所有負責的開發人員和測試人員可以盡可能的掌握測試信息。
從管理者的角度來看,Allure提供了一個清晰的「大圖」,其中包括已覆蓋的特性、缺陷聚集的位置、執行時間軸的外觀以及許多其他方便的事情。allure的模塊化和可擴展性保證了我們總是能夠對某些東西進行微調。

少扯點,來看看怎麼使用。

Python的pytest中allure下載

但由於這個 allure-pytest 插件生成的測試報告不是 html 類型的,我們還需要使用allure工具再「加工」一下。所以說,我們還需要下載這個allure工具。

allure工具下載

在現在allure工具之前,它依賴Java環境,我們還需要先配置Java環境。

注意,如果你的電腦已經有了Java環境,就無需重新配置了。

配置完了Java環境,我們再來下載allure工具,我這里直接給出了網路雲盤鏈接,你也可以去其他鏈接中自行下載:

下載並解壓好了allure工具包之後,還需要將allure包內的 bin 目錄添加到系統的環境變數中。

完事後打開你的終端測試:

返回了版本號說明安裝成功。

使用

一般使用allure要經歷幾個步驟:

來看配置 pytest.ini :

就是 --alluredir ./report/result 參數。

在終端中輸入 pytest 正常執行測試用例即可:

執行完畢後,在項目的根目下,會自動生成一個 report 目錄,這個目錄下有:

接下來需要使用allure工具來生成HTML報告。

此時我們在終端(如果是windows平台,就是cmd),路徑是項目的根目錄,執行下面的命令。

PS:我在pycharm中的terminal輸入allure提示'allure' 不是內部或外部命令,也不是可運行的程序或批處理文件。但windows的終端沒有問題。

命令的意思是,根據 reportresult 目錄中的數據(這些數據是運行pytest後產生的)。在 report 目錄下新建一個 allure_html 目錄,而這個目錄內有 index.html 才是最終的allure版本的HTML報告;如果你是重復執行的話,使用 --clean 清除之前的報告。

結果很漂亮:

allure open
默認的,allure報告需要HTTP伺服器來打開,一般我們可以通過pycharm來完成,另外一種情況就是通過allure自帶的open命令來完成。

allure的其他用法
當然,故事還是沒有完!在使用allure生成報告的時候,在編寫用例階段,還可以有一些參數可以使用:

allure.title與allure.description

feature和story

由上圖可以看到,不同的用例被分為不同的功能中。

allure.severity

allure.severity 用來標識測試用例或者測試類的級別,分為blocker,critical,normal,minor,trivial5個級別。

severity的默認級別是normal,所以上面的用例5可以不添加裝飾器了。

allure.dynamic

在之前,用例的執行順序是從上到下依次執行:

正如上例的執行順序是 3 1 2 。

現在,來看看我們如何手動控制多個用例的執行順序,這里也依賴一個插件。

下載

使用

手動控制用例執行順序的方法是在給各用例添加一個裝飾器:

那麼, 現在的執行順序是 2 1 3 ,按照order指定的排序執行的。

如果有人較勁傳個0或者負數啥的,那麼它們的排序關系應該是這樣的:

失敗重試意思是指定某個用例執行失敗可以重新運行。

下載

使用

需要在 pytest.ini 文件中, 配置:

給 addopts 欄位新增(其他原有保持不變) --reruns=3 欄位,這樣如果有用例執行失敗,則再次執行,嘗試3次。

來看示例:

結果:

我們也可以從用例報告中看出重試的結果:

上面演示了用例失敗了,然後重新執行多少次都沒有成功,這是一種情況。

接下來,來看另一種情況,那就是用例執行失敗,重新執行次數內通過了,那麼剩餘的重新執行的次數將不再執行。

通過 random 模塊幫助我們演示出在某次執行中出現失敗的情況,而在重新執行的時候,會出現成功的情況,看結果:

可以看到,用例 02 重新執行了一次就成功了,剩餘的兩次執行就終止了。

一條一條用例的執行,肯定會很慢,來看如何並發的執行測試用例,當然這需要相應的插件。

下載

使用

在配置文件中添加:

就是這個 -n=auto :

並發的配置可以寫在配置文件中,然後其他正常的執行用例腳本即可。另外一種就是在終端中指定,先來看示例:

結果:

pytest-sugar 改變了 pytest 的默認外觀,添加了一個進度條,並立即顯示失敗的測試。它不需要配置,只需 下載插件即可,用 pytest 運行測試,來享受更漂亮、更有用的輸出。

下載

其他照舊執行用例即可。

pytest-cov 在 pytest 中增加了覆蓋率支持,來顯示哪些代碼行已經測試過,哪些還沒有。它還將包括項目的測試覆蓋率。

下載

使用

在配置文件中:

也就是配置 --cov=./scripts ,這樣,它就會統計所有 scripts 目錄下所有符合規則的腳本的測試覆蓋率。

執行的話,就照常執行就行。

結果:

更多插件參考:https://zhuanlan.hu.com/p/50317866

有的時候,在 pytest.ini 中配置了 pytest-html 和 allure 插件之後,執行後報錯:

出現了這個報錯,檢查你配置的解釋器中是否存在 pytest-html 和 allure-pytest 這兩個模塊。如果是使用的pycharm ide,那麼你除了檢查settings中的解釋器配置之外,還需要保證運行腳本的編輯器配置是否跟settings中配置一致。

⑹ python unittest單元測試框架中,如何對一個testcase參數化,具體如何實現

#首先pyunit不像junit一樣支持參數化測試。。。不過不是不能實現,只是pyunit的作者想讓#這個東西變得盡量簡單。所以不去實現。當然這個pyhon語言足夠動態,你可以自己去實現

#外部輸入參數測試。

importunittest
classParametrizedTestCase(unittest.TestCase):
"""
inheritfromthisclass.
"""
def__init__(self,methodName='runTest',param=None):
super(ParametrizedTestCase,self).__init__(methodName)
self.param=param
@staticmethod
defparametrize(testcase_klass,param=None):
"""
subclass,passingthemtheparameter'param'.
"""
testloader=unittest.TestLoader()
testnames=testloader.getTestCaseNames(testcase_klass)
suite=unittest.TestSuite()
fornameintestnames:
suite.addTest(testcase_klass(name,param=param))
returnsuite


#####################################################

##用法-testcase
classTestOne(ParametrizedTestCase):
deftest_something(self):
print'param=',self.param
self.assertEqual(1,1)

deftest_something_else(self):
self.assertEqual(2,2)

##用法-測試
suite=unittest.TestSuite()
suite.addTest(ParametrizedTestCase.parametrize(TestOne,param=42))
suite.addTest(ParametrizedTestCase.parametrize(TestOne,param=13))
unittest.TextTestRunner(verbosity=2).run(suite)

#結果
test_something(__main__.TestOne)...param=42
ok
test_something_else(__main__.TestOne)...ok
test_something(__main__.TestOne)...param=13
ok
test_something_else(__main__.TestOne)...ok

----------------------------------------------------------------------
Ran4testsin0.000s

OK

當然最好的方法就是用別人寫的東西。。。

https://github.com/taykey/nose-ittr

這個拿去,不謝

⑺ python寫的測試框架怎麼使用

安裝

>pipinstall-Upytest#通過pip安裝

>py.test--version#查看pytest版本

Thisispytestversion2.7.2,importedfromC:Python27libsite-packagespytest.pyc

簡單的測試

讓我們創建第一個文件,對個簡單的功能進行測試。

好吧!其實, 我也不理解這段代碼的含義,但是執行它的可運行測試用例了。

pytest/

├──test_case/

│├── test_sample.py

│├──test_class.py

│├── __init__.py

│ └──test_case2/

│ ├── test_main.py

│ ├── test_time.py

│ └──__init__.py

└──runtests.py

執行runtest.py文件。

>python runtest.py

當然,你也可以打開runtests.py 文件運行它。

===================================================================

*最後,pytest是如果識別測試用例的呢?它默認使用檢查以test_ *.py 或*_test.py命名的文件名,在文件內部查找以test_打頭的方法或函數,並執行它們。

pytest還有許多需要討論的地方,做為這個系列的第一節,先介紹到這里。

⑻ 徒手搭建Python單元測試框架

稍微具有一定規模的企業對於軟體開發一般都會要求寫單元測試,雖然各自標准不同,有的可能要求覆蓋率達到50即可,而像我司這種竟然要求行覆蓋率和分支覆蓋率都要到95%以上。本文會手把手教你如何在項目初期搭建單元測試框架,以便能夠指導後續開發進行單元測試編寫和測試報告生成。本文適合python項目的架構師或者核心發起者。如果是小白也可以了解下單元測試是怎麼搭建的以及一些單元測試的原則。

一般項目如果是web項目都會有配置文件,那麼啟動單元測試的應用上下文也需要測試用的配置文件。下面是一個基於flask開發的web項目的單元測試配置文件。大家可以參考下。如果項目不是web項目而是腳本倉庫也可以不需要這塊。

基礎測試類會初始化測試應用上下文以及內存資料庫初始化,以及測試完成後的數據清理

測試聚合類是用來掃描所有測試模塊並運行測試用例的

python的Coverage庫是用來生成測試報的,可以通過.coverage文件配置測試報告的內存,包括忽略項,是否包含分支覆蓋率,測試報告生成位置和形式(xml或者html)等

通過運行以下coverage 模塊生成測試報告

⑼ 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測試框架圖相關的資料

熱點內容
javatomcat圖片 瀏覽:415
程序員生產智能創意 瀏覽:65
匯和銀行app怎麼登錄 瀏覽:381
騰訊伺服器如何上傳源碼 瀏覽:739
單片機的原理概述 瀏覽:508
火控pdf 瀏覽:267
如何復制雲伺服器centos環境 瀏覽:984
債權pdf 瀏覽:301
紅色番字的app怎麼下載 瀏覽:876
雲伺服器流程教課 瀏覽:702
中國農業銀行app怎麼沒有網 瀏覽:997
幾率表演算法 瀏覽:902
程序員理工科 瀏覽:708
企業郵箱登錄收件伺服器地址 瀏覽:558
計算機思維與演算法設計的重要性 瀏覽:664
linux刷新磁碟命令 瀏覽:76
我的世界如何查看伺服器種子pc 瀏覽:284
linuxlamp編譯安裝 瀏覽:609
枚舉演算法ppt 瀏覽:184
cmd查看進程命令 瀏覽:956