准备第三方库:

  首先安装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. Docker部署netdata 性能实时监控

    netdata 是常用的Linux系统性能实时监控面板 netdata 官方文档 https://learn.netdata.cloud/ 1.Docker 镜像下载地址 https://hub.do ...

  2. 计算机视觉——SSD和YOLO简介

    前言 本文记录用,防止遗忘 计算机视觉--SSD和YOLO简介 课件(单发多框检测SSD) 生成锚框 对每个像素,生成多个以它为中心的锚框 给定n个大小 s1, ...,s2,和m个高宽比,那么生成 ...

  3. GPS北斗卫星时钟同步系统提升电信支撑网性能

    GPS北斗卫星时钟同步系统提升电信支撑网性能 京准科技提供参考--更多资料VX(ahjzsz) 各项新的数据业务,如电子商务.多媒体通信.IP电话等都是电信业务发展的新增长点,而传统业务也存在多家企业 ...

  4. CompletableFuture事务问题

    前段时间写了关于CompletableFuture的使用博客,CompletableFuture使用方法详细说明 和 CompletableFuture的thenCompose使用具体说明. 但在实际 ...

  5. 借助mapshaper的简化来修复geojson的拓扑错误

    在使用turf.union方法合并面的时候,报错了.无法全部合并完成. 按照提示说是出现线的拓扑错误.至于哪里错误也看不出来. turf不提供拓扑修正功能的js包 难道有转到arcgis中去修复?好搓 ...

  6. 一套.NET Core +WebAPI+Vue前后端分离权限框架

    今天给大家推荐一个基于.Net Core开发的企业级的前后端分离权限框架. 项目简介 这是基于.NetCore开发的.构建的简单.跨平台.前后端分离的框架.此项目代码清晰.层级分明.有着完善的权限功能 ...

  7. k8s如何配置secret保存harbor仓库账号密码、pod中怎么使用harbor仓库镜像

    转载: https://blog.csdn.net/MssGuo/article/details/127312239

  8. 【服务器数据恢复】ZFS文件系统下ZPOOL下线的数据恢复案例

    服务器数据恢复环境:SUN ZFS系列某型号存储阵列:40块磁盘组建的存储池(其中4块磁盘用作全局热备盘),池内划分出若干空间映射到服务器使用:服务器使用Windows操作系统. 服务器故障:服务器在 ...

  9. vscode 终端中运行执行js文件

    问题汇总 1.在vscode中执行node -v没有反应或者执行js文件出现下图错误 解决办法: 1.先关闭vscode,找到vscode的执行文件,在兼容性中勾上以管理员身份运行此程序,该问题win ...

  10. 3DMAX安装失败怎么办?安装3DMAX失败提示错误怎么解决?

    3DMAX安装失败怎么办?安装3DMAX失败提示错误怎么解决?有很多同学想把3DMAX卸载后重新安装,但是发现3DMAX安装到一半就失败了或者显示3DMAX已安装或者安装未完成,大多数情况下其实是3D ...