加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python ddt实现数据驱动

发布时间:2020-12-20 10:01:18 所属栏目:Python 来源:网络整理
导读:首先安装ddt模块,命令:pip install ddt 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。 @data(a,b) 那么a和b各运行一次用例 ? @data([

首先安装ddt模块,命令:pip install ddt

通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据。

@data(a,b)

那么a和b各运行一次用例

?

@data([a,d],[c,d])

如果没有@unpack,那么[a,b]当成一个参数传入用例运行

如果有@unpack,那么[a,b]被分解开,按照用例中的两个参数传递

一:

 1 import unittest
 2 from ddt import ddt,data,unpack
 3 from time import sleep
 4 from selenium import webdriver
 5 @ddt
 6 class MyTesting(unittest.TestCase):
 7     def setUp(self):
 8         self.dr = webdriver.Chrome()
 9         self.dr.get('http://www.baidu.com')
10 
11     @data(['python','python_百度搜索'],['java','java_百度搜索'])
12     @unpack
13     def test_baidu(self,a,b):
14         self.dr.find_element_by_id('kw').send_keys(a)
15         self.dr.find_element_by_id('su').click()
16         sleep(2)
17         c = self.dr.title
18         self.assertEqual(b,c)
19         
20 
21     def tearDown(self):
22         self.dr.close()
23 if __name__ == '__main__':
24     unittest.main(verbosity=2)

?传入字典参数

import unittest
from ddt  ddt,unpack
from time  sleep
from selenium  webdriver
@ddt
class MyTesting(unittest.TestCase):
    def setUp(self):
        self.dr = webdriver.Chrome()
        self.dr.get('http://www.baidu.com')

    @data({a':python',bpython_百度搜索'},{javajava_百度搜索})
    @unpack
     test_baidu(self,b):
        self.dr.find_element_by_id(kw).send_keys(a)
        self.dr.find_element_by_id(su).click()
        sleep(2)
        c = self.dr.title
        self.assertEqual(b,c)
        

     tearDown(self):
        self.dr.close()
if __name__ == __main__:
    unittest.main()

二:传入JSON文件

)

    @file_data(test.json)
    @unpack
    :
    unittest.main()

test.json文件内容如下,和上面代码同一路径

{
    "positive_integer_range": {
        ": ,
    },1)">negative_integer_range
    }
}

读取json文件的值

).send_keys(value)
        self.dr.find_element_by_id().click()
        # sleep(2)
         c = self.dr.title
         self.assertEqual(b,c)      

    :
    unittest.main()

json文件如下:

unsorted_listsorted_list
}

或者json文件改成一下:

[",1)">"]

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读