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

python+pytest接口自動化之測試函數(shù)、測試類/測試方法的封裝

這篇具有很好參考價值的文章主要介紹了python+pytest接口自動化之測試函數(shù)、測試類/測試方法的封裝。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

今天呢,筆者想和大家聊聊python+pytest接口自動化中將代碼進行封裝,只有將測試代碼進行封裝,才能被測試框架識別執(zhí)行。

例如單個接口的請求代碼如下:

import requests

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
}

url = "https://mp.toutiao.com/profile_v4/"
res = requests.get(url=h_url, headers=headers)

假設我們需要將上面這段代碼編寫成測試框架能執(zhí)行的測試用例,僅僅只是這樣寫代碼顯然是不夠的,還需要進行如下補充:

  • 需要將代碼封裝成單元測試框架 (pytest或unittest) 能識別的測試函數(shù)或測試類,否則將不會被識別執(zhí)行。
  • 需要加上斷言,即結(jié)果與期望之間的對比,單元測試框架才能判定該用例執(zhí)行結(jié)果是否通過,結(jié)果==期望則說明通過,否則失敗。

python中函數(shù)以及類的封裝這里不做過多說明,這篇文章的目的是讓大家明白在接口自動化測試中一般怎樣封裝測試代碼。

一、測試用例封裝的一般規(guī)則

測試用例的封裝有兩種,測試函數(shù)和測試類,封裝的一般規(guī)則如下:

  • 一個測試函數(shù)對應一條測試用例。
  • 測試類中可定義多個測試方法,一個測試方法對應一條測試用例,測試類可以看作是一個測試用例集。
  • pytest中測試函數(shù)或測試方法的命名必須以test開頭,測試類名必須以Test開頭。具體命名規(guī)則可以參考我之前的文章pytest(3)-測試命名規(guī)則。
  • 對于單接口的測試校驗,一個單接口的測試用例只包含一個接口請求,即將一個接口請求封裝成一個測試函數(shù)或測試方法。
  • 對于場景(多接口) 的測試校驗,一條場景測試用例需請求多個接口,因此需要將多個接口請求封裝在同一個測試函數(shù)或方法中。
  • 一般封裝一個接口的正向校驗、異常校驗封裝成不同的方法,并封裝在同一個測試類中。如定義一個登陸的測試類,正確用戶名、密碼請求封裝成一個方法 (即一條測試用例),正確用戶名、錯誤密碼請求封裝成另一個方法 (即另一條測試用例)。
  • 也可以將某個功能點或功能相關(guān)聯(lián)的接口用例封裝在同一個測試類中。比如個人中心涉及到的接口,可以封裝在同一個測試類中

二、測試函數(shù)的封裝

一般而言,一個測試函數(shù)對應一條用例。上面的代碼編寫成一條測試用例,示例如下:

強調(diào),pytest中測試函數(shù)命名必須以test開頭,如test_get_home。

三、測試類/方法的封裝

一個測試類相當于一個測試用例集,類中的每個方法對應一條測試用例。以登錄接口為例,封裝成測試類,示例如下:

強調(diào),pytest中測試類命名需要以Test開頭,如TestLogin,且測試類中不能有init方法。測試類中測試方法必須以test開頭,如test_login_normal。

四、示例代碼

pytest中可以使用命令行或者使用代碼方式即 pytest.main() 執(zhí)行用例,具體可參考文章pytest(1)-簡介。

完整的示例代碼如下:

import requests
import pytest
import json

def test_get_home():
    '''
    請求首頁接口
    :return:
    '''
    headers = {
        "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36"
    }

    url = "https://www.cnblogs.com/lfr0123/"
    res = requests.get(url=url, headers=headers)
    # 斷言,判斷返回結(jié)果的code是否等于200,當然實際接口測試中一般返回結(jié)果中還會有別的字段需要斷言
    assert res.status_code == 200

class TestLogin:
    '''
    登錄接口校驗
    '''
    url = "http://127.0.0.1:5000/login"
    headers = {"Content-Type": "application/json;charset=utf8"}

    def test_login_normal(self):
        '''正確用戶名、正確密碼登錄'''
        data = {
            "username": "AndyLiu",
            "password": "123456"
        }
        res = requests.post(url=self.url, json=data, headers=self.headers)
        # 斷言
        assert res.status_code == 200
        assert json.loads(res.text)["token"]

    def test_login_error(self):
        '''正確用戶名、錯誤密碼登錄'''
        data = {
            "username": "AndyLiu",
            "password": "111111"
        }
        res = requests.post(url=self.url, json=data, headers=self.headers)
        # 斷言
        assert res.status_code == 200
        assert not json.loads(res.text)["token"]

if __name__ == '__main__':
    pytest.main()

總結(jié)

  • 測試函數(shù)、測試類/測試方法的封裝,其實不管是什么單元測試框架,遵循的方式都一樣。
  • 而在命名方式上各有自己的要求,比如pytest與unittest中測試命名方法有一定的區(qū)別。
  • 把一個有自己斷言的函數(shù)或方法看成是一條測試用例,那么測試類其實就是一個含有一條或者多條測試用例的測試用例集,類中的每個方法對應一條測試用例。
  • 一個測試類中放置哪些測試方法,換句話說一個測試用例集中應該包含哪些測試用例,這個可以按照項目自身情況而定,也可按照測試人員自己的想法而定,主旨就是要清晰明了

