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

Python接口自動化搭建過程,含request請求封裝

這篇具有很好參考價值的文章主要介紹了Python接口自動化搭建過程,含request請求封裝。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

接口測試自動化好處

顯而易見的好處就是解放雙手??。

  1. 可以在短時間內(nèi)自動執(zhí)行大量的測試用例
  2. 通過參數(shù)化和數(shù)據(jù)驅(qū)動的方式進行測試數(shù)據(jù)的變化,提高測試覆蓋范圍
  3. 快速反饋測試執(zhí)行結(jié)果和報告
  4. 支持持續(xù)集成和持續(xù)交付的流程
使用Requests+pytest+allure搭建測試框架的目的
  1. 簡化接口測試編寫

    Requests庫是 Python 的一個優(yōu)雅且簡單的 Http庫,可以很方便地發(fā)送 http 請求,接收和處理接口返回的響應(yīng)數(shù)據(jù)

  2. 強大的斷言和校驗功能

    Pytest 是一個功能強大的測試框架,提供豐富的斷言功能,用于驗證接口響應(yīng)的正確性。

  3. 美觀的測試報告

    Allure是一個開源的測試報告生成工具,可以生成漂亮、交互式和易于理解的測試報告。

  4. 持續(xù)集成

    使用Requests+Pytest+Allure搭建的框架可以與持續(xù)集成和自動化流程集成,實現(xiàn)快速的接口測試。

