基于python接口自動(dòng)化框架搭建_pytest+jenkins+allure

本接口測(cè)試框架使用python語言實(shí)現(xiàn),基于pytest測(cè)試框架,同時(shí)集成Jenkins和Allure

核心特性

  1. 封裝requests請(qǐng)求,使用裝飾器模式
  2. 詳細(xì)的請(qǐng)求日志輸出
  3. 環(huán)境與數(shù)據(jù)隔離,實(shí)現(xiàn)不同環(huán)境不同數(shù)據(jù)
  4. 測(cè)試用例支持參數(shù)化和數(shù)據(jù)驅(qū)動(dòng)機(jī)制
  5. 使用allure測(cè)試報(bào)告,測(cè)試結(jié)果統(tǒng)計(jì)報(bào)告簡(jiǎn)潔清晰
  6. 集成Jenkins,實(shí)現(xiàn)持續(xù)集成
  7. 連接企業(yè)和個(gè)人微信告警消息系統(tǒng)

文件結(jié)構(gòu)

  1. framework文件夾
    將requests庫(kù)進(jìn)行二次封裝,可直接使用裝飾器進(jìn)行請(qǐng)求,例子如下:


    請(qǐng)求.png
  2. api文件夾
    主要存放項(xiàng)目的所有接口請(qǐng)求,建議一個(gè)項(xiàng)目一個(gè)文件,思路為創(chuàng)建一個(gè)類,而初始化方法調(diào)用登錄接口,即創(chuàng)建一個(gè)類對(duì)象就創(chuàng)建了一個(gè)用戶,保證后續(xù)使用時(shí)可創(chuàng)建多個(gè)用戶


    api.png
  3. config文件夾
    主要用于環(huán)境配置,使用代碼方式可以實(shí)現(xiàn)環(huán)境的一鍵切換,同時(shí)也便于集成Jenkins

# env.py

class QAFC:
    # 用戶中心
    XG_USER_CENTER = 'http://****.ops.com'

    # 后臺(tái)登錄
    TUBOBO_MANAGE_LOGIN = 'http://******.ops.com'

    # 網(wǎng)關(guān)
    GATEWAY_URL = 'http://****.ops.com'

class UAT:
    # 用戶中心
    XG_USER_CENTER = 'http://******/xgusercenter'

    # 后臺(tái)登錄
    TUBOBO_MANAGE_LOGIN = 'http://*****.com'

    # 網(wǎng)關(guān)
    GATEWAY_URL = 'http://*****.com'

class DEV:
    # 新光用戶中心
    XG_USER_CENTER = 'http://*****.ops.com'

    # 后臺(tái)登錄
    TUBOBO_MANAGE_LOGIN = ''

    # 網(wǎng)關(guān)
    GATEWAY_URL = 'http://******/pos-engine'

# 設(shè)置環(huán)境,主要是為了后續(xù)Jenkins集成,讀取環(huán)境變量
env = os.getenv('environment', 'dev')

if env == "qafc":
    CONFIG = QAFC
elif env == "dev":
    CONFIG = DEV
elif env == "uat":
    CONFIG = UAT
else:
    CONFIG = QAFC
  1. testsuites文件夾
    存放測(cè)試用例


    testcase.png
  2. jsonSchema文件夾
    存放斷言返回字段以及類型的jsonSchema文件


    ya.png
  3. data文件夾
    寫測(cè)試用例時(shí)需要的一些固定id,唯一值,數(shù)據(jù)庫(kù)取值等,比如登錄賬戶,查看文章詳情需要id,審核時(shí)需要的id(先生成記錄然后數(shù)據(jù)庫(kù)讀取記錄 or teardown時(shí)修改數(shù)據(jù)庫(kù)狀態(tài)值進(jìn)行數(shù)據(jù)恢復(fù)),唯一的郵箱/手機(jī)號(hào)/身份證等......

  4. log文件夾
    存放日志

Jenkins集成與Allure測(cè)試報(bào)告

前置條件:
系統(tǒng)管理--插件管理:安裝插件allure、安裝Parameterized Trigger
系統(tǒng)管理--全局工具配置:配置Allure Commandline


image.png
  1. 新建自由風(fēng)格的job,進(jìn)入job配置頁(yè)面,參數(shù)化構(gòu)建
    這里的environment就是代碼中需要的環(huán)境變量,用于切換環(huán)境


    構(gòu)建.png
  2. 源碼管理


    配置git.png
  3. 配置分支


    分支參數(shù)化.png

4、構(gòu)建腳本


構(gòu)建.png
  1. 構(gòu)建后生成Allure測(cè)試報(bào)告


    構(gòu)建配置.png

    效果.png
  1. 構(gòu)建后觸發(fā)新的job(即告警系統(tǒng))
    告警系統(tǒng)為一個(gè)獨(dú)立的job,通過這個(gè)配置將當(dāng)前job的一些參數(shù)傳遞給后一個(gè)job


    告警.png
  2. 告警系統(tǒng)使用參數(shù)化構(gòu)建
    告警系統(tǒng)主要實(shí)現(xiàn)功能是實(shí)時(shí)發(fā)送構(gòu)建結(jié)果給企業(yè)或個(gè)人微信用戶,代碼邏輯主要是調(diào)用Jenkins API獲取構(gòu)建結(jié)果、調(diào)用企業(yè)微信API獲取token并發(fā)送消息


    告警系統(tǒng).png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容