文章目录
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文件再测试的时候不用再手动输入内容,交给自动化完成就可以了,更大的节省了测试时间。