数据驱动_对csv文件的操作

1.python 提供了对 csv 文件处理的模块,直接 import csv 就可以了,csv文件全名称为 Comma-Separated Values,csv 是通用的,相对简单的文件格式,其文件已纯文件形式存储数据。

在 testCase 包下创建 test.csv 文件,特别注意:创建 csv 为后缀的文件的时候,一定先创建 test.xlsx,打开文件后,另存为 test.csv,见截图:

csv文件创建的时候不能直接通过修改文件后缀名(新建文件后,不可直接将后缀修改为CSV。可以通过另存为的方式(将新建文件的后缀名另存为csv格式的))

 

源码:

'''
读取csv文件内容,可以按字典的读取方式和列表的方式读取
'''
import csv

#按列表的读取方式读取
def readCsvList():
with open('csvTest.csv','r')as f:
reader = csv.reader(f)
#不读取title
next(reader)
db = [item for item in reader]
print(db[0][0])
readCsvList()

#按字典的读取方式读取
def readCsvDict():
with open('csvTest.csv','r')as f:
reader = csv.DictReader(f)
for item in reader:
print(dict(item))
#取到所有的caseID
print(dict(item)['caseID'])
readCsvDict()

 实例:

import csv
import unittest
from selenium import webdriver
def readCsv(row,col):
rows = []
with open('test.csv') as f:
reader = csv.reader(f)
next(reader, None)
for iter in reader:
rows.append(iter)
return ''.join(rows[row][col]).decode('gb2312')
class SinaLogin(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://mail.sina.com.cn/')
self.driver.implicitly_wait(30)
def tearDown(self):
self.driver.quit()
def login(self,username,password):
self.driver.find_element_by_id('freename').send_keys(username)
self.driver.find_element_by_id('freepassword').send_keys(password)
self.driver.find_element_by_link_text(u'登录').click()
def divText(self):
 
divText=self.driver.find_element_by_xpath('/html/body/div[1]/div/div[2]/div/div/di
v[4]/div[1]/div[1]/div[1]/span[1]')
return divText.text
def test_username_password_null(self):
'''验证:测试用户名和密码都为空的错误提示信息'''
self.login(readCsv(0,0),readCsv(0,1))
self.assertEqual(self.divText(),readCsv(0,2))
def test_sina_password_null(self):
'''验证:测试用户名为空密码不为空的错误提示信息'''
self.login(readCsv(1,0),readCsv(1,1))
self.assertTrue(self.divText(),readCsv(1,2))
def test_sina_username_format(self):
'''验证:测试用户名邮箱格式不正确的错误提示信息'''
self.login(readCsv(2,0),readCsv(2,1))
self.assertEqual(self.divText(),readCsv(2,2))
if __name__ == '__main__':
unittest.main(verbosity=2) 
posted @ 2019-05-04 17:50  燕鸻  阅读(429)  评论(0编辑  收藏  举报