1.任务目标
我们上节课我们了解了数据驱动的基本概念以及安装,我们这一节学习一下如何使用数据驱动。
2.使用数据驱动前提
1.安装ddt并且导入ddt。
2.(1)在头部导入ddt代码库:import ddt;
(2)在测试类前添加一个装饰器,表示这个类采用ddt代码库的方式实现数据驱动(@ddt.ddt);
(3)在测试方法前使用@ddt.data( )指定数据来源。
3.代码编写思路:首先将测试数据单独存放,然后在编写脚本时调用存放的数据,逐条进行数据的读取。
3.任务实操
文件目录如下
读取csv文件代码
import csv
def read():
test = r"E:\test_day\test01_day\test_03\testdata.csv"
date = open(test, 'r')
tat = csv.reader(date)
list = []
i = 0
for row in tat:
if i != 0:
list.append(row)
i += 1
return list
if __name__ == '__main__':
da = read()
for row in da:
print(row)
数据驱动代码如下
from time import sleep
import ddt
import unittest
from selenium import webdriver
#引入读取csv文件包
from test02 import rend
# 装饰ddt
@ddt.ddt
#使用unittest框架
class Data_ddt(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(3)
stem_info = rend()
@ddt.data(*stem_info)
def test_id(self, list):
self.driver.get("http://test.pandabrother.cn/gpracticef/my/login.html")
self.driver.find_element_by_xpath('//*[@id="input-name"]').send_keys("liufengning")
self.driver.find_element_by_xpath('//*[@id="input-password"]').send_keys("123456")
self.driver.find_element_by_xpath('/html/body/div/div/div[1]/section/form/div[3]/button').click()
self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/a').click()
self.driver.find_element_by_xpath('//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a').click()
self.driver.find_element_by_id('input-name').send_keys(list[0])
sleep(10)
self.driver.find_element_by_xpath('/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[1]').click()
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
unittest.main()
结果如下
4.小结
本小结讲到了数据驱动,我们使用数据驱动配合读取csv文件再测试的时候不用再手动输入内容,交给自动化完成就可以了,更大的节省了测试时间。