国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pytest接口測(cè)試自動(dòng)化框架

這篇具有很好參考價(jià)值的文章主要介紹了pytest接口測(cè)試自動(dòng)化框架。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

pytest簡介及安裝

pytest的使用規(guī)則

pytest運(yùn)行方式

主函數(shù)方式

命令行方式

跳過、標(biāo)記及預(yù)期失敗特殊場景處理

pytest前后置、夾具

pytest高級(jí)用法fixture

pytest接口斷言

pytest結(jié)合allure-pytest生成allure測(cè)試報(bào)告


pytest簡介及安裝

????????談起用例管理框架:python中的unittest、pytest;java中的testng 、junit都是比較熟悉的,本篇文章從安裝到使用到結(jié)合插件多樣化等層面來學(xué)習(xí)和介紹pytest這個(gè)自動(dòng)化測(cè)試框架。

????????使用pytest來作為我們的用例管理框架,自然是因?yàn)樗嬖诤芏鄡?yōu)勢(shì),總的來說就是:簡單靈活,容易上手、支持參數(shù)化,如下列出:

????????1. 能夠支持簡單的單元測(cè)試和復(fù)雜的功能測(cè)試,它可以和所以的自動(dòng)化測(cè)試工具selenium、、appium結(jié)合實(shí)現(xiàn)web自動(dòng)化、接口自動(dòng)化(pytest+requests)以及app自動(dòng)化

????????2. 跳過用例以及失敗用例重跑,測(cè)試用例的skip和xfail處理

????????3. 結(jié)合allure生成美觀的測(cè)試報(bào)告

????????4. 和jenkins持續(xù)集成

????????5. 有很多的強(qiáng)大的插件

????????????????pytest-html 用于生成html測(cè)試報(bào)告

????????????????pytest-xdist 多線程運(yùn)行

????????????????pytest-ordering 改變測(cè)試用例的執(zhí)行順序

????????????????pytest-rerunfailures 失敗用例重跑

????????????????allure-pytest 生成allure測(cè)試報(bào)告

????????????????pytest-selenium 集成selenium

? ? ? ? 我們一般實(shí)際項(xiàng)目開發(fā)當(dāng)中都會(huì)使用requrement.txt文件保存插件名稱,然后通過pip install -r requirements.txt進(jìn)行安裝所以插件。

????????這么好用的框架,安裝是第一步,我們使用以下命令進(jìn)行安裝。

##安裝
pip install pytest 
##查看版本號(hào)
pytest --version

pytest的使用規(guī)則

? ? ? ? 安裝完成,就可以使用該框架來幫助我們進(jìn)行更高效率的測(cè)試,在測(cè)試前,我們必須明白使用該框架要遵循的一些規(guī)則:

  • py文件名必須以test_開頭或者_(dá)test結(jié)尾
  • 類名必須以Test開頭
  • 測(cè)試用例(類內(nèi)的方法)/函數(shù)名(類外)必須以test_開頭

? ? ? ? 只有遵循這些規(guī)則,我們編寫的用例pytest才能認(rèn)識(shí)。才能更好的發(fā)揮它的作用:發(fā)現(xiàn)測(cè)試用例、執(zhí)行測(cè)試用例、判斷測(cè)試結(jié)果、生成測(cè)試報(bào)告。

pytest運(yùn)行方式

? ? ? ? pytest的運(yùn)行方式有兩種:主函數(shù)方式和命令行方式。

主函數(shù)方式

if_name_ == '_main_':
    pytest.main(['-vs'])

? ? ? ? 這種方式運(yùn)行,有一些命令需要知道

????????????????-v 輸出更加詳情的運(yùn)行信息

????????????????-s 輸出調(diào)試信息

????????????????-n=數(shù)字 多線程運(yùn)行

????????????????--reruns=數(shù)字 失敗用例重新運(yùn)行

????????????????--html=./report.html 生成html報(bào)告

命令行方式

  • 運(yùn)行包: pytest (pytest會(huì)自動(dòng)檢索當(dāng)前目錄下所有符合規(guī)則的測(cè)試用例)
  • 運(yùn)行一個(gè)模塊:pytest -vs test.py
  • 只執(zhí)行某一條測(cè)試用例:pytest 目錄/模塊.py::類名::用例名

????????使用命令行方式運(yùn)行測(cè)試用例,也可以添加相應(yīng)的參數(shù),

????????????????pytest --help: 獲取所有參數(shù)列表

????????????????-x: 用例一旦失敗(fail/error),就立刻停止

????????????????-m: 標(biāo)記用例

