python unittest參數化nose-parameterized和paramunittest

2021-01-07 路客技術宅

今天要和大家聊聊參數化的問題,什麼叫做參數化?比如一個登錄系統的操作,我們會設計很多用例來測試這個登錄功能是否OK(用戶名正確,密碼錯誤;用戶名錯誤,密碼錯誤;用戶名正確,密碼正確等)。這時候發現輸入的參數是在不斷變化的,但是都是執行同一個登錄操作。所以參數化其實就是一個方法,在不同輸入參數的情況下進行用例測試。

在unittest中常用的參數化有三類:nose-parameterized、paramunittest、ddt。

一、nose-parameterized

1、環境準備

在安裝了pip的情況下,在cmd下執行pip install nose-parameterized。

2、實踐

使用前先導入模塊:fromnose_parameterizedimportparameterized。

上圖代碼,主要測試一個簡單的加法運算,可以看到@parameterized.expand後加了三個參數進行測試,其中一個參數是用例名字,後邊三個參數分別對應test_add方法中a/b/c三個變量,一一對應的關係。可以關注其寫法,且參數的對應關係,如果少了參數或者沒有對應,會導致用例執行報錯或者失敗。

二、paramunittest

1、環境準備

pip install paramunittest

從安裝的情況來看,提示這個庫已經存在了,說明這個庫應該是python自帶的一個參數化庫,如果大家發現沒有的話可以自行安裝。

2、實踐

從官網上可以看到它給的一個實例

其參數化裡頭可以是元組,也可以是字典,設置元組合字典可以一起使用。

元組('1','2')其值分別對應a,b;

(('4',),{'b':'5'})中a為4,b為5;

((),{'a':5,'b':6})中a為5,b為6;

{'a':5,'b':6}中a,b一一對應。

從中可以看出paramunittest方法和參數化中參數的一個對應關係,值得一提的是,如果參數化中是字典的形式,那麼必須要和方法中參數名要一致,否則會出現失敗。如:

