python使用ddt_python之数据驱动ddt操作(方法一)

下载ddt并安装

Pip install ddt

或者官网下载安装

DDT的使用

DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据)

只有yaml和yml结尾的文件以yaml形式上传,其他情况下默认为json

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

@data(a,b)

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

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

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

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

@file_data(filename)

对于json的文件,每一个json元素按照一个用例运行,可以依照python分解元组,列表或者字典的方式分解传入

from ddt import ddt,unpack,data

from selenium import webdriver

from selenium.webdriver.common.by import By

import unittest,time

#数据驱动模型

# ddt excel+ddt yaml+ddt txt+ddt

#@unpack 表示用来解压元组到多个参数

#应用:ui级别的自动化测试中可以实现编写一个测试用例实现多个不同的测试点验证

#例如在163邮箱登录页面中,存在多种测试情况,如用户名和密码为空,用户名为空密码不为空,密码为空用户名不为空返回的错误提示信息

@ddt

class Mail_163(unittest.TestCase):

def setUp(self) -> None:

self.driver = webdriver.Chrome()

self.driver.maximize_window()

self.driver.implicitly_wait(5)

self.driver.get("https://mail.163.com/")

def tearDown(self) -> None:

self.driver.quit()

@data(('','','请输入帐号'),('admin','','请输入密码'),('','admin','请输入帐号'),('^^^','','帐号格式错误'))

@unpack

def test_login_163(self,username,password,result):

#验证登录163邮箱N中情况

self.driver.find_element(By.ID,"switchAccountLogin").click()

iframe = self.driver.find_element(By.TAG_NAME,'iframe')

self.driver.switch_to_frame(iframe)

self.driver.find_element(By.NAME,'email').send_keys(username)

self.driver.find_element(By.NAME,'password').send_keys(password)

time.sleep(1)

self.driver.find_element(By.ID,"dologin").click()

divtext = self.driver.find_element(By.CSS_SELECTOR,'div.ferrorhead').text

print("错误信息:",divtext)

self.assertEqual(divtext,result)

self.driver.switch_to_default_content()

if __name__ == '__main__':

unittest.main(verbosity=2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值