最后這篇文章就到這里了,喜歡的小伙伴可以點贊收藏加關(guān)注喲,關(guān)注我每天給你不同的驚喜。

最后感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰(zhàn)倉庫,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

python+pytest接口自動化之測試函數(shù)、測試類/測試方法的封裝文章來源地址http://www.zghlxwxcb.cn/news/detail-837729.html

如果你想學習軟件測試和需要軟件測試資料,歡迎加入扣扣交流群:731789136,里面可以免費領取軟件測試+自動化測試資料+軟件測試面試寶典+簡歷模版+實戰(zhàn)項目+面試刷題工具和大佬答疑解惑,我們一起交流一起學習!

到了這里,關(guān)于python+pytest接口自動化之測試函數(shù)、測試類/測試方法的封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關(guān)文章

  • Python接口自動化測試-篇1(postman+requests+pytest+allure)

    Python接口自動化測試-篇1(postman+requests+pytest+allure)

    Python接口自動化測試是一種使用Python編程語言來編寫腳本以自動執(zhí)行針對應用程序接口(APIs)的測試過程。這種測試方法專注于檢查系統(tǒng)的不同組件或服務之間的交互,確保它們按照預期規(guī)范進行通信,而不涉及用戶界面(UI)的驗證。 目錄 一、接口測試基礎 二、工具實現(xiàn)

    2024年04月17日
    瀏覽(93)
  • 一個簡單的接口自動化測試框架:Python+Requests+Pytest+Allure

    一個簡單的接口自動化測試框架:Python+Requests+Pytest+Allure

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

    2024年02月03日
    瀏覽(95)
  • Python+Pytest+Allure+Git+Jenkins數(shù)據(jù)驅(qū)動接口自動化測試框架

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

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

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

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

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

    2024年02月13日
    瀏覽(722)
  • 接口自動化測試-Python+Requests+Pytest+YAML+Allure配套擼碼(詳細)

    接口自動化測試-Python+Requests+Pytest+YAML+Allure配套擼碼(詳細)

    接口自動化框架:Python+Requests+Pytest+YAML+Allure 通過 Python+Requests 來發(fā)送和處理HTTP協(xié)議的請求接口,使用 Pytest 作為測試執(zhí)行器,使用 YAML 來管理測試數(shù)據(jù),使用 Allure 來生成測試報告。 框架結(jié)構(gòu) api ==== 接口封裝層,如封裝HTTP接口為Python接口 common ==== 各種工具類 core ==== reques

    2024年02月15日
    瀏覽(98)
  • Python+Requests+Pytest+Excel+Allure 接口自動化測試項目實戰(zhàn)【框架之間的對比】

    Python+Requests+Pytest+Excel+Allure 接口自動化測試項目實戰(zhàn)【框架之間的對比】

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

    2024年02月09日
    瀏覽(94)
  • 自動化測試(三):接口自動化pytest測試框架

    自動化測試(三):接口自動化pytest測試框架

    API:Application Programming Interface 接口自動化按照自動化的工具可分為 基于 接口測試工具 的接口自動化 eg1:Postman+Newman+git/Svn+Jenkins(基于Javascript語言)接口自動化 Postman :創(chuàng)建和發(fā)送 API 請求,并對響應進行斷言和驗證。 Newman : Postman 的命令行工具,它允許測試人員在沒有界

    2024年02月10日
    瀏覽(94)
  • pytest接口測試自動化框架

    目錄 pytest簡介及安裝 pytest的使用規(guī)則 pytest運行方式 主函數(shù)方式 命令行方式 跳過、標記及預期失敗特殊場景處理 pytest前后置、夾具 pytest高級用法fixture pytest接口斷言 pytest結(jié)合allure-pytest生成allure測試報告 ????????談起用例管理框架:python中的unittest、pytest;java中的test

    2024年02月06日
    瀏覽(100)
  • 接口自動化測試:pytest基礎講解

    接口自動化測試:pytest基礎講解

    只靠前端測試很難確保很?的覆蓋率。接?測試,可以模擬出各種類型的?參,包括?些在前端模擬不出來的?參,還能根據(jù)接??檔的定義,設計出相對完善的?參值,在接?層保證質(zhì)量,剩余的絕?多數(shù)問題就是應?程序??的交互和數(shù)據(jù)展?問題。 接?測試相對于交互

    2024年02月07日
    瀏覽(23)
  • 接口自動化測試實戰(zhàn)之pytest框架+allure講解

    接口自動化測試實戰(zhàn)之pytest框架+allure講解

    本文章主要會講解Python中pytest框架的講解,介紹什么是pytest、為何要測試、為何使用以及參考和擴展等等,話不多說,咱們直接進入主題喲。 pytest是一款單元測試框架,在編程過程中,單元主要指的是代碼中最小的組成部分,例如函數(shù)或類,在面向?qū)ο笾校钚〉膯卧褪穷?/p>

    2024年02月05日
    瀏覽(241)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包