unittest測試框架

2021-02-20 軟體測試俱樂部

unittest測試框架

1、導入包

from selenium import webdriver

from selenium webdriver.support.select import Select

from time import sleep

import unittest

2、創建類

2.1 全局變量

driver=None

定義驅動器

放在模塊(即文件中),不要放在類中

2.2 創建測試類

class 類名(unittest.TestCase)

括號內表示繼承

不能省略

2.3 創建初始化和還原環境的函數

setUpClass(cls)

必須使用@classmethod裝飾器

cls不能省略

所有測試函數運行前運行一次

tearDownClass(cls)

必須使用@classmethod裝飾器

cls不能省略

所有測試函數運行完後運行一次

setUp(self)

每個測試函數運行前運行

self不能省略

tearDown(self)

每個測試函數運行完後執行

self不能省略

說明

這些函數都放在類中。

2.4 測試函數

def 函數名(self):

u」測試描述」

global driver

其他測試代碼

函數名必須以test開頭

self不能省略

u」測試描述」

可以省略,省略時顯示函數名

global driver用於指定driver是全局變量,只放在setUpClass中即可

多個測試函數按照函數名的ASCII順序執行

2.5 運行測試

If__name__ == 「__main__」:

unittest.main(verbosity=2)

上述代碼放在模塊內,類之外

__是雙下劃線

if__name__ == 「__main__」表示當單獨運行模塊時才會被執行,import到其他腳本中是不會被執行的

verbosity=2

顯示每個用例的詳細信息

可以省略,但測試結果不詳細

測試結果

· 代表測試通過。

F  代表測試失敗,F代表failure。

E  代表測試錯誤,E代表error。

S  代表跳過該測試,S代表skip。

3、斷言

assert str1 in str2 ,斷言失敗時的消息文本

assert 表達式 1==表達式2

self.assertIn(ste1,str2)

斷言str1是否在str中

self.assertEqual(實際,預期)

4、參數化

4.1 安裝nose_parameterized

pip install ...

4.2 導入包parameterized

報名不是nose_parameterized

import parameterized

4.3 定義參數數據

data=[ [數據11,數據12],

[數據21,數據22]

]

參數放在列表中

4.4 引用參數

@parameterized.parameterized.expand(data)

def test...(self,參數1,參數2,...):

self不能省略

參數的個數應與列表中的個數一致

可以實現局部迭代

5、測試套件

批量運行測試套件中的測試用例。

5.1 指定運行一個模塊中的一個測試

suite=unittest.TestSuite()

創建測試套件(測試用例的集合,測試容器)

suite.addTest(類名(「測試函數名」))

將一個測試用例放到測試套件中

不能省略類名

runner = unnittest.TextTestRunner()

指定使用TextTestRunner運行測試用例

runner.run(suite)

運行測試套件

5.2 指定按順序運行一個模塊中的多個測試

suite=unittest.TestSuite()

tests=[類名(「測試函數名1」),類名(「測試函數名2」),...]

只執行指定的測試函數

按照編寫的順序執行測試

多個測試放到列表中

不能省略類名

若一個測試的執行依賴於其他測試,可以使用此方式解決

suite.addTests(tests)

將測試添加到測試套件中

runner = unnittest.TextTestRunner(verbosity=2)

可以指定測試結果的詳細程度

runner.run(suite)

5.3 自動發現多個測試

創建多個測試模塊

在模塊內編寫測試類和測試函數

最好創建運行測試套件的單獨的模塊

創建類與否,均可

創建測試套件

suite=unittest.TestSuite()

指定測試用例的識別規則

tests=unittest.defaultTestLoader.discover(「測試模塊所在目錄」,pattern=」test*.py」)

識別所有test開頭的py文件為測試用例

按模塊名稱順序執行

suite.addTests(tests)

runner=unittest.TextTestRunner(verbosity=2)

Runner.run(suite)

6、測試報告

測試報告可以生成多種形式,如txt、html、xml等。

最好創建運行測試套件的單獨的模塊

導入包

