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()
Selenium2+python自动化之数据驱动(ddt)的更多相关文章
- Selenium2+python自动化59-数据驱动(ddt)
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化59-数据驱动(ddt)【转载】
前言 在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的.如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一 ...
- Selenium2+python自动化23-富文本(自动发帖)
前言 富文本编辑框是做web自动化最常见的场景,有很多小伙伴遇到了不知道无从下手,本篇以博客园的编辑器为例,解决如何定位富文本,输入文本内容 一.加载配置 1.打开博客园写随笔,首先需要登录,这里为了 ...
- Selenium2+python自动化24-js处理富文本(带iframe)
前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe的 ...
- Selenium2+python自动化7-xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...
- Selenium2+python自动化13-Alert
不是所有的弹出框都叫alert,在使用alert方法前,先要识别出它到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用对应方法解决.alert\confirm\prompt弹出框 ...
- Selenium2+python自动化28-table定位
前言 在web页面中经常会遇到table表格,特别是后台操作页面比较常见.本篇详细讲解table表格如何定位. 一.认识table 1.首先看下table长什么样,如下图,这种网状表格的都是table ...
- Selenium2+python自动化43-判断title(title_is)
From: https://www.cnblogs.com/yoyoketang/p/6539117.html 前言 获取页面title的方法可以直接用driver.title获取到,然后也可以把获取 ...
- Selenium2+python自动化54-unittest生成测试报告(HTMLTestRunner)
前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的. unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLT ...
随机推荐
- 「小程序JAVA实战」小程序头像图片上传(中)(44)
转自:https://idig8.com/2018/09/09/xiaochengxujavashizhanxiaochengxutouxiangtupianshangchuan43/ 用户可以上传了 ...
- spring中 Bean的装配 Bean后处理器
- pycharm打开脚本报错Gtk-Message: Failed to load module "canberra-gtk-module"
解决方法 sudo apt-get install libcanberra-gtk-module
- AssetBundle依赖
[Managing asset dependencies] 一个Asset会依赖其它Asset.可以把一个Asset所依赖的Asset也打包进自己的AssetBundle.可是多个Asset可能依赖同 ...
- Transform & Physics
[Transform & Physics] 1.Space.Unity定义了Space枚举值,此值如下: 通常通过Space.World.Space.Self来区别一个Vector是按世界坐标 ...
- 【LA 3989 训练指南】女士的选择 【稳定婚姻问题】
我们先来学一下稳定婚姻问题 什么是稳定婚姻问题? 有n个女士和n个男士,他们要一一进行配对.每个男士心中对这n个女士都有一个排名,同理,每个女士心里对n个男性也有一个排名.我们要做的是,在他们配对完成 ...
- yaml文件转properties和properties转yaml
首先要引入依赖 <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artif ...
- Qt5.11参考文档
Qt5.11参考文档: http://www.bim-times.com/qt/Qt-5.11.1/qtdoc/index.html (来源于Qt官网)
- leetcode BFS解题思路
Word Ladder 思路一:单向bfs, 使用visited数组记录哪些已经访问过了, 访问过的就不允许再次入队, 同时这里想到的是使用26个英文字母,枚举可能的取值, 类似brute force ...
- 测试URL
http://localhost:8080/dmonitor-webapi/monitor/vm/342?r=1410331220921&indexes=cpu&indexes=mem ...