????????????????-k: 執(zhí)行包含某個(gè)關(guān)鍵字的測(cè)試用例

????????????????-v: 打印詳細(xì)日志

????????????????-s 打印輸出日志(一般-vs一塊使用)

????????????????--collect-only:(測(cè)試平臺(tái),pytest 自動(dòng)導(dǎo)入功能)

這些參數(shù)也不需要背過,但是要有個(gè)印象,需要的時(shí)候再進(jìn)行查找,來輔助我們測(cè)試。

跳過、標(biāo)記及預(yù)期失敗特殊場景處理

當(dāng)我們需要跳過一些測(cè)試用例時(shí),可以這么操作:

  • ship: 始終跳過該用例
    • 方式1: @pytest.mark.skp(reason="代碼沒有實(shí)現(xiàn)")
    • 方式2:在測(cè)試用代碼中添加判斷的語句def test_demo(): if not login(): pytest.skip("未登錄無法運(yùn)行該用例")
  • skipif: 遇到特定情況跳過該測(cè)試用例,需要給定條件@pytest.mark.skipif(條件="", reason="打印提示信息內(nèi)容")

當(dāng)然需要標(biāo)記一些用例的場景也很多:

  • 場景:只執(zhí)行符合要求的某一部分用例,把項(xiàng)目分為多個(gè)模塊,然后指定模塊名稱執(zhí)行
  • 解決:在測(cè)試用例的上方加上pytest裝飾器:@pytest.mark.標(biāo)簽名
  • 執(zhí)行 -m 標(biāo)記自定義的相關(guān)用例
    • pytest -s test_mark.py -m=標(biāo)簽名
    • pytest -s test_mark.py -m 標(biāo)簽名
    • pytest -s test_mark.py -m "not 標(biāo)簽名" (not:邏輯運(yùn)算,表示不是標(biāo)簽名的都去執(zhí)行

xfail: 遇到特殊情況,產(chǎn)生一個(gè)“期望失敗”輸出。

pytest前后置、夾具

? ? ? ? pytest可以實(shí)現(xiàn)前后置的效果。

????????setup/teardown 在每個(gè)用例之前和之后執(zhí)行一次

????????setup_class/teardown_class 在每個(gè)類之前和之后執(zhí)行一次

也可以實(shí)現(xiàn)部分用例的前置:

????????@pytest.fixtrue(scope="作用域",params="數(shù)據(jù)驅(qū)動(dòng)",autouse="自動(dòng)執(zhí)行",ids="自定義參數(shù)名字", name="重命名")

????????作用域:function(默認(rèn))、class、module、package/session

????????params :參數(shù)化( 支持,列表,元祖,字典列表,字典元祖)

????????autouse=True :自動(dòng)使用,默認(rèn)False

????????ids:當(dāng)使用params參數(shù)化時(shí) ,給每一個(gè)值設(shè)置一個(gè)交量名

????????name:給表示的是被@pytest fixture標(biāo)記的方法取一個(gè)別名

pytest高級(jí)用法fixture

1. fixture 作用

????????Fixture是在測(cè)試函數(shù)運(yùn)行前后,由pytest執(zhí)行的外殼函數(shù),代碼可以定制,滿足多變的測(cè)試需求,功能包括:

????????定于傳入測(cè)試中的數(shù)據(jù)集

????????配置測(cè)試前系統(tǒng)的初始狀態(tài)

????????為批量測(cè)試提供數(shù)據(jù)源等

Fixture是pytest用于將測(cè)試前后進(jìn)行預(yù)備,清理工作的代碼分類核心測(cè)試邏輯的一種機(jī)制

2.? fixture用法

????????類似setup teardown功能,但比setup teardown更靈活

????????直接通過函數(shù)名調(diào)用或者裝飾去@pytest.mark.usefixtures('test1')

????????允許使用多個(gè)Fixture

????????使用autouse自動(dòng)應(yīng)用,如果由返回值,需要穿fixture函數(shù)名

????????作用域 session>module>class>function

3.? pytest yield

????????以上fixture記錄的僅僅是setup,即測(cè)試用例運(yùn)行前的操作,如果需要加上teardown的操作,需要在fixture函數(shù)中加入 yield

pytest接口斷言

assert 'access_token' in rep.json() and 1==1

pytest結(jié)合allure-pytest生成allure測(cè)試報(bào)告

1. 官網(wǎng)下載allure:https://github.com/allure-framework/allure2/releases

放到?jīng)]有中文路徑下,然后把bin目錄配置到環(huán)境變量的path里面

