准备第三方库:

  首先安装ddt库,其次在脚本中引入ddt

  打开官网 https://pypi.org/project/ddt/

  from ddt import ddt,data,unpack

  

  @ddt

  class MookTestCase(unittest.TestCase):

数据驱动的应用:

  1、使用元组存放被测试的数据,一个参数的情况

    @data(1,-3,2,0)

    def testcase(self,value):

    

  2、使用元组存放被测试的数据,多个参数的情况  

    @data((3,2),(4,3),(5,3))

    @unpack

    def testcase(self,value1,value2):

    

DDT框架实例 

#-*- coding: utf-8 -*-

import os,time
import logging
import sys
import unittest
import HTMLTestRunner
from appium import webdriver
from ddt import ddt,data,unpack logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__) #统一使用utf-8格式
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
reload(sys)
sys.setdefaultencoding(default_encoding) @ddt
class MyTestCase(unittest.TestCase):
def setUp(self):
#字典
ui = {
'platformName': 'Android', # 平台名称
'platformVersion': '5.1.1', # 系统版本号
# 'deviceName': 'emulator-5554',
'deviceName': '127.0.0.1:62001', # 设备名称。如果是真机,在'设置->关于手机->设备名称'里查看
'appPackage': 'com.xiaobai.logindemo', # apk的包名
'appActivity': 'com.xiaobai.logindemo.LoginActivity', # activity 名称
} #Connect appium
logger.info("连接appium")
self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",ui)
# os.system('adb kill-server')
logger.info("连接appium2")
# self.driver.implicitly_wait(8)
print("---------------SetUp-------------\n") @data(("csdn","123456",False),
("csdn","1234",True))
@unpack
def test_login(self,username,pwd,expectedresult):
logger.info("请输入用户名")
self.driver.find_element_by_id("com.xiaobai.logindemo:id/et_account").send_keys(username) logger.info("请输入密码")
self.driver.find_element_by_id("com.xiaobai.logindemo:id/et_password").send_keys(pwd) logger.info("点击登录按钮")
register = self.driver.find_element_by_id("com.xiaobai.logindemo:id/btn_login").click() try:
if self.driver.find_element_by_id("com.xiaobai.logindemo:id/btn_login").is_displayed():
exist = True
except Exception:
exist = False
self.assertEqual(exist,expectedresult)
time.sleep(3)
self.driver.quit() def tearDown(self):
logger.info("结束")
print("---------------------TearDown-----------\n") if __name__ == '__main__':
# suite = unittest.TestSuite()
# suite.addTest(MyTestCase('test_login'))
#
# now = time.strftime("%Y-%M-%d-%H-%M-%S",time.localtime())
# filename = ".ReportCase.html"
# print('run version {}'.format(sys.version))
# fp = open(now + filename,'wb')
# runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"自动化测试报告",description=u"TestCase Report")
# runner.run(suite)
#
# fp.close()
unittest.main()
#对应的runner

import app.testcase.unittestdemo
import unittest # mysuite = unittest.TestSuite()
# mysuite.addTest(app.testcase.loginUI.MyTestCase("test_login"))
cases = unittest.TestLoader().loadTestsFromTestCase(app.testcase.unittestdemo.MyTestCase)
mysuite = unittest.TestSuite([cases])
# mysuite.addTest(app.testcase.loginUI.MyTestCase("test_login")) myrunner = unittest.TextTestRunner(verbosity=2)
myrunner.run(mysuite)

数据驱动DDT(Data-Driven Tests):测试数据的参数化的更多相关文章

  1. Python DDT(data driven tests)模块心得

    关于ddt模块的一些心得,主要是看官网的例子,加上一点自己的理解,官网地址:http://ddt.readthedocs.io/en/latest/example.html ddt(data driv ...

  2. [Jest] Write data driven tests in Jest with test.each

    Often, we end up creating multiple unit tests for the same unit of code to make sure it behaves as e ...

  3. What is Data Driven Testing? Learn to create Framework

    What is Data Driven Testing? Data-driven is a test automation framework which stores test data in a ...

  4. unittest使用数据驱动ddt

    简介 ddt(data driven test)数据驱动测试:由外部数据集合来驱动测试用例,适用于测试方法不变,但需要大量变化的数据进行测试的情况,目的就是为了数据和测试步骤的分离 由于unittes ...

  5. unittest---unittest数据驱动(ddt)

    在做测试的时候,有些地方无论是接口还是UI只是参数数据的输入不一样,操作过程是一样的.重复去写操作过程会增加代码量,我们可以通过参数化的方式解决这个问题,也叫做数据驱动,我们通过python做参数化的 ...

  6. python webdriver 测试框架-数据驱动DDT的例子

    先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import un ...

  7. Python数据驱动DDT的应用

    在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行 ...

  8. Python 数据驱动ddt 使用

    准备工作: pip install ddt 知识点: 一,数据驱动和代码驱动: 数据驱动的意思是  根据你提供的数据来测试的  比如 ATP框架 需要excel里面的测试用例 代码驱动是必须得写代码  ...

  9. 数据驱动ddt

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

  10. Spock - Document - 03 - Data Driven Testing

    Data Driven Testing Peter Niederwieser, The Spock Framework TeamVersion 1.1 Oftentimes, it is useful ...

随机推荐

  1. ubantu下的java的发布

    1.先检查是否安装过 java version 2.卸载的命令 sudo apt-get remove openjdk* 3.创建存放jdk的目录 sudo mkdir /usr/lib/jvm 4. ...

  2. ElementUI Select下拉框定位问题!

    今天遇到了下拉不跟随文本框滚动的问题 参考官方手册添加参数: popper-append-to-body="false" 无效[内心很无语]继续检查向上推,查看html样式,发现了 ...

  3. 关于oracle中scott用户恢复到初始状态的步骤,和一些问题解决方法。

    一般恢复步骤: sqlplus 连接到sys用户sqlplus / as sysdba运行脚本进行初始恢复start ?/rdbms/admin/utlsampl.sql;恢复后,用户为锁定状态,需要 ...

  4. Qt 中文编译错误和运行显示乱码

    Qt 中文编译错误 Qt error: C2001: 常量中有换行符 解决方法:菜单 --> 编辑 --> 选择编码(select Encoding)--> 文本编码 --> ...

  5. android defaluthttpclient timeout 整理

    android defaulthttpclient 超时无效的相关解放方式记录: With the marked solution I am still getting a UnknownHostEx ...

  6. Neuropsychological Assessment 5th

    书本详情 Neuropsychological Assessment作者: Muriel Deutsch Lezak / Diane B. Howieson / Erin D. Bigler / Da ...

  7. socket的客户端和服务端(Windows控制台程序)

    首先是两个程序,分别是socket的客户端和服务端.(在windows系统vc6.0编译)服务器端:#include <Winsock2.h>#include <stdio.h> ...

  8. 关于idea2021.1版本的左边不显示bpmn Editor的问题

    我这里是自定义主题风格出现的问题 idea左上角File→选择setting→找到Color Scheme菜单,将主题颜色改为IntelliJ Light.在重启idea就好

  9. linux run/media/wang/centos_磁盘爆满

    在使用iso安装了linux系统后,会有个 /run/media/wang/CentOS 7 x86_64 无法删除,这个是我们安装程序时的安装驱动, 登陆用户后将他卸载就可

  10. sentinel监控数据持久化&本地测试

    官方文档  https://sentinelguard.io/zh-cn/ wiki: 在生产环境中使用-Sentinel 推荐方案:持久化到 时序数据库InfluxDB  : 结合Grafana 可 ...