python--接口自動化經常用到的pytest框架


pytest常用的方法和原理

1.pytest的原理

  1. pytest插件基於pluggy模塊;pluggy有三個重要概念:HookspecMarker(用來定義hook函數),HookimplMarker(用來實現鈎子函數完成插件的邏輯)和PluginManager(用來負責注冊和調用插件的管理器);

 

2.pytest的規定

  1. 所有規范和實現均遵循pytest_前綴命名約定,從而易於區分和查找

3.加載插件的方式

  1. 內置插件:從代碼內部的_pytest目錄加載
  2. 外部插件(第三方插件):通過setuptools entry points機制發現的第三方插件模塊
  3.  conftest.py形式的本地插件:測試目錄下的自動模塊發現機制

4.pytest插件的順序

1.通過掃描命令行中的選項並阻止該插件被加載(即使內置插件也可以通過這種方式被阻止)。這是在正常的命令行解析之前發生的。-p no:name

2.加載所有的內置插件

3.通過預掃描命令行中,-p name選項,在實際解析命令行之前加載指定的插件

4.加載所有通過setuptools入口點注冊的插件(可設置環境變量PYTEST_DISABLE_PLUGIN_AUTOLOAD進行禁用,僅加載明確指定的插件)

5.加載通過環境變量PYTEST_PLUGINS指定的所有插件

6.加載通過命令行推斷出的所有confest.py文件:

-如果未指定測試路徑,則使用當前dir作為測試路徑

-如果存在指定測試路徑,那么加載conftest.py和test */conftest.py,相對於第一個測試路徑

注意,pytest是找不到藏在更深的子目錄里的confest.py文件的,最好將confest.py保存在頂級的測試或者項目的根目錄

7.通過在confest.py文件中的pytest_plugin指定的變量,遞歸加載所有的插件

5.安裝路徑

  • pytest第三方插件庫網站 https://docs.pytest.org/en/latest/plugins.html

 

 

  • PyPI下載 https://pypi.python.org(可以使用pytest、pytest-、-pytest作為搜索關鍵字來搜索插件)

 6.常用的插件簡單描述

  • pytest-rerunfailures:失敗用例重跑
  • pytest-html:生成xml/html格式的測試報告,存儲於用戶指定路徑
  • pytest-repeat:重復執行多次用例
  • pytest-assume:進行多次斷言
  • pytest-xdist:測試用例可以分布式執行,從而節省自動化測試時間
  • pytest-cov:覆蓋率報告,顯示哪些代碼行已經測試過,哪些還沒有
  • pytest-instafail:在測試運行期間報告失敗
  • pytest-timeout:根據函數標記或全局定義進行超時測試
  • pytest-ordering:設定執行順序。對於一些上下文依賴的,有時候可能需要設定一些特定執行順序
  • pytest-cache:重跑上次失敗的用例
  • pytest-autochecklog:自動生成測試日志
  • pytest-sugar:改變默認外觀,添加了一個進度條

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM