在接口自动化测试中,把测试的数据存储到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的文件,见写入的内容: