ddt安装命令通过pip install ddt 进行安装

ddt.ddt装饰类。在脚本嘴上方进行导入ddt框架后,可以使用装饰类ddt,来装饰
自定义的测试用例,被ddt装饰的类可以直接使用ddt测试框架
ddt.data :用来拆分data的数据。通常data中包含的每一个值都会作为一个单独的
参数传给测试方法,如果这些值是用元组或者列表传进来的,可以用unpack方法将其
自动分解成多个参数
ddt_file_data:装饰测试方法,参数是文件名,文件可以是json或者yaml类型
注意:文件是以 .yml 或者是 .yaml 结尾。ddt都会作为yaml的类型进行处理。
其他文件都会作为json文件处理
如果文件是列表:列表的值会作为测试用例参数,同时,会作为测试用例方法后缀显示
如果文件是字典:字典的key会作为测试用例方法的后缀显示,字典的value会作为测试用例参数
'''
from ddt import ddt,data,unpack
import unittest
@ddt
class case(unittest.TestCase):
def setUp(self):
print('---用例开始----')
def tearDown(self):
print("---用例结束----")
@data("武汉","荆门","石牌")
#使用字符串的形式单个参数进行传入,
# data可以重复进行调用这个函数所以打印了三次
def test01(self,values1):
print(values1)
if __name__ == '__main__':
unittest.main()
'''ddt 多个参数进行传参 元组的形式进行传参,使用unpack进行参数
分解'''
@data(("湖北","武汉"),("湖南","长沙"))
@unpack
def test01(self,values1,values2):
print(values1,values2)
多个参数进行传参,列表的形式进行传参
@data(["湖北","武汉"],["湖南","长沙"],)
def test01(self,values1,values2,values3):
print(values1,values2,values3)
# if __name__ == '__main__':
多个参数进行传参,字典的格式进行传参
#
@data({"values1":"湖北","values2":"武汉"},{"values1":"湖南","values2":"长沙"},)
#使用字典进行传参的时候必须前面带上参数名称进行传参
from api_demo.get_values import get_value
import requests
import json
url = "http://cms.duoceshi.cn/cms/manage/loginJump.do"
header ={"Content-Type":"application/x-www-form-urlencoded"}
data1 = {
"userAccount":"cary","loginPwd":"123456"}
res = requests.request('post',url=url,headers=header,data=data1)
print(res.text)
print(get_values("cms_api.xlsx", "cmsapi", "cms_login"))
方式1:
使用json的loads函数
方式2:
使用eval函数
方式3:
使用literal_eval函数
例:'''
class Cms_Api(unittest.TestCase):
使用xlrd进行传参时,检查文档格式是否正确是否清除前后空格符
为什么使用unitest要继承unitestTestcase基类
DDT数据驱动(data driver test(数据驱动测试))
断言:===将实际记过与预期结果进行对比成功pass
失败就是bug