pytest基礎知識----配置

1、自動化主流框架介紹

當前業界基于python語言的自動化框架主要包括:Unittest,Pytest這2種,其中:Unittest是Python標

準庫中自帶的單元測試框架,Unittest有時候也被稱為PyUnit,就像JUnit是Java語言的標準單元測試框

架一樣,Unittest則是Python語言的標準單元測試框架;Pytest是Python的另一個第三方單元測試庫。

它的目的是讓單元測試變得更容易,并且也能擴展到支持應用層面復雜的功能測試。

2.PytestUnittest的區別對比

3.Pytest下測試用例規則

盡管pytest下關于測試用例的方法、類、文件可以進行搜集規則的配置,但是默認的寫法是:

1.pytest將在當前目錄及其子目錄中運行所有格式為test.py或者test.py文件 2.測試方法/測試函數 默認必須是test開頭

3.測試類必須是Test開頭

4. 測試類不能有構造方法 init

希望大家可以默認使用上面的規則,與pytest默認的規則一致,以免產生其他問題

4.pytest的安裝

pytest安裝使用pip安裝即可

#安裝pytest
pip install pytest
#驗證安裝是否成功
pytest --version

?Pycharm運行模式設置

5.pytest中的斷言

pytest中的斷言使用assert結合python中的運算符進行斷言,常見的斷言有:

assert xx :判斷 xx 為真 is Ture
? assert not xx :判斷 xx 不為真 is not True / is False
? assert a in b :判斷 b 包含 a
? assert a not in b :判斷 b不包含 a
? assert a == b :判斷 a 等于 b
? assert a != b :判斷 a 不等于 b
? assert a >= b :判斷 a 大于等于 b
? assert a <= b :判斷 a 小于等于 b
? assert a > b :判斷 a 大于 b
? assert a < b :判斷 a 小于 b
其中 還可以在條件中加上 or (或者)、and( 和)的條件 。

?

6.pytest常用運行參數

pytest執行命令如下:

創建test_demo2.py文件,內容下

import pytest
def test_001():
print('aaaaaaaaaaaa')
pass
class Test_001:
def test_a_001(self):
pass
if __name__ == '__main__':
pytest.main()

不加任何參數,執行的命令:pytest.main(),顯示最簡單的運行結果

?-v:用于顯示用例執行的具體執行信息

-s:用于顯示用例中print()打印信息到控制臺

?

-k=字符串:用于顯示包含指定字符串的用例

?

-q:簡化輸出信息?

-x:如果出現一條測試用例失敗,則退出測試

?

目錄路徑/文件名::類名::方法':名指定目錄以及特定類或方法執行

?

--maxfail=num:設置測試用例失敗的閥值,失敗的用例數超過閥值,測試執行結束

?

?

-m=標記:執行標記的用例

-n=數字/auto:多線程運行用例,指定使用幾個進程跑,如果未auto會自動匹配機器的CPU邏輯核數

?

--reruns=失敗重跑次數,--reruns-delay=間隔秒數:失敗重跑設置?

--html=指定路徑/報告名稱.html:生成pytest-html報告

?

7.pytest.ini配置文件的使用

平時在執行的使用臨時添加這些常用運行產生可能會記不住,不便于使用;通常可以將這些常用參數寫

入pytest.ini(文件名稱及類型不能變更)配置文件中,讓pytest框架自動失敗里面的執行配置,方便使 用的使用,想要控制用例的執行,只需要修改參數即可,一般建議在項目目錄的根目錄下創建pytest.ini 文件

a.如果需要在pytest.ini文件中寫中文的注釋,有可能會亂碼,解決方案如下:

新建pytest.ini文件后,選擇文件,讓后點擊Pycharm上的file,找到File Properties,選擇下面的File

Encoding,在文件編碼語言中選擇GBK,點擊convert即可

b.pytestl.ini文件具體內容如下:

[pytest]

