黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python:Python 自動化測試框架 unittest 和 pytest

系統 1923 0

?

一、用例編寫規則

? ? 1.unittest提供了test cases、test suites、test fixtures、test runner相關的類,讓測試更加明確、方便、可控。使用unittest編寫用例,必須遵守以下規則:

  (1)測試文件必須先import unittest

  (2)測試類必須繼承unittest.TestCase

  (3)測試方法必須以“test_”開頭

  (4)測試類必須要有unittest.main()方法

 2.pytest是python的第三方測試框架,是基于unittest的擴展框架,比unittest更簡潔,更高效。使用pytest編寫用例,必須遵守以下規則:

???? ? (1)測試文件名必須以“test_”開頭或者"_test"結尾(如:test_ab.py)

  (2)測試方法必須以“test_”開頭。

  (3)測試類命名以"Test"開頭。

 總結: unittest :用例格式--復雜,不能兼容pytest用例;

   ? pytest:? ?用例格式--簡單,可以兼容unittest用例;

?

二、用例前置和后置

? ??1.unittest提供了setUp/tearDown,只能針對所有用例。

? ? 2.pytest提供了模塊級、函數級、類級、方法級的setup/teardown,比unittest的setUp/tearDown更靈活。

  • 模塊級(setup_module/teardown_module)開始于模塊始末,全局的

  • 函數級(setup_function/teardown_function)只對函數用例生效(不在類中)

  • 類級(setup_class/teardown_class)只在類中前后運行一次(在類中)

  • 方法級(setup_method/teardown_method)開始于方法始末(在類中)

  • 類里面的(setup/teardown)運行在調用方法的前后

pytest還可以在函數前加@pytest.fixture()裝飾器,在測試用例中使用fixture函數。fixture的使用范圍可以是function,module,class,session。
firture相對于setup和teardown來說有以下幾點優勢:

  • 命名方式靈活,不局限于setup和teardown這幾個命名
  • conftest.py 配置里可以實現數據共享,不需要import就能自動找到一些配置,可供多個py文件調用。
  • scope="module" 可以實現多個.py跨文件共享前置
  • scope="session" 以實現多個.py跨文件使用一個session來完成多個用例
  • 用yield來喚醒teardown的執行

?

三、斷言

?? ??1.unittest提供了assertEqual、assertIn、assertTrue、assertFalse。

 ? 2.pytest直接使用assert 表達式。

?

四、報告

??? ??1.unittest使用HTMLTestRunnerNew庫。

 ? ?2.pytest有pytest-HTML、allure插件。

?

五、失敗重跑

  1、unittest無此功能。

  2、pytest支持用例執行失敗重跑,pytest-rerunfailures插件。

?

六、參數化

  1、unittest需依賴ddt庫,

  2、pytest直接使用 @pytest.mark.parametrize 裝飾器。

?

七、用例分類執行

  1、unittest默認執行全部的用例,可以通過加載testsuite執行部門模塊用例;

  2、pytest可以通過 @pytest.mark 來標記測試用例,執行命令加上參數“-m”即可運行標記的用例


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論