博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据驱动ddt
阅读量:5160 次
发布时间:2019-06-13

本文共 1696 字,大约阅读时间需要 5 分钟。

在设计用例的时候,有些用例操作过程是一样的,只是参数数据输入的不同,如果用例重复的去写操作过程会增加代码量,对于这种多组数据的测试用例,可以使用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成

1.安装ddt模块

2.数据驱动的原理

(1)测试数据为多个字典的list类型

(2)测试类前需要加修饰@ddt.ddt

(3)测试用例方法前需要加修饰@ddt.data()

3.代码:

from selenium import webdriver from common.base import BasePage from page.page_login import LoginPage,login_url from common.read_excel_ddt import ExcelUtil import unittest import ddt case_data=[{"user":u"欧皇林宝","psw":u"xxxx","except":False},            {"user":u"欧皇林宝","psw":u"xxxxxxx.","except":True}            ] @ddt.ddt class Login_test(unittest.TestCase):     '''登录页面的测试用例'''     @classmethod     def setUpClass(cls):         #只打开一次浏览器         cls.driver=webdriver.Firefox()         #实例化page_login中的LoginPage类         cls.login_driver=LoginPage(cls.driver)         cls.driver.open(login_url)     def setUp(self):         #每次都从登录页开始         self.driver.get(login_url)     def tearDown(self):         #每次清空登录的cookie,数据还原         self.driver.delete_all_cookies()     @classmethod     def tearDownClass(cls):         #关闭浏览器         cls.driver.quit()     def login_case(self,user,psw,exc):         '''登录的流程'''         self.login_driver.input_username(user)         self.login_driver.input_password(psw)         self.login_driver.click_submit()         result=self.login_driver.is_login_sucess()#获取结果         except_result=exc#期望结果         self.assertEqual(result,except_result)#断言     @ddt.data(*case_data)#多个数据 挨个去传     def test_login_01(self,casedata):         '''登陆失败用例:输入正确的账户,错误的密码'''
     print(case_data)
def test_login_02(self,casedata):
'''登陆失败用例:输入正确的账户,正确的密码'''
     print(case_data)
if __name__=="__main__":     unittest.main(verbosity=2)

转载于:https://www.cnblogs.com/linbao/p/8093870.html

你可能感兴趣的文章
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
35. Search Insert Position(C++)
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>
一些php文件函数
查看>>
有关快速幂取模
查看>>
Linux运维必备工具
查看>>
字符串的查找删除
查看>>
NOI2018垫底记
查看>>
快速切题 poj 1002 487-3279 按规则处理 模拟 难度:0
查看>>
Codeforces Round #277 (Div. 2)
查看>>
【更新】智能手机批量添加联系人
查看>>
NYOJ-128前缀式计算
查看>>
深入理解 JavaScript 事件循环(一)— event loop
查看>>
Hive(7)-基本查询语句
查看>>
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>