天天看点

ddt

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

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