selenium数据驱动测试--简单实例

from selenium import webdriver
import unittest
import ddt,time

@ddt.ddt
class datadriver(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox(executable_path='f://geckodriver')

    @ddt.data(['神奇动物在哪里','叶茨'],['疯狂动物城','古德温'],['大话西游之月光宝盒','周星驰'])

    @ddt.unpack
    def test_datadriverByObj(self,testdata,expectdata):
        url = 'http://www.baidu.com'
        self.driver.get(url)
        self.driver.implicitly_wait(10)
        try:
            self.driver.find_element_by_id('kw').send_keys(testdata)
            self.driver.find_element_by_id('su').click()
            time.sleep(3)
            #断言
            self.assertTrue(expectdata in self.driver.page_source)
        except :
            print('失败')

    def tearDown(self):
        self.driver.quit()


if __name__=='__main__':
    unittest.main()

加了unpack装饰器是把元祖,列表,字典拆开传给测试案例

通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有:  元组,列表,字典等数据,默认是pack(包裹一起的),即一个列表作为一个变量  传给函数里的变量。如果把列表的数据进行分解,必须加上@unpack。

@data([a,b],[c,d],[f,g])
无@unpack,那么[a,b]一个列表,作为一个参数传给测试用例
有@unpack,那么[a,b]被分解开,作为两个参数a,b 分别传给测试用例

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值