自動化測試中,Excel 寫入 & 讀取操作
前述
在軟體測試工程師的工作過程中,想要薪資、技術崗位有一個晉升,總是無法避免要學習和接觸更多的技術,不是是在性能測試、安全測試,還是自動化測試上。而在自動化測試的程序中,往往是接口自動化測試的覆寫率會更加廣一點,實用性也更高。而想要提高這個代碼的複用性,或者說想讓代碼更加簡單、簡練一點,參數化一定是一個最佳的選中,那麼這個時候,Excel存儲資料會更加的友善,那麼我們把資料存放在了Excel文檔中時,我們要怎麼讀取呢? 今天我就來介紹下excel文檔的讀取把。~
Excel讀取:
一、Excel 資料的讀取流程
- 打開 Excel檔案;
- 選中sheet表格;
- 擷取資料;
二、Excel 操作的工作庫
- openpyxl ==> xlsx格式的excel進行讀取 & 編寫;
- xlrd ==> 從excel表格中讀取資料(xls、xlsx);
- xlwt庫 ==> 對excel進行修改,不支援xlsx 格式的修改;
- pandas ==> csv 資料分析(面向資料分析方向);
三、Excel 中openpyxl操作
-
安裝 ;
———— pip install openpyxl
-
打開Excel文檔 ;
———— workbook = openxl.open(‘demo.xlsx’)
-
選中sheet表格 ;
———— ws = workbook[‘login’]
-
擷取資料 ;
—— 擷取第一行、第二列 ,cs = ws.cell(row = 1,column = 2)
—— 擷取第一行、第二列的資料,cs = ws.cell(row = 1,column = 2).value
——擷取某一行資料 ,row_data = ws[2]
——擷取所有的行 ,row = list(ws.rows)
——擷取所有的資料 ,all_data = list(ws.values)
四、Excel 資料讀取(封裝成元組)
import openpyxl
class ExcelHandler:
def __init__(self,fpath):
self.fpath = fpath # 初始化函數,定義fpath檔案
def read(self,sheet_name):
workbook = openpyxl.open(self.fpath) # 打開表格
worksheet = workbook[sheet_name] # 擷取sheet表格
data = list(worksheet.values) # 擷取所有sheet表格的資料
return data[1:] #傳回處表頭以外的元組格式資料
if __name__ == '__main__':
re = ExcelHandler('future_loan_data.xlsx')
res = re.read('login')
print(res)
最後函數調用時,傳入的為一索引值: info[3]、info[4],可讀性不強
四、Excel 資料讀取(封裝成字典)
import openpyxl
class ExcelHandler:
def __init__(self,fpath):
self.fpath = fpath #初始化函數
def read(self,sheet_name):
workbook = openpyxl.open(self.fpath) # 打開檔案
worksheet = workbook[sheet_name] #擷取sheet表格
data = list(worksheet.values) # 擷取所有sheet資料
key = data[0] # 擷取key值
all_data =[]
for values in data[1:]: # 循環value值
data_dict = dict(zip(key,values)) 通過zip函數,同時擷取key&value
all_data.append(data_dict)
return all_data # 傳回一字典格式資料
if __name__ == '__main__':
re = ExcelHandler('future_loan_data.xlsx')
res = re.read('login')
print(res)
函數調用:可通過字典的key來進行調用,可讀性會更強,
如:info['json']、info['headers']等;
五、Excel 資料寫入操作
-
打開Excel文檔 ;
———— workbook = openxl.load_workbook(‘demo.xlsx’)
-
選中sheet表格 ;
———— ws = workbook[‘login’]
-
寫入資料 ;
———— ws.cell(row =1,column = 2 ).value = ‘haha’
-
儲存資料 ;
———— workbook.save(‘demo.xlsx’)
-
關閉表格 ;
———— workbook.close()
六、Excel 資料寫入封裝
import openpyxl
class ExcelHandler:
def __init__(self,fpath):
self.fpath = fpath
def write(self,sheet_name,data,row,column):
workbook = openpyxl.open(self.fpath) # 打開表格
ws = workbook[sheet_name] #擷取sheet表格
ws.cell(row = row,column = column).value = data #寫入資料
workbook.save(self.fpath) # 儲存資料
workbook.close() # 關閉表格
if __name__ == '__main__':
re = ExcelHandler('future_loan_data.xlsx')
res = re.write('login',str(resp_body),row=int(info['case_id']+1,column = 9))
print(res)
Excel的簡單操作,就先記錄到這把,還有很多可以擴充的地方,需要繼續學習提升。
日常雞湯:不要太過依賴别人會給你很多的教導或指點,很多東西真的要自己經曆、總結,最後才會成為自己的收獲,不要怕打擊怕累,相信堅持一定會有收獲的,fighting!!~
完結,撒花花花花花花··~~~~!!!1