搭建過程
環(huán)境準備
  • 安裝requests、pytest、allure的方法

    pip install requests

    pip install pytest

    pip install allure-pytest

    requests、pytest 的安裝很簡單,這里主要講講如何安裝 allure。

  • Windows 安裝 allure

    java 安裝

  1. 下載JDK

    首先我們需要下載 java 開發(fā)工具包 JDK,,在下載頁面中根據(jù)自己的系統(tǒng)選擇對應(yīng)的版本,本文以 Window 64位系統(tǒng)為例:

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

 下載后工具包 jdk 后根據(jù)提示進行即可,安裝 jdk 的時候也會安裝 jre,一并安裝就可以了。安裝過程中可以自定義安裝路徑等信息,我選擇的安裝目錄為 D:\Program Files \
  1. 配置環(huán)境變量

    1. 安裝完成后哦,搜索框輸入”編輯系統(tǒng)環(huán)境變量“。(或"此電腦",右鍵后選擇"屬性",選擇"高級系統(tǒng)設(shè)置"

    2. 在系統(tǒng)屬性里,點擊"環(huán)境變量"

      在系統(tǒng)變量中設(shè)置屬性 JAVA_HOME

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

3. PATH 設(shè)置

%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin;

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

allure 命令行工具安裝

allure命令行工具 allure是一個命令行工具,需要去github上下載最新版 github.com/allure-fram…

下載完成后,解壓,我是放在D盤

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

把bin目錄添加到環(huán)境變量Path下

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

注意: cmd命令行運行 java、javac、allure可能表現(xiàn)安裝未成功,出現(xiàn)這種情況時可以先選擇重啟試試。

框架整體結(jié)構(gòu)
名稱 說明
api api
config 配置文件,存放setting.ini配置文件,主要配置接口域名和mysql數(shù)據(jù)庫信息
core request 請求方法封裝、關(guān)鍵字返回結(jié)果類
data 存放測試用例數(shù)據(jù)
log 日志
report 測試報告數(shù)據(jù)
testcase 測試方法
utils 工具類
pytest.ini pytest 配置文件,為運行項目的相關(guān)參數(shù)
requirements.txt 相關(guān)依賴包及版本

測試代碼運用了代碼分層思想,具體往后看。

  • 在testcases文件夾中,不做接口請求和返回值的操作,用一個方法A代替,參數(shù)為請求參數(shù)
  • 方法A中調(diào)用B方法,B方法接收組裝好的參數(shù)(包含headers)
  • B方法調(diào)用C方法,C方法接收請求參數(shù),參數(shù)為接口路徑(不包含域名)和 **kwargs(接收B方法中組裝好的參數(shù)) C方法參數(shù)為url,接口請求參數(shù): **kwargs
測試用例

創(chuàng)建測試文件并編寫測試方法

(1).py測試文件必須以“test ”開頭(或“ test”結(jié)尾)

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

(3)測試類必須以Test開頭

  • 使用 Pytest 提供的裝飾器 “@pytest.mark” 來標記測試用例,其中“@pytest.mark.parametrize ”用于參數(shù)化測試用例,通過裝飾器可以將多個參數(shù)傳遞給測試函數(shù)。
  • @allure.feature(“”) 是Allure插件提供的一個裝飾器,用于定義測試報告中的feature(敏捷開發(fā)場景)。通過使用該裝飾器,可以將測試用例按照功能模塊進行分類展示,提供測試報告可讀性。

如下是用戶登錄的一個例子,test_get_token 函數(shù)被標記為參數(shù)化測試用例,通過”@pytest.mark.parametrize“傳遞一個參數(shù)data和對應(yīng)的值。在測試函數(shù)中,可以直接使用傳遞的參數(shù)進行測試邏輯,驗證請求接口返回是否通過,斷言返回狀態(tài)和登錄令牌。

## test_user.py
@allure.feature("用戶模塊")
class TestUser:
    @pytest.mark.parametrize("data", get_data()['user_login'])
    @allure.story("登錄-獲得token")
    @allure.title("登錄獲取令牌測試用例")
    def test_get_token(self,data):
        result = login(data)
        assert result['body']['success'] is True
        assert len(result['body']['accessToken']) != 0 
發(fā)送請求和處理響應(yīng)

調(diào)用requests庫發(fā)送http請求,將data參數(shù)中的請求方式、參數(shù)和請求體通過調(diào)用 api_util_new.do_request()發(fā)送請求,使用response接收接口請求的響應(yīng)結(jié)果,并將響應(yīng)結(jié)果處理后返回。

def login(data):
    """
    獲取令牌
    :param json_data
    :return:
    """
    response = client_api.do_request(url=data['url'], method=data['method'], json=data['data'])
    return process_response(response)

以下是對于接口請求響應(yīng)結(jié)果的處理,使用字典ResultResponse存儲處理后的response,檢查請求響應(yīng)狀態(tài)代碼以確定請求是否成功,并提取響應(yīng)內(nèi)容通過日志打印出來方便定位問題。

def process_response(response):
    ResultResponse = {}
    if response.status_code == 200 or response.status_code == 201:
        ResultResponse['success'] = True
        ResultResponse['body'] = response.json()
    else:
        ResultResponse['success'] = False
        logger.info("請求狀態(tài)異常")
    logger.info("響應(yīng)內(nèi)容>>>:" + json.dumps(response.json(), ensure_ascii=False))
    return ResultResponse

封裝 HTTP 請求的類 “RestClient”,在類方法 do_request() 中,使用 request() 方法接收接口url,接口請求 method 和可選的其他關(guān)鍵字參數(shù)。在 request() 方法中,傳入的 method(GET、POST、PUT、DELETE) ,使用 requests 庫發(fā)送相應(yīng)的 http 請求。

class RestClient:            
    def do_request(self, url, method,**kwargs):
        return self.request(url, method, **kwargs)     
    
    def request(self, url, method, **kwargs):
        if method == "GET":
            return requests.get(self.api_root_url + url, **kwargs)
        if method == "POST":
            return requests.post(self.api_root_url + url, **kwargs)
        if method == "PUT":
            return requests.put(self.api_root_url + url, **kwargs)
        if method == "DELETE":
            return requests.delete(self.api_root_url + url, **kwargs)
client_api = RestClient()
數(shù)據(jù)驅(qū)動測試和校驗
  • 通過 yaml 文件存放測試用例數(shù)據(jù),如下user_login_body 為用戶登錄數(shù)據(jù)列表,其中url為api地址,method 為請求方式,data為請求參數(shù)
user_login_body:
  - url: /api/signin
    method: POST
    data: {
      username: user
      password: pwd
    }
json轉(zhuǎn)yaml格式的方法網(wǎng)上一堆,比如 bejson,而校驗 yaml 書寫格式的工具,可以使用 YamlLint
  • 通過裝飾器 @pytest.mark.parametrize,運行測試時會獲取測試用例的數(shù)據(jù)去執(zhí)行測試

  • 校驗接口返回結(jié)果的正確性通常使用斷言來實現(xiàn)。根據(jù)接口返回的數(shù)據(jù)結(jié)構(gòu),可以使用適當?shù)臄嘌院瘮?shù)來校驗各個字段的值是否符合預(yù)期。

    Pytest 支持使用 assert 關(guān)鍵字進行斷言assert 函數(shù),Pytest 提供了一些內(nèi)置的斷言函數(shù)

    • assertEqual(a, b)
    • assertTrue(x)
    • assertFalse(x)
    • assertIs(a, b)
    • assertIsNone(x)
    • assertIn(a, b)
    • assertNotIn(a, b)