;-s:用于顯示用例中print()打印信息到控制臺

;-v:用于顯示用例執行的具體執行信息

;-k=字符串:用于顯示包含指定字符串的用例

;-q:簡化輸出信息

;-x:如果出現一條測試用例失敗,則退出測試

;-l:測試用例失敗時追蹤堆棧信息,所有局部變量及其值都會顯示出來

;-m=標記:執行標記的用例,一般不建議直接在addopts鍵下中跑,可以單獨使用markers鍵下配置

;-n=數字/auto:多線程運行用例,指定使用幾個進程跑,如果未auto會自動匹配機器的CPU邏輯核數跑,需

要先安裝pytest-xdist;pip install pytest-xdist

;--maxfail=num:設置測試用例失敗的閥值,失敗的用例數超過閥值,測試執行結束

;--reruns=失敗重跑次數,--reruns-delay=間隔秒數:失敗重跑設置

;--tb=style,style的值可以為no,line,short,no:不打印失敗信息,line:一行顯示錯誤信息,

short:簡短顯示錯誤信息

;--html=指定路徑/報告名稱.html:生成pytest-html報告

;----self-contained-html:建議添加,否則pytest測試報告的css文件是獨立的

;要注釋常用操作行為,可以在操作選項前面加上; 如下面的;-n=auto

;addopts:配置命令行選項

addopts = -s

? ? ? ? ? ? ? ? ?-v

? ? ? ? ? ? ? ? ?-l

? ? ? ? ? ? ? ? ?;?-m=smoke

? ? ? ? ? ? ? ? ?;?-n=auto

? ? ? ? ? ? ? ?--tb=short

? ? ? ? ? ? ? ?--reruns=3

? ? ? ? ? ? ? ?--reruns-delay=2

? ? ? ? ? ? ? --html=./report/html_report.html

? ? ? ? ? ? ? --self-contained-html

;testpaths:讀取測試用例的起始文件夾,多個路徑用空格分隔。注意:這些目錄下不能出現相同文件名,否

則會報錯

testpaths = ./testcases

;norecursedirs = .* venv test_001 *.egg dist build:指定不運行對應目錄下的測試用例,當與

testpaths目錄一致時,以testpaths目錄為主

norecursedirs = .* venv demo *.egg dist build

;--------------下面一般不建議寫入配置文件,因為測試用例一般是批量執行的-------------------

;python_files:設置讀取測試用例文件名的規則,運行指定文件名下的用例,可以改變文件名稱,如:

aaa.py

;python_files = test_*.py

;python_files:設置讀取測試用例類的規則,運行指定類名下的用例,可以改變文件名稱,如:Beeee*

;python_Class = Test*

;python_functions:設置讀取測試用例方法的規則,運行指定測試用例名,可以改變文件名稱,如:

abcd*

;python_functions = test

;-------------------------------------------------------------------------------

;markers:注冊指定的標記,用于測試用例中去使用,如果測試用例使用未注冊的標記,會給出警告

markers =

smoke : 冒煙測試用例

aaaa : 新增其他

ssss : XXXXXXXXXX

?配置好后,后續使用pytest執行測試用例,只需要執行:pytest.main()即可

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/77990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/77990.shtml
英文地址,請注明出處:http://en.pswp.cn/web/77990.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python實現簡易博客系統

