資料來源處理概述(二)

2022-05-13 20:18:21 字數 3473 閱讀 3426

 1框架資料來源概述 

 2處理資料來源用到的工具包詳解 

 3資料來源處理設計思路和實戰

1框架資料來源概述 

框架中的資料來源是指作為測試框架執行時,輸入的相關 

配置資料、測試用例資料等。 

配置資料一般使用字尾為.ini的檔案進行配置,主要對比 

如測試主機位址、測試日誌和報告路徑等進行配置。 

在實際的框架設計中,測試用例資料我們可以使用不同 

方式的檔案來構造資料來源,只要該方式能完成介面自動化測 

試框架的易操作和維護即可。如 excel、xml、yaml、json、 

資料庫等。把測試需要用到的資料錄入到上述相應檔案或數 

據庫中,然後使用**把資料讀取並進行加工處理。

2處理資料來源需要用到的工具包如下: 

configparser(系統自帶):讀取.ini配置檔案 

xlrd/xlwt(第三方):用來讀寫excel檔案,可以用其它包 

json(系統自帶):處理json資料模組(略

configparser模組簡介: 

configparser模組是用來解析ini配置檔案的解析器。 

ini配置檔案的結構如右圖:

ini檔案結構需要注意以下幾點: 

鍵值對可用=或者:進行分隔 

section的名字是區分大小寫的,而key的名字是不區分大小寫的 

鍵值對中頭部和尾部的空白符會被去掉 

值可以為多行 

配置檔案可以包含注釋,注釋以#或者;為字首

xlrd/xlwt模組簡介: 

python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt 

是寫excel的庫。 

xlrd/xlwt模組安裝: 

在框架中我們用xlrd讀取excel檔案的操作居多,暫時只講該模組的使用。

xlrd模組使用: 

import xlrd 

data = xlrd.open_workbook(filename)#檔名以及路徑 

table = data.sheets()[0] #通過索引順序獲取 

table = data.sheet_by_name(sheet_name)#通過名稱獲取 

行的操作 

nrows = table.nrows #獲取該sheet中的有效行數 

table.row(rowx) #返回由該行中所有的單元格物件組成的列表

列的操作 

ncols = table.ncols #獲取列表的有效列數 

table.col(colx, start_rowx=0, end_rowx=none) #返回由該列中所有的單元格對 

象組成的列表 

單元格操作 

table.cell(rowx,colx) #返回單元格物件 

table.cell_type(rowx,colx) #返回單元格中的資料型別 

table.cell_value(rowx,colx) #返回單元格中的資料

合併單元格的讀取操作 

table.merged_cells #獲取當前文件中的所有合併單元格的位置資訊 

它返回的是乙個列表,每乙個元素是合併單元格的位置資訊的陣列,陣列包含 

四個元素(起始行,結束行,起始列,結束列) 

合併單元格預設不處理的情況下,返回為null,一般是希望所有被合併的每個 

單元格都返回合併單元格的內容。可以用判斷來實現 

3資料來源處理設計思路和實戰

配置檔案資料來源設計思路: 

配置檔案之前講過使用自帶的configparser模組來讀取資料,可以進行簡單封裝,更 

適合在框架中使用。

上述**完成封裝操作,然後再編寫config.py檔案,達到簡單呼叫: 

hosts = configutil().read_value('default','hosts')

excel用例資料來源設計思路: 

本介面測試框架由於考慮用例的獨立性(即每個用例都能單獨執行的思路),所需 

要的用例欄位包含如下: 

測試用例編號 測試用例名稱 用例執行 測試用例步驟 介面名稱 

請求方式 請求位址 請求引數(get) 提交資料(post) 取值方式 

傳值變數 取值** 期望結果型別 期望結果 

用例執行:可以設定執行或者不執行當前用例 

測試用例步驟:考慮設計偏業務的介面用例要多個介面順序執行的情況 

取值方式/傳值變數/取值**:做介面關聯處理(上下介面之間傳值) 

期望結果型別:支援json方式、正則方式比對

excel用例資料來源設計思路上: 

把設計的excel中的資料轉換成如下格式的列表,方便後期進行引數化執行測試用例。 [, 

,  ]column0代表第一列的列名,其它依次內推;由於用例有多個步驟,採用在excel合併單元 

格的寫法實現,所以上面例子中會出現case02、用例名稱2相同的情況

核心實現**: 

從第2行開始遍歷 整個**,遍歷完 一列就組裝成字典: 

key=column 

value=單元格值 

在中間進行是否是 合併單元格的判斷, 如果是就使用合併的值。 

核心實現**:

excel用例資料來源設計思路下: 

依照上述方法把資料從excel整理出來後,再進行加工,使其成為滿足paramunittest 

引數化測試所需要的資料格式。關於paramunittest在後續章節中會介紹講解。需要轉換成 

如下格式的資料:   

要把資料轉換成這樣,對資料要有兩個加工步驟: 

1、把資料內部的key名由column 換成真實的列名 

3、把資料調整成為字典格式給paramunittest使用

使用如下的**進行轉換即可:

轉換後的資料格式: 

(二)資料來源處理2 xlrd操作excel

print sheet.cell value 0,3 第0行,第3列 print sheet.cell value 1,0 第1行,第0列 print sheet.cell value 2,0 print sheet.merged cells 包含四個元素 起始行,結束行,起始列,結束列 給出乙個行...

SpringBoot學習 資料來源(一)單資料來源

springboot2.1.9預設支援三種資料來源 connection pool com.zaxxer.hikari.hikaridatasource org.apache.tomcat.jdbc.pool.datasource org.apache.commons.dbcp2.basicdata...

WPF 的 資料來源屬性 和 資料來源

一 資料來源 資料物件 屬性 path 或 path的值 path vm.property或m.property 通常具有通知功能 特例除外 二 path不能孤立而存在,它一定具有所歸屬的資料來源,一定要找到path 確切的說 是它的值 所歸屬的資料來源,說明如下 資料來源 資料物件 1 指定控制項...