在接口測(cè)試的過(guò)程中,很多時(shí)候會(huì)用到對(duì)CSV的讀取操作,本文主要說(shuō)明Python3對(duì)CSV的寫入和讀取。
1. 需求
某API,GET方法,token,mobile,email三個(gè)參數(shù)
-
token為必填項(xiàng)
-
mobile,email 必填其中1項(xiàng)
-
mobile為手機(jī)號(hào),email為email格式
2. 方案
針對(duì)上面的API,在做接口測(cè)試時(shí),需要的測(cè)試用例動(dòng)輒會(huì)多達(dá)10+, 這個(gè)時(shí)候采用數(shù)據(jù)驅(qū)動(dòng)的方式將共性的內(nèi)容寫入配置文件或許會(huì)更合適。
這里考慮把API、參數(shù)、以及預(yù)期結(jié)果預(yù)行在格式化的CSV里保存,利用csv組件從CSV里讀取URL、參數(shù)以及預(yù)期結(jié)果,Requests組件發(fā)起請(qǐng)求,將響應(yīng)結(jié)果與預(yù)期結(jié)果進(jìn)行比對(duì),***把比對(duì)結(jié)果寫到結(jié)果CSV。
流程如下圖
3. 實(shí)現(xiàn)
(1) 在上代碼之前,先安裝好如下幾個(gè)組件:
-
csv 讀寫CSV文件
-
json
-
requests 發(fā)起請(qǐng)求,獲取響應(yīng)結(jié)果
-
unittest 測(cè)試用例調(diào)度
(2) data.csv(本示例選取部分用例)
(3) reader_CSV函數(shù)代碼示例
(4) request_URL函數(shù)示例(包含GET請(qǐng)求和POST請(qǐng)求2個(gè)方法)
(5) assert_Result函數(shù)示例
(6) write_CSV函數(shù)示例
(7) test_interface1函數(shù)示例
8result_1523956055.csv(本示例中的測(cè)試結(jié)果請(qǐng)忽略)
4. 總結(jié)