1、自動化框架設計思路


設計思路簡介

設計思路采用的是關鍵字驅動+數據驅動的設計模式,采用的是python+requests+pytest為框架基礎,excle為數據載體實現。
主要是為了降低接口測試的維護成本,將case與interface分離,保證后續的維護盡量只是在維護數據表,不與代碼層面的東西關聯。
現在還處於學習的階段,很多東西還不成熟,希望后續能做好

框架結構

image

結構簡介

Base:存放對應的項目需要的基礎類,目前針對於項目需要的一些文件路徑和接口發送需要調用的方法存放
common:主要存放一些公共方法,與項目實際無關,但項目需要時從common中進行繼承,組裝成項目有用的方法
config:存放配置文件,如數據庫配置,郵件配置,項目配置,測試用例配置等
ExecuteTestCase:運行類,組織測試用例執行
log:項目中生成的log文件存放
main:pytest的中的conftest.py內容存放,全局定義
OperationData:對從excle中讀取的數據進行處理和組裝,達到發送接口的目的
report:報告類,目前可以生成pytest-html和allure報告
tool:項目中用到的方法的組裝,繼承於common中的方法,自定義的方法存放於UserFunction.py


數據存儲簡介

分表思路

針對於接口自動化的測試用例設計,一般的接口測試case都是通過操作步驟來對接口進行組合構成符合測試標准的測試用例。所以對於后續的維護中,有可能是接口的變動,業務邏輯沒變。有可能是業務邏輯變動,接口沒變。故將操作表(case.xls)即測試用例表和接口表(interface.xls)分開。
目的:
1、避免后續維護中業務邏輯發生變化時,需要維護接口數據的情況
2、整合測試用例,讓接口用例看閱讀起來更加有邏輯性

測試用例表:case.xlsx 字段說明

此處參考之前同事講解的方案,可以說是借鑒(都懂的撒)
image
用例名稱: 自定義編寫,需要與CaseConifg.yaml 中的case名稱對應
開關: 管控對應步驟是否需要執行,on:執行 off:不執行
操作: 目前僅支持excle中定義好的操作,

  • 發送請求:相當於get或post的請求發送,需要添加接口名稱
  • 參數賦值:變量賦值,用來保證參數化
  • 執行SQL:鏈接數據庫執行對應的SQL內容
  • 執行用例:相當於執行的對應用例當做是一個操作步驟,即該用例的前置條件

接口名稱: 當操作為發送請求時,為必填項,其他操作步驟不需要填寫。填寫的接口名稱必須與interface表中的接口名稱一一對應
請求參數: 此處的請求參數相當於interface中的body數據,如果這個位置添加了對應的請求參數,那么就會以這里的請求參數發送請求,這里的請求參數也可以做參數化
數據庫連接:添加的是指定環境數據庫中對應的庫名,可以不填寫,如果不填寫的話,需要在執行語句中增加庫名
SQL: 需要執行的SQL語句,不建議填寫select * from ,盡量不要使用*,需要取什么樣的值,在查詢時就明確出來,方便后續的變量賦值
SQL變量: 直接填寫變量名稱,變量之間使用英文[,]隔間,在SQL變量調用時,類似於jmeter中的sql變量調用,格式為"variable_n"調用
預期結果: 直接填寫對應的信息,采用的是包含的對比,即預期結果只要在實際結果中存在,即認為是成功,不需要完全相等可以是字符串,或者是變量
實際結果: 一般常用的有 ${response} 響應結果,${code} 響應狀態 ${rehead} 響應頭。填寫的可以是定義好的變量,也可以是響應中的信息,也可以是一個字符串
參數名稱: 主要針對於參數賦值,參數化的時候的變量名稱,多個填寫時使用英文[,]隔開
參數: 參數賦值時填寫的value值,可以是定值,如字符串,列表等。也可以是一個變量,

  • 目前定義的變量提取方式有:${__CutString()},${__JsonExtract()}
  •    ${__CutString()} 需要三個變量,類似於jmeter中的邊界值提取器,每個變量之間使用;隔開
    
       firstvb:需要提取的內容,即從什么地方提取,一般是為${response}
       secondvb: 左邊界
       thirdvb: 右邊界,如果右邊界是一個[,]時,需要使用/,來代替
    
  •    ${__JsonExtract()}  需要兩個變量,類似於jmeter中的json提取器,提取方式有兩種
    
       1、"$.web.test[0].tes
       2、“$..test_syw”  有幾層就寫幾個.t_syw"
    
  • 此處相當於自定義的方法內容,可以自己進行擴展

測試用例表:interface.xlsx 字段說明

image
接口名稱: 唯一的,不允許重復
請求方法: 常規的請求方法,get或post, eg:GET,get,Get 僅支持着樣子的大小寫,其他類型不允許
協議: 常規協議,http的協議沒問題,https的待驗證
Host

  • 可以填寫字符串或者變量
    1、可以寫定值
    2、${host} 讀取的是配置文件中的host值

Port: 1、可以填寫定值 eg:8080 2、${authport} 在配置文件中配置好,在此處直接調用
URL: 填寫請求的地址,格式為:/xxxx/xxxx
Body: 格式與請求Content-Type定義的類型需要一致。body中的內容可以做參數化
Head: 請求需要的請求頭,格式要以json的格式填寫,即鍵值對
Content-Type : 必須項,一般格式為 application/json;charset=UTF-8
文件路徑 : 文件的路徑,需要使用文件上傳時,Content-Type中的內容必須要有:multipart/form-data

格式上有點亂,第一次寫有點用不來這個東西


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM