- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- # @Time : 2018/12/26 10:42
- # @File : unittest_test8_1.py
- '''
- 使用 ddt 执行数据驱动测试, 其中我们在测试类上使用 @ddt 修饰符, 在测试方法上用 @data 装饰符, 可以把参数当测试数据,
- 参数可以是单个值, 列表, 数组, 字典, 对于列表, 需要用 @unpack 装饰符把元组和列表解析成多个参数
- 注: 运行的时候光标的位置放在 test_search 方法里面会报错, 将光标放到外面, 则运行通过
- '''
- import unittest
- from ddt import ddt,data,unpack
- from selenium import webdriver
- @ddt
- class SearchDDT(unittest.TestCase):
- #初始化浏览器和 url
- def setUp(self):
- self.driver = webdriver.Chrome()
- self.driver.implicitly_wait(30)
- self.driver.maximize_window()
- self.driver.get("https://www.baidu.com/?tn=78000241_12_hao_pg")
- #创建一个测试用例
- @data(("phones",1),("salt shaker",1))
- @unpack
- def test_search(self,search_value,expected_count): #参数值和期望结果
- self.search_file = self.driver.find_element_by_name('wd')
- self.search_file.clear()
- self.search_file.send_keys(search_value)
- self.search_file.submit()
- product = self.driver.find_elements_by_xpath('//*[@id="1"]/h3/a')
- #p = [product,]
- self.assertEqual(expected_count,len(product))
- #清理所有的 初始化值
- def tearDown(self):
- self.driver.quit()
- # 运行测试, 传递 verbosity 参数, 以便使详细的测试总量显示在控制台
- if __name__=='__main__':
- unittest.main(verbosity=2)
来源: http://www.bubuko.com/infodetail-2968103.html