import HTMLTestRunner

可以自行修改此文件

創建測試套件

suite=unittest.TestSuite()

tests=unittest.defaultTestLoader.discover(「測試模塊所在目錄」,pattern=」test*.py」)

suite.addTests(tests)

運行測試,保存報告

Now=time.strftime(「%Y%m%d%H%M%S」,time.localtime())

*獲取當前時間並設置時間格式

reportFile=」./」+now+」_result.html」

*測試報告的存放路徑及文件名,文件名中加了當前時間以便

每次生成不同的測試報告

fp=open(reportFile,」web」)

runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u」報告標題功能測試報告」,description=u」報告的說明與描述」,test=u」測試員姓名」)

runner.run(suite)

fp.close()

*關閉文件流,不關的話生成的報告是空的

 

 

 

 

 

相關焦點

  • 細說unittest單元測試框架
    一、單元測試框架說明 單元測試是指在編程中,針對程序模塊的最小單元(類中的方法)進行正確性檢驗的測試工作。python+selenium自動化測試中通常使用unittest或者pytest作為單元測試框架。
  • 軟體測試學習教程:單元測試之UnitTest測試框架
    單元測試工具不同的程式語言都有比較成熟的單元測試框架,語法規則有些差別,其核心思想都是相通的。常見的單元測試框架有:Java語言:Junit、TestNGPython語言:UnitTest、PytestUnitTest單元測試框架一、UnitTest框架介紹
  • Python自動化之unittest框架
    在金字塔模型的測試理論體系中,單元測試是最底層的測試,而且是測試覆蓋最多的層面。在自動化所有的測試體系中,不管是單元測試,還是接口測試以及基於UI的自動化測試,都需要單元測試框架,在Python語言中,最常用的單元測試框架是unittest和pytest,今晚主要來介紹unittest單元測試框架,後期逐步的介紹pytest測試框架在自動化測試中的應用。
  • 一篇文章向你解釋什麼是Unittest單元測試框架(上)
    單元測試其實就是構造數據使用一段代碼去測試另一段代碼,理論上來說,不使用單元測試框架也能進行單元測試。但如果用於單元測試的代碼(即測試用例)增多,在沒有測試框架的情況下會變得擁擠、不可管理,這個時候引入測試框架就變得尤為重要。單元測試框架提供了一種統一的編程模型,可以將測試定義為一些簡單的類,這些類中的方法可以調用希望測試的應用程式代碼。
  • Python之UnitTest框架介紹
    UnitTest的介紹Python中相對比較流行的自動化測試框架UnitTest,早期主要時用於做單元測試,隨著自動化更新,能夠完善的結合Selenium/Appium/Requests等實現UI自動化與接口自動化。
  • Python單元測試框架-UnitTest以及測試報告
    test fixture:測試夾具,包含執行測試用例前的測試準備工作、測試用例執行後的清理工作(分別對應TestCase中的setUp()和tearDown()方法),測試準備和測試清理的目的是保證每個測試用例執行前後的系統狀態一致。
  • unittest框架核心要素及應用
    1. unittest核心要素unittest介紹測試框架,不僅僅用於單元測試python自動的測試包用法和測試用例2. 容器,容器添加測試用例3.運行容器中的測試用例"""import unittest# 測試類,繼承於unittest.TestCaseclass MyTest(unittest.TestCase):def test_1(self):
  • 自動化測試基礎篇:Selenium unittest 簡介
    ,對於Python語言,同樣有類似的單元測試框架Unittest。今天就給大家結合實例介紹一下unittest,一起來學習吧。一、什麼是unittestunittest是Python單元測試框架,類似於JUnit框架。
  • Python單元測試——深入理解unittest
    單元測試的重要性就不多說了,可惡的是python中有太多的單元測試框架和工具,什麼unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等這些,先不說如何寫單元測試,光是怎麼運行單元測試就有
  • python測試函數模塊unittest
    1.測試函數在編寫完代碼後進行對代碼測試是否有錯誤2.pytho標準庫中的模塊unittest為代碼測試工具例如:name_function.py 模塊名def get_formatted_name(first, last): full_name = first + ' ' + last
  • 使用python的unittest做測試
    ()實現一個繼承unittest.TestCase的類,使用unittest.main()來測試該類中所有以test開頭的測試用例。而不是assertTrue、assertFalse,當assertEquals失敗的時候,會列印出比較的兩方值更直觀self.fail([msg])會無條件的導致測試失敗,不推薦使用。
  • python unittest使用基本過程
    前言unittest是python的標準的單元測試框架,能夠很好的和自動化測試相結合,並有獨立的測試報告框架。在selenium測試中,我們可以用來做webdriver的初始化等等testcase測試用例,unittest的最小單元。用以對指定輸入的返回結果進行檢測。在unittest中提供 了TestCase基類,用來創建新的測試用例類。
  • python自動化測試之pytest框架
    pytest測試框架也是主流的一個測試框架,想比於unnitest框架來說,其不需要像unittest那樣單獨創建類繼承unittest.TestCase,而只需要創建測試類或者測試文件,然後以test開頭,pytest可以按照這個規則找到測試用例並執行。
  • 從小白變高手,這7個超實用的Python自動化測試框架請收好!
    隨著技術的進步和自動化技術的出現,市面上出現了一些自動化測試框架。只需要進行一些適用性和效率參數的調整,這些自動化測試框架就能夠開箱即用,大大節省了開發時間。而且由於這些框架被廣泛使用,他們具有很好的健壯性,並且具有廣泛多樣的用例集和技術來輕易發現微小的缺陷。今天,我們將看一看常見的 Python 自動化測試框架。
  • Python Unittest 根據不同測試環境跳過用例詳解
    本文章會講述以下幾個內容:  1、Unittest 如何跳過用例  2、如何使用sys.argv  3、自動化測試項目中如何一套代碼多套環境運行@unittest.skip(reason) , 直接跳過被裝飾的用例 ,reason用於填寫跳過用例的原因@unittest.skipIf(condition, reason) , condition 如果為真,跳過被裝飾的用例,reason用於填寫跳過用例的原因@unittest.skipUnless(condition, reason) , condition
  • python unittest關鍵API說明及示例
    前言本次就python unittest單元測試框架的一些基本的、常用的API 進行分享,以便大家後續更深入的熟悉和應用unittest。TestCase類APITeseCase類實例化的對象是最小的可測單元顆粒。
  • Python之UnitTest中測試套件的使用
    測試套件的注意事項必須新建一個類對象存放套件,直接在UnitTest測試類中運行無法生效測試套件的創建suite = unittest.TestSuite('test_6'))suite.addTest(UnitForTest3('test_7'))基於Runner來運行測試套件runner = unittest.TextTestRunner()
  • Appium 必須掌握的移動端自動化測試框架
    移動應用在企業中的地位越來越重要,為了更好將產品推向市場,企業對移動軟體測試的要求越來越高,為了完成大量的高強度移動端的測試需求,掌握高校的移動自動化測試工具則成為每一個軟體測試工程師必備的要求。這裡為大家詳細介紹一下Appium——一款軟體測試工程師必須掌握的開源測試自動化框架。
  • 自動化測試常用的Python框架有哪些?
    自動化測試常用的Python框架有哪些?常用的框架有Robot Framework、Pytest、UnitTest/PyUnit、Behave、Lettuce。二、Pytest適用於多種軟體測試的Pytest,是另一個Python類型的自動化測試框架。憑藉著其開源和易學的特點,該工具經常被QA(質量分析)團隊、開發團隊、個人團隊、以及各種開源項目所使用。
  • Python之unittest+ddt+openpyxl綜合
    前面寫過python之unittest初探和python之unittest+ddt兩篇文章。(往期公眾號文章)在之前的文章中,寫過可以再次優化。今天寫第三篇的目的,就是在原有基礎上,基於openpyxl模塊再次優化。在第二篇中,注意到測試數據與代碼寫在一起,實在是難以維護操作。