1. 程式人生 > >基於python介面自動化框架搭建_pytest+jenkins+allure

基於python介面自動化框架搭建_pytest+jenkins+allure

本介面測試框架使用python語言實現,基於pytest測試框架,同時整合Jenkins和Allure

核心特性

  1. 封裝requests請求,使用裝飾器模式
  2. 詳細的請求日誌輸出
  3. 環境與資料隔離,實現不同環境不同資料
  4. 測試用例支援引數化和資料驅動機制
  5. 使用allure測試報告,測試結果統計報告簡潔清晰
  6. 整合Jenkins,實現持續整合
  7. 連線企業和個人微信告警訊息系統

檔案結構

 

  1. framework資料夾
    將requests庫進行二次封裝,可直接使用裝飾器進行請求,例子如下:

2.api資料夾
主要存放專案的所有介面請求,建議一個專案一個檔案,思路為建立一個類,而初始化方法呼叫登入介面,即建立一個類物件就建立了一個使用者,保證後續使用時可建立多個使用者

 

3.config資料夾
主要用於環境配置,使用程式碼方式可以實現環境的一鍵切換,同時也便於整合Jenkins 

# env.py

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

    # 後臺登入
    TUBOBO_MANAGE_LOGIN = 'http://******.ops.com'

    # 閘道器
    GATEWAY_URL = 'http://****.ops.com'

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

    # 後臺登入
    TUBOBO_MANAGE_LOGIN = 'http://*****.com'

    # 閘道器
    GATEWAY_URL = 'http://*****.com'

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

    # 後臺登入
    TUBOBO_MANAGE_LOGIN = ''

    # 閘道器
    GATEWAY_URL = 'http://******/pos-engine'

# 設定環境,主要是為了後續Jenkins整合,讀取環境變數
env = os.getenv('environment', 'dev')

if env == "qafc":
    CONFIG = QAFC
elif env == "dev":
    CONFIG = DEV
elif env == "uat":
    CONFIG = UAT
else:
    CONFIG = QAFC

4.testsuites資料夾
存放測試用例 

5.jsonSchema資料夾
存放斷言返回欄位以及型別的jsonSchema檔案 

6.data資料夾
寫測試用例時需要的一些固定id,唯一值,資料庫取值等,比如登入賬戶,檢視文章詳情需要id,稽核時需要的id(先生成記錄然後資料庫讀取記錄 or teardown時修改資料庫狀態值進行資料恢復),唯一的郵箱/手機號/身份證等......

7.log資料夾
存放日誌

Jenkins整合與Allure測試報告

前置條件:
系統管理--外掛管理:安裝外掛allure、安裝Parameterized Trigger
系統管理--全域性工具配置:配置Allure Commandline

1.新建自由風格的job,進入job配置頁面,引數化構建
這裡的environment就是程式碼中需要的環境變數,用於切換環境 

2.原始碼管理 

3.配置分支

4、構建指令碼

5.構建後生成Allure測試報告

6.構建後觸發新的job(即告警系統)
告警系統為一個獨立的job,通過這個配置將當前job的一些引數傳遞給後一個job 

7.告警系統使用引數化構建
告警系統主要實現功能是實時傳送構建結果給企業或個人微信使用者,程式碼邏輯主要是呼叫Jenkins API獲取構建結果、呼叫企業微信API獲取token併發送訊息 

 

結語 :

我這邊也可以給你們分享一些其它有關軟體測試方面能幫助到你們的學習資料。整理不易希望大家不要覺得理所當然。如果能幫助到大家擴散一些思路那就最好啦,相信多少會有一定的啟發,可以加我QQ號:1363134450聯絡我,記得備註資訊不然(如果你是來打廣告的就不要浪費時間加我了。先寫到這裡有問題也可以直接私信我~