在接口自動化測試中,把測試的數據存儲到csv的文件也是一種很不錯的選擇,下面就詳細的介紹如何實現CSV文件內容的讀取和如何把數據寫入到CSV的文件中。在Python中,讀取csv文件使用到的標準庫是csv,直接導入就可以了,要讀取的CSV文件內容為:
見讀取CSV文件裡面內容的源碼:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
import csv
def readCsv():
with open('csvTest.csv','r') as f:
rander=csv.reader(f)
#對數據循環獲取
for i in rander:
print(i)
見執行函數readCsv()後執行的結果:
依據獲取的數據來看,返回的數據是列表,可以獲取到具體的值。csv調用方法rander後,返回的是一個迭代器,所以循環執行這個迭代器,獲取它裡面的數據。
另外一種方式是把讀取的數據類型是字典,使用到的方法是DictReader,見實現的源碼和執行結果返回的數據:
如果想獲取字典字典單獨的值,比如地址,那麼獲取的方式為:
下面實現接口測試中,如何把獲取的數據寫入到 csv的文件中,比如調用接口,現在實現調用https://www.sojson.com/open/api/weather/json.shtml?city=%E8%A5%BF%E5%AE%89該接口,把響應數據寫到csv的文件中,見實現的源碼:
#!/usr/bin/env python
#-*-coding:utf-8-*-
#author:wuya
import csv
import requests
def writeCsv():
r=requests.get('https://www.sojson.com/open/api/weather/json.shtml?city=%E8%A5%BF%E5%AE%89')
header=['接口地址','接口響應數據']
values=[
{'接口地址':'https://www.sojson.com/open/api/weather/json.shtml?city=%E8%A5%BF%E5%AE%89',
'接口響應數據':r.json()}]
with open('csvTest.csv','w') as f:
writer=csv.DictWriter(f,header)
writer.writeheader()
writer.writerows(values)
writeCsv()
執行後,數據就會寫入到csv的文件中,如上是以字典的方式把數據寫入到文件中。執行成功後,打開csv的文件,見寫入的內容:
如您對我寫的內容感興趣,可掃描如下二維碼關注本人的公眾號,謝謝!
往期文章:
對自動化測試的幾點思考(三)
對自動化測試的幾點思考(二)
對自動化測試的幾點思考(一)
構建性能測試平臺
接口測試中對token的處理
接口測試之Requests
接口自動化測試報告
Selenium2框架淺談