数据驱动_对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) 优质内容筛选与推荐>>