報告生成展示

在命令行執(zhí)行命令:pytest 運行用例后,會得到一個測試報告的原始文件,但這個時候還不能打開成HTML的報告,還需要在項目根目錄下,執(zhí)行命令啟動 allure 服務(wù)。下圖是個結(jié)果測試結(jié)果的展示示例。

Python接口自動化搭建過程,含request請求封裝,自動化測試,軟件測試,接口自動化測試,python,自動化,開發(fā)語言,接口測試,自動化接口測試

allure測試報告框架是一個開源的測試報告生成工具,它提供了豐富的功能和靈活的配置選項,用于生成美觀、可交互和易于理解的測試報告。基本過程如下:

  • 框架集成:通過與 Pytest 集成 ,利用 Pytest 框架提供的插件機制,將測試結(jié)果和相關(guān)信息收集起來。
  • 結(jié)果收集: allure 收集 Pytest 生成的測試結(jié)果數(shù)據(jù),結(jié)果數(shù)據(jù)中包括測試用例的執(zhí)行狀態(tài)、斷言結(jié)果、日志信息等。
  • 報告生成: allure 使用收集到的數(shù)據(jù)轉(zhuǎn)換為 xml 格式,并利用報告模板和樣式表定義,渲染出漂亮的 html 文件。
持續(xù)集成
  • Jenkins中安裝Allure插件 Allure Jenkins Plugin

  • 添加接口自動化測試的代碼

  • 觸發(fā)規(guī)則我選擇的是準備發(fā)布打tag 后,自動執(zhí)行構(gòu)建

  cd ${WORKSPACE}
  pytest
總結(jié)

本項目在實現(xiàn)過程中,把整個項目拆分成請求方法封裝、HTTP接口封裝、關(guān)鍵字封裝、測試用例等模塊。

首先利用Python把HTTP接口封裝成Python接口,接著把這些Python接口組裝成一個個的關(guān)鍵字,再把關(guān)鍵字組裝成測試用例,而測試數(shù)據(jù)則通過YAML文件進行統(tǒng)一管理,然后再通過Pytest測試執(zhí)行器來運行這些腳本,并結(jié)合Allure輸出測試報告。文章來源地址http://www.zghlxwxcb.cn/news/detail-731050.html

【干貨分享】接口自動化測試-Pytest核心固件Fixture詳解以及應(yīng)用實戰(zhàn)