配置完成,allure --version 可查看版本

2. 重啟pycharm,通過allure --version 驗(yàn)證;安裝allure-pytest

3. 執(zhí)行命令

  • 生成臨時(shí)的json文件的報(bào)告 在pytest.ini里加命令 addopts = -vs --alluredir ./temp
  • 通過臨時(shí)的json文件生成allure報(bào)告 在main函數(shù)里 os.system("allure generate ./reports -clean")

4.allure報(bào)告可進(jìn)行各種美化和定制

以上是學(xué)習(xí)記錄,持續(xù)加更...今天好熱,喝了芒果蛋蜜汁~文章來源地址http://www.zghlxwxcb.cn/news/detail-455920.html

到了這里,關(guān)于pytest接口測(cè)試自動(dòng)化框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 接口自動(dòng)化測(cè)試框架(pytest+allure+aiohttp+ 用例自動(dòng)生成)

    近期準(zhǔn)備優(yōu)先做接口測(cè)試的覆蓋,為此需要開發(fā)一個(gè)測(cè)試框架,經(jīng)過思考,這次依然想做點(diǎn)兒不一樣的東西。 接口測(cè)試是比較講究效率的,測(cè)試人員會(huì)希望很快能得到結(jié)果反饋,然而接口的數(shù)量一般都很多,而且會(huì)越來越多,所以提高執(zhí)行效率很有必要 接口測(cè)試的用例其實(shí)

    2024年02月07日
    瀏覽(23)
  • 接口自動(dòng)化測(cè)試框架開發(fā)(pytest+allure+aiohttp+ 用例自動(dòng)生成)

    接口自動(dòng)化測(cè)試框架開發(fā)(pytest+allure+aiohttp+ 用例自動(dòng)生成)

    近期準(zhǔn)備優(yōu)先做接口測(cè)試的覆蓋,為此需要開發(fā)一個(gè)測(cè)試框架,經(jīng)過思考,這次依然想做點(diǎn)兒不一樣的東西。 接口測(cè)試是比較講究效率的,測(cè)試人員會(huì)希望很快能得到結(jié)果反饋,然而接口的數(shù)量一般都很多,而且會(huì)越來越多,所以提高執(zhí)行效率很有必要 接口測(cè)試的用例其實(shí)

    2024年01月23日
    瀏覽(22)
  • 接口自動(dòng)化測(cè)試框架開發(fā) (pytest+allure+aiohttp+ 用例自動(dòng)生成)

    目錄 前言: 第一部分(整個(gè)過程都要求是異步非阻塞的) 讀取 yaml 測(cè)試用例 http 請(qǐng)求測(cè)試接口 收集測(cè)試數(shù)據(jù) 第二部分 動(dòng)態(tài)生成 pytest 認(rèn)可的測(cè)試用例 后續(xù)(yml 測(cè)試文件自動(dòng)生成) 前言: 開發(fā)一個(gè)接口自動(dòng)化測(cè)試框架是一個(gè)很好的方式,可以提高測(cè)試效率和準(zhǔn)確性。在這

    2024年02月16日
    瀏覽(49)
  • 一個(gè)簡單的接口自動(dòng)化測(cè)試框架:Python+Requests+Pytest+Allure

    一個(gè)簡單的接口自動(dòng)化測(cè)試框架:Python+Requests+Pytest+Allure

    project:api_test ——api_keyword ————api_key.py:接口驅(qū)動(dòng)類 ——case ————test_cases.py:測(cè)試套件和測(cè)試用例 ——report_allure( 無需創(chuàng)建 ):allure報(bào)告 ——result( 無需創(chuàng)建 ):測(cè)試用例運(yùn)行結(jié)果 ——VAR ————VAR.py:常量類 conftest.py:項(xiàng)目級(jí)別fixture main.py:主函數(shù)

    2024年02月03日
    瀏覽(95)
  • 軟件測(cè)試Pytest實(shí)現(xiàn)接口自動(dòng)化應(yīng)該如何在用例執(zhí)行后打印日志到日志目錄生成日志文件?

    軟件測(cè)試Pytest實(shí)現(xiàn)接口自動(dòng)化應(yīng)該如何在用例執(zhí)行后打印日志到日志目錄生成日志文件?

    Pytest可以使用內(nèi)置的logging模塊來實(shí)現(xiàn)接口自動(dòng)化測(cè)試用例執(zhí)行后打印日志到日志目錄以生成日志文件。以下是實(shí)現(xiàn)步驟: 1、在pytest配置文件(conftest.py)中,定義一個(gè)日志輸出路徑,并設(shè)置logging模塊。 2、在測(cè)試用例中調(diào)用logging模塊,輸入需要生成的日志信息。 3、運(yùn)行p

    2024年02月10日
    瀏覽(34)
  • Python+Pytest+Allure+Git+Jenkins數(shù)據(jù)驅(qū)動(dòng)接口自動(dòng)化測(cè)試框架

    Python+Pytest+Allure+Git+Jenkins數(shù)據(jù)驅(qū)動(dòng)接口自動(dòng)化測(cè)試框架

    一、接口基礎(chǔ) 接口測(cè)試是對(duì)系統(tǒng)和組件之間的接口進(jìn)行測(cè)試,主要是效驗(yàn)數(shù)據(jù)的交換,傳遞和控制管理過程,以及相互邏輯依賴關(guān)系。其中接口協(xié)議分為HTTP,RPC,Webservice,Dubbo,RESTful等類型。 接口測(cè)試流程 1、需求評(píng)審,熟悉業(yè)務(wù)和需求 2、開發(fā)提供接口文檔 3、編寫接口測(cè)

    2024年02月08日
    瀏覽(79)
  • (Python)Requests+Pytest+Allure接口自動(dòng)化測(cè)試框架從0到1搭建

    (Python)Requests+Pytest+Allure接口自動(dòng)化測(cè)試框架從0到1搭建

    前面,已經(jīng)學(xué)習(xí)了如何用SpringBoot寫接口以及與Mysql數(shù)據(jù)庫進(jìn)行交互,具體可查閱下面的這篇博客,今天學(xué)習(xí)一下基于Python的接口自動(dòng)化測(cè)試框架的搭建,主要包括以下內(nèi)容:利用request庫發(fā)送請(qǐng)求,請(qǐng)求數(shù)據(jù)參數(shù)化處理,還涉及到數(shù)據(jù)庫(Mysql+MongDB)方面的交互,包括如何取數(shù)

    2024年02月13日
    瀏覽(722)
  • Python+Requests+Pytest+Excel+Allure 接口自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)【框架之間的對(duì)比】

    Python+Requests+Pytest+Excel+Allure 接口自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)【框架之間的對(duì)比】

    ? ? ? ? --------UnitTest框架和PyTest框架的簡單認(rèn)識(shí)對(duì)比與項(xiàng)目實(shí)戰(zhàn)-------- 定義: Unittest是Python標(biāo)準(zhǔn)庫中自帶的單元測(cè)試框架,Unittest有時(shí)候也被稱為PyUnit,就像JUnit是Java語言的標(biāo)準(zhǔn)單元測(cè)試框架一樣,Unittest則是Python語言的標(biāo)準(zhǔn)單元測(cè)試框架。 Pytest是Python的另一個(gè)第三方單元測(cè)

    2024年02月09日
    瀏覽(94)
  • 震驚!強(qiáng)大的接口自動(dòng)化測(cè)試框架2.0,unittest與pytest無縫穿插對(duì)接,可以像postman一樣編寫代碼

    震驚!強(qiáng)大的接口自動(dòng)化測(cè)試框架2.0,unittest與pytest無縫穿插對(duì)接,可以像postman一樣編寫代碼

    接口自動(dòng)化測(cè)試項(xiàng)目2.0 本框架主要是基于 Python + unittest + ddt + HTMLTestRunner + log + excel + mysql + 企業(yè)微信通知 + Jenkins 實(shí)現(xiàn)的接口自動(dòng)化框架。 項(xiàng)目參與者: 陳勇志 技術(shù)支持郵箱: 262667641@qq.com 個(gè)人微信: Testing_player 個(gè)人博客地址: https://home.cnblogs.com/u/Nephalem-262667641 微信公眾號(hào):測(cè)

    2024年02月12日
    瀏覽(29)
  • Pytest自動(dòng)化測(cè)試框架---(單元測(cè)試框架)

    Pytest自動(dòng)化測(cè)試框架---(單元測(cè)試框架)

    unittest是python自帶的單元測(cè)試框架,它封裝好了一些校驗(yàn)返回的結(jié)果方法和一些用例執(zhí)行前的初始化操作,使得單元測(cè)試易于開展,因?yàn)樗囊子眯?,很多同學(xué)也拿它來做功能測(cè)試和接口測(cè)試,只需簡單開發(fā)一些功能(報(bào)告,初始化webdriver,或者h(yuǎn)ttp請(qǐng)求方法)便可實(shí)現(xiàn)。 但自

    2024年02月14日
    瀏覽(120)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包