案例:打开百度,进行搜索,查看搜索结果;
执行3条测试用例,分别搜索python,自动化测试,ddt data
不使用ddt数据驱动:
import unittest import time from selenium import webdriver class Baidu(unittest.TestCase): def setUp(self): # 打开chrome浏览器 self.driver = webdriver.Chrome() # 设置隐式等待10秒 self.driver.implicitly_wait(10) # 设置窗口最大化 self.driver.maximize_window() # 打开百度 self.driver.get('https://www.baidu.com') def tearDown(self): # 强制等待2秒,查看效果 time.sleep(2) # 关闭浏览器 self.driver.quit() def test01(self): '''搜索 python''' # 在搜索输入框中输入 python self.driver.find_element_by_id('kw').send_keys('python') # 点击百度一下 self.driver.find_element_by_id('su').click() def test02(self): '''搜索 自动化测试''' # 在搜索输入框中输入 自动化测试 self.driver.find_element_by_id('kw').send_keys('自动化测试') # 点击百度一下 self.driver.find_element_by_id('su').click() def test03(self): '''搜索 ddt data''' # 在搜索输入框中输入 ddt data self.driver.find_element_by_id('kw').send_keys('ddt data') # 点击百度一下 self.driver.find_element_by_id('su').click() if __name__ == '__main__': unittest.main()
使用ddt数据驱动:
import unittest import time from selenium import webdriver from ddt import ddt, data @ddt # 调用装饰类ddt class Baidu(unittest.TestCase): def setUp(self): # 打开chrome浏览器 self.driver = webdriver.Chrome() # 设置隐式等待10秒 self.driver.implicitly_wait(10) # 设置窗口最大化 self.driver.maximize_window() # 打开百度 self.driver.get('https://www.baidu.com') def tearDown(self): # 强制等待2秒,查看效果 time.sleep(2) # 关闭浏览器 self.driver.quit() @data('python', '自动化测试', 'ddt data') # 调用方法装饰器data def test01(self, value): '''分别搜索python,自动化测试,ddt data''' # 在搜索输入框中分别输入 python,自动化测试,ddt data self.driver.find_element_by_id('kw').send_keys(value) # 点击百度一下 self.driver.find_element_by_id('su').click() if __name__ == '__main__': unittest.main()
重点注释