相關焦點

  • unittest框架核心要素及應用
    1. unittest核心要素unittest介紹測試框架,不僅僅用於單元測試python自動的測試包用法和前、後置(不是必須的,有前置必須寫後置,匹配的) 2. test開頭的測試用例(測試用例中有斷言)4. unittest.main()運行測試"""import unittestclass MyTest(unittest.TestCase
  • unittest測試框架
    3、斷言assert str1 in str2 ,斷言失敗時的消息文本assert 表達式 1==表達式2self.assertIn(ste1,str2)斷言str1是否在str中self.assertEqual(實際,預期)4、參數化
  • Python單元測試——深入理解unittest
    單元測試的重要性就不多說了,可惡的是python中有太多的單元測試框架和工具,什麼unittest, testtools, subunit, coverage, testrepository, nose, mox, mock, fixtures, discover,再加上setuptools, distutils等等這些,先不說如何寫單元測試,光是怎麼運行單元測試就有
  • 軟體測試學習教程:單元測試之UnitTest測試框架
    單元測試的概念單元測試(unit testing),是指對軟體中的最小可測試單元進行檢查和驗證。對於單元測試中單元的含義,要根據實際情況去判定其具體含義。ClassName內test開頭的方法並添加到測試套件中)提示:TestSuite需要配合TestRunner才能被執行四、TextTestRunner說明:TextTestRunner是用來執行測試用例和測試套件的使用:1.實例化
  • Python之UnitTest框架介紹
    UnitTest的四大特點TestCase:測試案例,所有的用例都是直接繼承於UnitTest.TestCase類TestFixture:SetUp和Teardown,作為前置條件和後置條件>print("this is test 1")用例排序與寫的順序無關,排序遵循A-Z,a-z,0-9完整代碼如下:import unittest
  • 從小白變高手,這7個超實用的Python自動化測試框架請收好!
    隨著技術的進步和自動化技術的出現,市面上出現了一些自動化測試框架。只需要進行一些適用性和效率參數的調整,這些自動化測試框架就能夠開箱即用,大大節省了開發時間。而且由於這些框架被廣泛使用,他們具有很好的健壯性,並且具有廣泛多樣的用例集和技術來輕易發現微小的缺陷。今天,我們將看一看常見的 Python 自動化測試框架。
  • python unittest使用基本過程
    前言unittest是python的標準的單元測試框架,能夠很好的和自動化測試相結合,並有獨立的測試報告框架。test suite測試套件,一系列測試用例或測試套件的集合。在unittest中由TestSuite類實現。test runner測試執行器,負責用例執行並生成測試報告,在unittest中提供了命令行模式和GUI模式來執行。
  • Python Unittest 根據不同測試環境跳過用例詳解
    #encoding:utf8from sys import argvprint('argv是一個數組:',argv)  使用命令行運行上述腳本,外部傳入參數:1 2 3 4python how_to_use_argv.py 1 2 3 4  運行結果argv是一個數組:['how_to_use_argv.py
  • 乾貨丨Python接口測試自動化實戰及代碼示例:含get、post等方法
    最終選定 python 作為腳本開發語言,使用其自帶的 requests 和 urllib 模塊進行接口請求,使用優化後的 unittest 測試框架編寫測試接口函數,測試結果選用 HTMLTestRunner 框架予以展示,並使用 python 的 ssl 模塊支持 https 協議的驗證。接下來,我詳細地介紹這些模塊,並給出各個模塊完整的測試代碼。
  • 自動化測試基礎篇:Selenium unittest 簡介
    使用unittest編寫python的單元測試代碼,包括如下幾個步驟:1、編寫一個python類,繼承 unittest模塊中的TestCase類,這就是一個測試類2、在上面編寫的測試類中定義測試方法(這個就是指的測試用例),每個方法的方法名要求以 test 打頭,沒有額外的參數。
  • 使用python的unittest做測試
    文檔地址http://docs.python.org/library/unittest.html第一個例子直接引用文檔中的例子,其他的簡略的寫了寫結論性的東西,具體的參考python_testing_cookbook一書。
  • python unittest關鍵API說明及示例
    前言本次就python unittest單元測試框架的一些基本的、常用的API 進行分享,以便大家後續更深入的熟悉和應用unittest。TestCase類APITeseCase類實例化的對象是最小的可測單元顆粒。
  • pytest文檔42-fixture參數化params
    前言參數化是自動化測試裡面必須掌握的一個知識點,用過 unittest 框架的小夥伴都知道使用ddt 來實現測試用例的參數化。:一個可選的參數列表,它將導致多次調用fixture函數和使用它的所有測試獲取當前參數可以使用 request.param :arg params: an optional list of parameters which will cause multiple invocations of the fixture function and
  • python測試函數模塊unittest
    return full_name.title()test_name_function.py 模塊名import unittest unittest是python標準庫中的函數不可更改但可以用as重新命名調用函數unittest模塊from name_function import get_formatted_name
  • 一篇文章向你解釋什麼是Unittest單元測試框架(上)
    單元測試(unit testing)是指對軟體中的最小可測試單元進行檢查和驗證。單元測試中單元的含義,單元就是人為規定的最小的被測功能模塊,如C語言中單元指一個函數,Java裡單元指一個類,圖形化的軟體中可以指一個窗口或一個菜單等。在實際項目中,單元測試往往由開發人員完成。單元測試其實就是構造數據使用一段代碼去測試另一段代碼,理論上來說,不使用單元測試框架也能進行單元測試。
  • Python自動化之unittest框架
    在自動化所有的測試體系中,不管是單元測試,還是接口測試以及基於UI的自動化測試,都需要單元測試框架,在Python語言中,最常用的單元測試框架是unittest和pytest,今晚主要來介紹unittest單元測試框架,後期逐步的介紹pytest測試框架在自動化測試中的應用。
  • python unittest參數化ddt
    ddt即data driver test,數據驅動測試。作為測試用例參數化的一種方法。它提供了一個類的裝飾器ddt,和兩個方法的裝飾器data和file_data。可以看到在測試類前用了@ddt進行裝飾類,在測試方法前用了@data進行裝飾,且@data後邊直接帶了參數。參數的值取得是定義的一個元組,沒跑一次就取其中一個值。可以從測試結果看出,跑了三次用例。
  • Python單元測試框架-UnitTest以及測試報告
    test fixture:測試夾具,包含執行測試用例前的測試準備工作、測試用例執行後的清理工作(分別對應TestCase中的setUp()和tearDown()方法),測試準備和測試清理的目的是保證每個測試用例執行前後的系統狀態一致。
  • Python之unittest+ddt+openpyxl綜合
    你這麼優秀,一定只想把「檸檬班」置頂▲大家好,我是來自python前面寫過python之unittest初探和python之unittest+ddt兩篇文章。(往期公眾號文章)在之前的文章中,寫過可以再次優化。今天寫第三篇的目的,就是在原有基礎上,基於openpyxl模塊再次優化。在第二篇中,注意到測試數據與代碼寫在一起,實在是難以維護操作。