当前位置: 首页 > news >正文

python自动化数据驱动_Selenium2+python自动化之数据驱动(ddt)

环境准备

1.安装ddt模块,打开cmd输入pip install ddt在线安装

数据驱动原理

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

2.测试类前加修饰@ddt.ddt

3.case前加修饰@ddt.data()

4.运行后用例会自动加载成三个单独的用例

# coding:utf-8

import ddt

import unittest

# 测试数据

test_data1 = [{"username": "zhangsan", "pwd": "zhangsan"},

{"username": "lisi", "pwd": "lisi"},

{"username": "wangwu", "pwd": "wangwu"},

]

test_data2 = [{"username": "wukong", "pwd": "wukong"},

{"username": "wuneng", "pwd": "woneng"},

{"username": "wujing", "pwd": "wujing"},

]

@ddt.ddt

class Test(unittest.TestCase):

def setUp(self):

print("Start!")

def tearDown(self):

print("end!")

@ddt.data(*test_data1)

def test_ddt1(self, data):

print(data)

@ddt.data(*test_data2)

def test_ddt2(self, data):

print(data)

if __name__ == "__main__":

unittest.main() selenium数据驱动案例以登录的方法为例子:从上一篇封装的excel方法里面读取数据,作为测试数据:

http://www.cnblogs.com/lingzeng86/p/6793398.html(就是导入的excelunit包)

# coding:utf-8

import ddt

import time

import excelunit

import unittest

from selenium import webdriver

# 测试数据

data = excelunit.ExcelUtil("test.xlsx", "Sheet2")

testData = data.dict_data()

print testData

@ddt.ddt

class Bolg(unittest.TestCase):

"""登录博客"""

def setUp(self):

self.driver = webdriver.Chrome()

url = "https://passport.cnblogs.com/user/signin"

self.driver.get(url)

self.driver.implicitly_wait(10)

def login(self, username, psw):

"""登录方法,账号和密码参数化"""

self.driver.find_element_by_id("input1").send_keys(username)

self.driver.find_element_by_id("input2").send_keys(psw)

self.driver.find_element_by_id("signin").click()

time.sleep(3)

def is_login_sucess(self):

"""判断是否获取到登录账户名称"""

try:

text = self.driver.find_element_by_id("lnk_current_user").text

print text

return True

except:

return False

@ddt.data(*testData)

def test_login(self, data):

"""登录案例参考"""

print ("当前测试数据%s" % data)

# 调用登录方法

self.login(data["username"], data["password"])

# 判断结果

result = self.is_login_sucess()

self.assertTrue(result)

def tearDown(self):

self.driver.quit()

if __name__ == "__main__":

unittest.main()

相关文章:

  • java圆和椭圆的关系_圆与椭圆 - brifuture - 博客园
  • java attributelist_java集合类(二)List学习
  • java ccf认证解答_CCF认证考试(java)---窗口
  • java 平滑 停止_设计Java应用程序的平滑停止
  • java开发按键精灵_Java 按键精灵
  • java同步开销_java – 为什么对Map的同步访问会增加大量的开销
  • java字节码常量池_Java字节码常量池深度剖析与字节码整体结构分解
  • java控制语句案例_Java基础之流程控制(示例代码)
  • mysql 怎么设置ip地址_Mysql如何设置用户指定ip地址操作数据库
  • android_iphone和java三个平台一致的加密方法_Android、iPhone和Java三个平台一致的加密工具...
  • java最崇拜谁_蓝桥杯(java)个人赛真题:小朋友崇拜圈
  • java数组函数结局实际问题_java函数与数组
  • java登录字符串封装_JAVA的随机的字符串的封装(基本上够用了)
  • java统一管理文字_为了统一管理组件和容器,Java为所有组件类定义的超类
  • django mysql 分表_Django数据库分表
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • ➹使用webpack配置多页面应用(MPA)
  • laravel 用artisan创建自己的模板
  • magento2项目上线注意事项
  • maven工程打包jar以及java jar命令的classpath使用
  • vue的全局变量和全局拦截请求器
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 如何实现 font-size 的响应式
  • 如何学习JavaEE,项目又该如何做?
  • 通过npm或yarn自动生成vue组件
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 移动端 h5开发相关内容总结(三)
  • 优秀架构师必须掌握的架构思维
  • 主流的CSS水平和垂直居中技术大全
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 阿里云服务器购买完整流程
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 湖北分布式智能数据采集方法有哪些?
  • ​虚拟化系列介绍(十)
  • # 计算机视觉入门
  • #控制台大学课堂点名问题_课堂随机点名
  • (0)Nginx 功能特性
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)编辑寄语:因为爱心,所以美丽
  • (转载)hibernate缓存
  • (转载)Linux网络编程入门
  • (转载)OpenStack Hacker养成指南
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • . Flume面试题
  • .bat批处理出现中文乱码的情况
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET基础篇——反射的奥妙