找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
ddt 第三方工具包
ddt数据驱动测试:
什么是数据驱动?
数据驱动是可以将函数外的数据集合,csv,excel,txt等等一些文件引用到当前函数
ddt 有哪些好处,可以减少重复的代码。
可以做到数据与流程进行分离,方便后续的代码管理和维护
ddt:
ddt是一个类的装饰器--修饰类的
unpack:
unpack是拆分data数据的,同时传多个值用元组方式,填写多个值拆分要用unpack拆分
data:


from ddt import ddt,unpack,data
import unittest
@ddt()
class Ddt_Api(unittest.TestCase):                                                       data可以重复调用当前输出的函数
    @data("第一条测试用例","第二条测试用例","第三条测试用例")          用data的方式传参字符串
    def testcase01(self,values):
        print(values)
if __name__ == '__main__':
    unittest.main()

同时传多组元组数据
@ddt()
class Ddt_Api(unittest.TestCase):
    @data(("湖北","武汉"),("湖南","长沙"),("山东","青岛"))
    @unpack
    def testcase01(self,values,values1):
        print("我来自",values,values1)
if __name__ == '__main__':
    unittest.main()

多维数组,需要加上*进行传参
data里面的值加上个*  其他一样的

使用ddt驱动文件excel
首先获取excel  导入import xlrd
import xlrd
def cms_excl(path,excl_name,index_values):
    book = xlrd.open_workbook(path)
    sheet =book.sheet_by_name(excl_name)
    rows=sheet.nrows
    col_values=sheet.col_values(0)
    list1=[]
    for i in range(1,rows):
        if col_values==index_values:
            row_values=sheet.row_values(i,2,6)
            list1.append(row_values)
return list1
@ddt()
class Test(unittest.TestCase):
    @data(*cms_excl(r"C:\Users\szyc\PycharmProjects\wuhan8\demo\cms_api.xlsx","cmsapi","cms_login"))
    @unpack
    def testcase(self,values,values1,values2,values3):
        print(values,values1,values2,values3)
if __name__ == '__main__':
    unittest.main()

把字典转化为json字符串的方法                       dumps
import json
list={”湖北“:”武汉“}
b=json.dumps(b,ensure_ascii=False)
将json字符串转化为字典                                   loads
import json
str=”{”湖北“:”武汉“}“
a=json.loads(str)
print(a)

eval的方法可以将json字符串转化为字典,不能把字典转化为json字符串
print(eval(list1))

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册