下面我將介紹如何使用Python實現一個簡易的博客系統,包含前后端完整功能。這個系統將使用Flask作為Web框架,SQLite作為數據庫,并包含用戶認證、文章發布、評論等基本功能。 1. 系統架構設計 技術棧選擇 ??后端??:Flask (Python Web框架)??數據庫??:SQLite (輕量…

藍橋杯比賽

藍橋杯全國軟件和信息技術專業人才大賽是由工業和信息化部人才交流中心主辦&#xff0c;國信藍橋教育科技&#xff08;北京&#xff09;股份有限公司承辦的計算機類學科競賽。以下是其相關信息&#xff1a; 參賽對象 具有正式全日制學籍且符合相關科目報名要求的研究生、本科生…

高性能、云原生的對象存儲服務MinIO 詳細介紹與案例應用

什么是MinIO&#xff1f; MinIO是一個高性能、云原生的對象存儲服務&#xff0c;采用Apache License v2.0開源協議發布。它與Amazon S3云存儲服務API兼容&#xff0c;適合構建高性能、可擴展的存儲基礎設施。支持大規模非結構化數據的存儲&#xff0c;適合圖片、視頻、日志、備…

Transformer架構的解耦重組現象

技術演進圖譜與技術成熟度曲線 &#xff08;一&#xff09;架構創新范式迭代 1.1 Transformer架構的解耦重組現象 以2025年Opt模型為例&#xff0c;其通過引入強化學習微調模塊實現了傳統單層堆疊架構向"感知-推理分離"模式的轉型。實驗數據顯示&#xff0c;該架構…

Linux——線程(3)線程同步

一、線程同步的引入 通過上面的搶票系統我們發現&#xff0c;有的線程&#xff0c;進行工作&#xff08;掛鎖&#xff09;&#xff0c;當其馬上結束工作&#xff08;解鎖&#xff09;&#xff0c;發現外面有很多線程在排隊等著加鎖執行任務&#xff0c;這個線程解鎖后就立馬給…

基于go的簡單管理系統(增刪改查)

package mainimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql" )var db *sql.DBtype user struct {id intname stringage int }// 建立連接 func initDB() (err error) {dsn : "root:123456tcp(127.0.0.1:3306)/mysqltes…

HTN77A0原理圖提供聚能芯半導體禾潤一級代理技術支持免費送樣

在電源管理需求日益嚴苛的當下&#xff0c;禾潤 HTN77A0 以卓越性能脫穎而出。它不僅適配多種應用場景&#xff0c;還兼具高效節能與穩定輸出&#xff0c;為設備供能帶來革新體驗。 禾潤 HTN77A0 同步降壓變換器&#xff0c;憑借5V~130V 超寬輸入電壓范圍&#xff0c;打破傳統供…

小程序中的頁面跳轉

小程序中的頁面跳轉 在之前網頁的學習中&#xff0c;我們往往采用超鏈接&#xff0c;或者定義方法、函數等方式來實現頁面的跳轉&#xff0c;但是微信小程序中沒有超鏈接&#xff0c;那我們該如何實現呢&#xff1f;微信小程序的頁面跳轉包括兩個&#xff0c;一個是tabBar頁面…

在K8S遷移節點kubelet數據存儲目錄

默認k8s節點kubelet數據目錄在 /var/lib/kubelet&#xff0c;如果在部署前沒有做好規劃&#xff0c;其實默認就存儲在系統盤/分區下了&#xff0c;這樣會導致一個問題&#xff0c;如果數據量過大會導致kubelet服務異常&#xff0c;其次&#xff0c;系統盤下有一些系統服務引用&…

MySQL基礎關鍵_002_DQL(一)

目 錄 一、初始化 二、簡單查詢 1.部分語法規則 2.查詢一個字段 &#xff08;1&#xff09;查詢員工編號 &#xff08;2&#xff09;查詢員工姓名 3.查詢多個字段 &#xff08;1&#xff09;查詢員工編號、姓名 &#xff08;2&#xff09;查詢部門編號、名稱、位置 …

阿里云服務遷移實戰: 04-IP 遷移

普通過戶 如資料過戶按量付費EIP所述&#xff0c;如果原賬號是個人賬號&#xff0c;則目標賬號無限制&#xff0c;如果原賬號是企業賬號&#xff0c;則目標賬號必須為相同認證主體的企業賬號。 其主要操作就是&#xff0c;在原賬號發起過戶&#xff0c;在新賬號接收過戶。具體…

安恒安全培訓實習生,CTF方向面試題!

目均模擬真實CTF賽題&#xff0c;需結合動態調試與工具鏈&#xff08;pwntools/ROPgadget/one_gadget&#xff09;完成利用。 覆蓋棧、堆、格式化字符串、高級堆利用、沙箱逃逸五大方向&#xff0c;從基礎ROP到House of Apple&#xff0c;逐步提升對抗防護的能力。 題目1&…

【C++QT】Combo Box 組合框控件詳解

文章目錄 一、QComboBox&#xff08;Combo Box&#xff09;1. 基本用法2. 特性3. 信號與槽函數 二、QFontComboBox&#xff08;Font Combo Box&#xff09;1. 基本用法2. 特性3. 信號與槽函數 三、總結如果這篇文章對你有所幫助&#xff0c;渴望獲得你的一個點贊&#xff01; 在…

Best Video下載器——全能高清無水印視頻下載工具

在當今短視頻和流媒體盛行的時代&#xff0c;用戶經常遇到想要下載視頻卻受限于平臺限制的情況。無論是收藏喜歡的影視片段、保存有價值的教程&#xff0c;還是進行二次創作&#xff0c;一款高效、免費且支持多平臺的視頻下載工具顯得尤為重要。Best Video下載器正是為此而生&a…

AI音頻核爆!Kimi開源“六邊形戰士”Kimi-Audio,ChatGPT語音版?

音頻處理領域的天花板被撕開了。 剛剛&#xff0c;kimi 發布全新通用音頻基礎模型 Kimi-Audio&#xff0c;這款由月之暗面&#xff08;Moonshot AI&#xff09;推出的開源模型&#xff0c;在 24 小時內收獲 3.2 萬星標&#xff0c;不僅以 1.28% 詞錯率刷新語音識別紀錄&#xf…

安裝VMware虛擬機時出現報錯:

如果已在 BIOS/固件設置中禁用 Intel VT-x&#xff0c;或主機自更改此設置后從未重新啟動&#xff0c;則 Intel VT-x 可能被禁用。 1.解決的方法&#xff1a; BIOS 設置要求 為了使 VMware Workstation 支持用戶級別的監控并允許模塊 MonitorMode 成功啟動&#xff0c;需確保…

基于ESP32 S3 + PVDF采集呼吸心率

壓電薄膜可以采集到微動特征&#xff0c;壓阻傳感器可以采集到是否有大重量壓力&#xff0c;利用這個特性實現類似于床帶采集呼吸心率&#xff0c;實現生命體征檢測功能 ESP32 S3 PVDF實現生命體征檢測帶 硬件&#xff1a; ESP32 S3PVDF壓敏壓阻涂鴉傳感器&#xff08;可選支…

多模態大語言模型arxiv論文略讀(五十)

Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ?? 論文標題&#xff1a;Pensieve: Retrospect-then-Compare Mitigates Visual Hallucination ?? 論文作者&#xff1a;Dingchen Yang, Bowen Cao, Guang Chen, Changjun Jiang ?? 研究機構: 同濟大學…

智能駕駛新時代:NVIDIA高級輔助駕駛引領未來出行安全

智能駕駛新時代&#xff1a;NVIDIA高級輔助駕駛引領未來出行安全 在全球汽車產業數字化轉型的時代潮流中&#xff0c;高級輔助駕駛技術已逐漸成為推動產業革新的核心動力。作為這一領域的領導者之一&#xff0c;NVIDIA通過其先進的技術解決方案&#xff0c;正在積極塑造未來的…

總結小程序的坑

小程序中的wxss中 background不能使用本地圖片 解決方法&#xff1a; 使用 Base64 編碼&#xff08;適合小圖片&#xff09;使用網絡圖片&#xff0c; 網絡圖片需要用https用 image 標簽替代 分包的圖片主包不能使用&#xff0c;這是分包中的圖片資源默認不能被主包或其他分包直…