python数据驱动登录_Python数据驱动工具——DDT

参考链接1:https://www.cnblogs.com/miniren/p/7099187.html

参考链接2:https://www.imooc.com/article/14861

1、安装ddt模块:cmd命令下:pip install ddt

2、用途:结合单元测试unittest去执行用例

3、本质:类的装饰器

4、python 的unittest 没有自带数据驱动功能。所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成

import unittest

import ddt

test_case=[{'case_id':1,'title':'正常登录','url':'http://ip:9999/futureloan/mvc/api/member/login','data':{'mobilephone':'13417467890','pwd':'123456'},'method':'get','expected':'10001'},

{'case_id':2,'title':'密码错误','url':'http://ip:9999/futureloan/mvc/api/member/login','data':{'mobilephone':'13417467890','pwd':'12345678'},'method':'get','expected':'20111'},

{'case_id':3,'title':'手机号错误','url':'http://ip:9999/futureloan/mvc/api/member/login','data':{'mobilephone':'13417467890666','pwd':'123456'},'method':'get','expected':'20111'},

{'case_id':4,'title':'密码为空','url':'http://ip:9999/futureloan/mvc/api/member/login','data':{'mobilephone':'13417467890','pwd':''},'method':'get','expected':'20103'},

{'case_id':5,'title':'手机号为空','url':'http://ip:9999/futureloan/mvc/api/member/login','data':{'mobilephone':'','pwd':'123456'},'method':'post','expected':'2013'}]

@ddt.ddt

class TestCase(unittest.TestCase):

@ddt.data(test_case)

def test01(self,data):

print('-----------用例1-----------')

print('data:',data)

# -----------用例1-----------

# data: [{'method': 'get', 'case_id': 1, 'data': {'pwd': '123456', 'mobilephone': '13417467890'}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'title': '正常登录', 'expected': '10001'}, {'method': 'get', 'case_id': 2, 'data': {'pwd': '12345678', 'mobilephone': '13417467890'}, 'url': 'http://192.168.135.128:9999/futureloan/mvc/api/member/login', 'title': '密码错误', 'expected': '20111'}, {'method': 'get', 'case_id': 3, 'data': {'pwd': '123456', 'mobilephone': '13417467890666'}, 'url': 'http://192.168.135.128:9999/futureloan/mvc/api/member/login', 'title': '手机号错误', 'expected': '20111'}, {'method': 'get', 'case_id': 4, 'data': {'pwd': '', 'mobilephone': '13417467890'}, 'url': 'http://192.168.135.128:9999/futureloan/mvc/api/member/login', 'title': '密码为空', 'expected': '20103'}, {'method': 'post', 'case_id': 5, 'data': {'pwd': '123456', 'mobilephone': ''}, 'url': 'http://192.168.135.128:9999/futureloan/mvc/api/member/login', 'title': '手机号为空', 'expected': '2013'}]

@ddt.data(*test_case) #@data装饰方法, 加上* 拆分一层(按逗号拆分)

def test_02(self,data):

print('-----------用例2-----------')

print('data:',data)

# -----------用例2-----------

# data: {'data': {'mobilephone': '13417467890', 'pwd': '123456'}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'method': 'get', 'expected': '10001', 'case_id': 1, 'title': '正常登录'}

# -----------用例2-----------

# data: {'data': {'mobilephone': '13417467890', 'pwd': '12345678'}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'method': 'get', 'expected': '20111', 'case_id': 2, 'title': '密码错误'}

# -----------用例2-----------

# data: {'data': {'mobilephone': '13417467890666', 'pwd': '123456'}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'method': 'get', 'expected': '20111', 'case_id': 3, 'title': '手机号错误'}

# -----------用例2-----------

# data: {'data': {'mobilephone': '13417467890', 'pwd': ''}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'method': 'get', 'expected': '20103', 'case_id': 4, 'title': '密码为空'}

# -----------用例2-----------

# data: {'data': {'mobilephone': '', 'pwd': '123456'}, 'url': 'http://ip:9999/futureloan/mvc/api/member/login', 'method': 'post', 'expected': '2013', 'case_id': 5, 'title': '手机号为空'}

@ddt.data(*test_case) #拆分后的数据是字典格式

@ddt.unpack #在@data拆分的基础上,再拆分一次,并用等量的变量接收这些数据(如果是字典,需要用key)

def test_03(self,case_id,title,url,data,method,expected): #字典格式的数据再次拆分,参数要和测试用例的key一样

print('-----------用例3-----------')

print('case_id:',case_id)

print('title:',title)

print('url:',url)

print('data:',data)

print('method:',method)

print('excepted:',expected)

# -----------用例3-----------

# case_id: 1

# title: 正常登录

# url: http://ip:9999/futureloan/mvc/api/member/login

# data: {'mobilephone': '13417467890', 'pwd': '123456'}

# method: get

# excepted: 10001

# -----------用例3-----------

# case_id: 2

# title: 密码错误

# url: http://ip:9999/futureloan/mvc/api/member/login

# data: {'mobilephone': '13417467890', 'pwd': '12345678'}

# method: get

# excepted: 20111

# -----------用例3-----------

# case_id: 3

# title: 手机号错误

# url: http://ip:9999/futureloan/mvc/api/member/login

# data: {'mobilephone': '13417467890666', 'pwd': '123456'}

# method: get

# excepted: 20111

# -----------用例3-----------

# case_id: 4

# title: 密码为空

# url: http://ip:9999/futureloan/mvc/api/member/login

# data: {'mobilephone': '13417467890', 'pwd': ''}

# method: get

# excepted: 20103

# -----------用例3-----------

# case_id: 5

# title: 手机号为空

# url: http://ip:9999/futureloan/mvc/api/member/login

# data: {'mobilephone': '', 'pwd': '123456'}

# method: post

# excepted: 2013

if __name__ == '__main__':

unittest.main()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值