到了這里,關(guān)于Python接口自動化搭建過程,含request請求封裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • python+requests接口自動化框架的實現(xiàn)

    python+requests接口自動化框架的實現(xiàn)

    為什么要做接口自動化框架 1、業(yè)務(wù)與配置的分離 2、數(shù)據(jù)與程序的分離;數(shù)據(jù)的變更不影響程序 3、有日志功能,實現(xiàn)無人值守 4、自動發(fā)送測試報告 5、不懂編程的測試人員也可以進行測試 正常接口測試的流程是什么? 確定接口測試使用的工具-----配置需要的接口參數(shù)----

    2024年03月13日
    瀏覽(29)
  • Python接口自動化之request請求封裝

    Python接口自動化之request請求封裝

    我們在做自動化測試的時候,大家都是希望自己寫的代碼越簡潔越好,代碼重復(fù)量越少越好。那么,我們可以考慮將request的請求類型(如:Get、Post、Delect請求)都封裝起來。這樣,我們在編寫用例的時候就可以直接進行請求了。 我們先來看一下Get、Post、Delect等請求的源碼,

    2024年02月13日
    瀏覽(22)
  • 接口自動化測試:Python+Pytest+Requests+Allure

    接口自動化測試:Python+Pytest+Requests+Allure

    本項目實現(xiàn)了對Daily Cost的接口測試: Python+Requests 發(fā)送和處理HTTP協(xié)議的請求接口 Pytest 作為測試執(zhí)行器 YAML 管理測試數(shù)據(jù) Allure 來生成測試報告。 本項目是參考了pytestDemo做了自己的實現(xiàn)。 項目結(jié)構(gòu) api : 接口封裝層,如封裝HTTP接口為Python接口 commom : 從文件中讀取數(shù)據(jù)等各種

    2024年02月09日
    瀏覽(128)
  • python3+requests+unittest接口自動化測試

    python3+requests+unittest接口自動化測試

    python3 + pycharm編輯器 (該套代碼只是簡單入門,有興趣的可以不斷后期完善) (1)run.py主運行文件,運行之后可以生成相應(yīng)的測試報告,并以郵件形式發(fā)送; (2)report文件夾存放測試結(jié)果報告; (3)unit_test文件夾是存放測試用例(demo.py和test_unittest.py用例用法介紹,實際

    2024年02月09日
    瀏覽(26)
  • python接口自動化測試 requests庫的基礎(chǔ)使用

    python接口自動化測試 requests庫的基礎(chǔ)使用

    目錄 簡單介紹 Get請求 Post請求 其他類型請求 自定義headers和cookies SSL 證書驗證 響應(yīng)內(nèi)容 獲取header 獲取cookies requests庫簡單易用的HTTP庫 ? 格式: ?requests.get(url)? 注意: 若需要傳請求參數(shù),可直接在?url?最后的???后面,也可以調(diào)用?get()?時多加一個參數(shù)?params?,傳入請求

    2023年04月26日
    瀏覽(22)
  • Python接口自動化 ? Request庫詳解和框架封裝

    Python接口自動化 ? Request庫詳解和框架封裝

    從招聘需求我們不難看出目前市面上對軟件測試人員的要求: 綜合型的測試人才、側(cè)重業(yè)務(wù)能力 代碼能力(在自動化框架這一塊有一定的建樹) 開發(fā)思維(代碼的封裝能力) 而接口測試或者接口自動化是每一個面試環(huán)節(jié)都必問的,比如: 主流接口測試工具 Postman+Newman+Jen

    2023年04月21日
    瀏覽(25)
  • 【Python+requests+unittest+excel】實現(xiàn)接口自動化測試框架

    【Python+requests+unittest+excel】實現(xiàn)接口自動化測試框架

    一、框架結(jié)構(gòu): ?工程目錄 二、Case文件設(shè)計 三、基礎(chǔ)包 base 3.1 封裝get/post請求(runmethon.py) 3.2 封裝mock(mock.py) 四、數(shù)據(jù)操作包 operation_data 4.1 獲取excel單元格中的內(nèi)容(get_data.py) ? 4.2?獲取excel中每個列(data_config.py) 4.3?解決數(shù)據(jù)依賴(dependent.py?) 五、工具類包 to

    2024年02月15日
    瀏覽(25)
  • Python+Requests+Pytest+YAML+Allure實現(xiàn)接口自動化

    Python+Requests+Pytest+YAML+Allure實現(xiàn)接口自動化

    本項目實現(xiàn)接口自動化的技術(shù)選型:Python+Requests+Pytest+YAML+Allure ,主要是針對之前開發(fā)的一個接口項目來進行學(xué)習(xí),通過 Python+Requests 來發(fā)送和處理HTTP協(xié)議的請求接口,使用 Pytest 作為測試執(zhí)行器,使用 YAML 來管理測試數(shù)據(jù),使用 Allure 來生成測試報告 本項目在實現(xiàn)過程中,把

    2024年02月11日
    瀏覽(791)
  • python接口自動化之request請求,如何使用 Python調(diào)用 API?

    python接口自動化之request請求,如何使用 Python調(diào)用 API?

    ? ? 尊重原創(chuàng),轉(zhuǎn)載請注明出處,謝謝??!

    2024年02月08日
    瀏覽(38)
  • Python+Requests+PyTest+Excel+Allure 接口自動化測試實戰(zhàn)

    Python+Requests+PyTest+Excel+Allure 接口自動化測試實戰(zhàn)

    本文主要介紹了Python+Requess+PyTest+Excel+Allure 接口自動化測試實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 Unittest是Python標準庫中自帶的單元測試框架,Unittest有時候也被稱為PyUnit,就像

    2024年02月07日
    瀏覽(101)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包