login.csv文件
'''
url,body,response
http://***/loginByPwd,"{""token"": """",""mobile"": ""13500000000"",""pwd"": ""cs123456""}","{""code"": ""1000""}"
http://***/loginByPwd,"{""token"": """",""mobile"": """",""pwd"": ""cs123456""}","{""code"": ""1001""}"
http://***/loginByPwd,"{""token"": """",""mobile"": ""13500000000"",""pwd"": """"}","{""code"": ""1001""}"
'''
read_csv.py文件
'''
import csv
def read_CSV():
with open('login.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f) # <_csv.reader object at 0x000001B016A15C40>可以看到reader是一个内存地址,其实这个时候可以利用list()方法
# print(reader)
next(reader) # 忽略首行,next()方法进行第一次取值
# print(list(reader))
# l1 = list(reader)
# print(l1)
# print(type(l1[0][1]))
# print(type(l1[0][2]))
return list(reader)
# read_CSV()
'''
test_csv_login.py文件
'''
import pytest
import requests
import json
from pytest_study.read_csv import *
# read_CSV()返回的数据类型是[[{}]],所以使用'data'不一定非要是列表套字典,记住了...
@pytest.mark.parametrize(
'data',
read_CSV()
)
def test_csv_login_001(data):
r = requests.post(url=data[0], data=json.loads(data[1])) # data[1]为字符串类型
assert r.json()['code']==json.loads(data[2])['code'] # data[2]为字符串类型
if __name__ == '__main__':
pytest.main(['-v', '-s', 'test_csv_login.py'])
'''
csv文件操作
'''
"""
'''csv文件写入'''
import csv
with open('login.csv', 'w', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(['url', 'body', 'response']) # 首行,writerow写入一行
writer.writerows(
[
["http://***/loginByPwd", '{"token": "","mobile": "13500000000","pwd": "cs123456"}', '{"code": "1000"}'],
["http://***/loginByPwd", '{"token": "","mobile": "","pwd": "cs123456"}', '{"code": "1001"}'],
["http://***/loginByPwd", '{"token": "","mobile": "13500000000","pwd": ""}', '{"code": "1001"}']
]
) # 内容,writerows写入多行
'''csv文件读取'''
import csv
with open('login.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
print(reader) # <_csv.reader object at 0x000001B016A15C40>可以看到reader是一个内存地址,其实这个时候可以利用list()方法
next(reader) # 忽略首行,next()方法进行第一次取值
"""
'''