DDT驱动selenium自动化测试
建两个.py文件分别是是读取xlsx文件内容,一个是测试用例使用ddt驱动
- 获取xlsx文件内容
import xlrd class ParseExcel(object):
def __init__(self,path,sheelName):
self.wa = xlrd.open_workbook(path)
self.sheet = self.wa.sheet_by_name(sheelName)
self.max = self.sheet.nrows def getDatasFromSheet(self):
dataList = []
list = 0
for list in range(1,self.max):
print(self.sheet.row_values(list))
lin = self.sheet.row_values(list)
print(lin[1])
tmpList = []
tmpList.append(lin[1])
tmpList.append(lin[2])
dataList.append(tmpList)
return dataList
- 自动化测试用例
import ddt
from selenium import webdriver
import unittest
from Extel import ParseExcel
import time
from selenium.common.exceptions import NoSuchElementException path = "D:\\测试数据.xlsx"
sheelName = "Sheet1"
excel = ParseExcel(path,sheelName) @ddt.ddt
class TestDemo(unittest.TestCase):
def setUp(self):
self.deriver = webdriver.Chrome() @ddt.data(*excel.getDatasFromSheet())
def test_dataDrivenByFile(self,data):
TestData,expectData = tuple(data)
url = "http://www.baidu.com"
self.deriver.get(url)
self.deriver.maximize_window()
print(TestData,expectData)
self.deriver.implicitly_wait(10) try:
self.deriver.find_element_by_id("kw").send_keys(TestData)
print('执行了')
self.deriver.find_element_by_id("su").click()
time.sleep(3)
print('执行了')
source = self.deriver.page_source
self.assertTrue(expectData in source)
except NoSuchElementException:
print("查找页面元素不存在")
except AssertionError:
print(u"搜索%s期望%s,失败" % (TestData, expectData))
except Exception:
print('报错')
else:
print(u"搜索%s期望%s,通过"%(TestData,expectData)) def tearDown(self):
self.deriver.quit() if __name__ == "__main__":
unittest.main()
表格内容

后期可以接入logging打印日志
DDT驱动selenium自动化测试的更多相关文章
- 《手把手教你》系列基础篇(七十五)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 中篇(详解教程)
1.简介 上一篇中介绍了DataProvider如何传递参数,以及和一些其他方法结合传递参数,今天宏哥接着把剩下的一些常用的也做一下简单的介绍和分享. 2.项目实战1 @DataProvider + ...
- 《手把手教你》系列基础篇(七十六)-java+ selenium自动化测试-框架设计基础-TestNG实现DDT - 下篇(详解教程)
1.简介 今天这一篇宏哥主要是结合实际工作中将遇到的测试场景和前边两篇学习的知识结合起来给大家讲解和分享一下,希望以后大家在以后遇到其他的测试场景也可以将自己的所学的知识应用到测试场景中. 2.测试场 ...
- JavaScript(Node.js)+ Selenium自动化测试
Selenium is a browser automation library. Most often used for testing web-applications, Selenium may ...
- selenium自动化测试学习(一)
在学习selenium自动化测试前,我们需要先了解一点自动化测试的相关知识. (一)什么是自动化测试 (二)为什么要做自动化测试 (三)自动化测试优缺点 (1)什么是自动化测试 自动化测试是把以人为驱 ...
- Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通
Selenium自动化测试,接口自动化测试开发,性能测试从入门到精通Selenium接口性能自动化测试基础部分:分层自动化思想Slenium介绍Selenium1.0/2.0/3.0Slenium R ...
- Selenium自动化测试框架入门整理
关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...
- Selenium自动化测试Python五:WebDriver设计模式
WebDriver 设计模式 欢迎阅读WebDriver进阶讲义.本篇讲义将会重点介绍Selenium WebDriver 自动化框架的设计,着重使用Page Object设计模式,以及使用HTML测 ...
- Selenium自动化测试Python一:Selenium入门
Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件 ...
- Python3 Selenium自动化测试赋值出现:WebDriverException: Message: unknown error: call function result missing 'value'
Python3 Selenium自动化测试赋值出现:WebDriverException: Message: unknown error: call function result missing ' ...
随机推荐
- 在vue 里使用腾讯ditu
https://www.cnblogs.com/mrer/p/7144705.html
- cocos 动画系统
前面的话 cocos 动画系统支持任意组件属性和用户自定义属性的驱动,再加上可任意编辑的时间曲线和移动轨迹编辑功能,就可以制作出各种动态效果 概述 Animation 组件可以以动画方式驱动所在节点和 ...
- 苹果“抄袭”雷军PPT?小米高管如此评论
3月26日凌晨,苹果如期举行了春季发布会,但发布会上并没有发布任何新硬件,主角全部是电视.游戏.信用卡等软件新品,值得一提的是,在苹果PPT上,有一张将硬件/软件/服务三部分单独提炼出来. “抄袭”雷 ...
- SpringBoot之常用注解
在spring boot中,摒弃了spring以往项目中大量繁琐的配置,遵循约定大于配置的原则,通过自身默认配置,极大的降低了项目搭建的复杂度.同样在spring boot中,大量注解的使用,使得代码 ...
- 在centos安装MySql的三种安装方法
一.二进制安装MySql 1. 下载Mysql安装包 wget https://downloads.mysql.com/archives/get/file/mysql-5.6.40-linux-gli ...
- Linux系统 Cetos 7 中重置root密码
几个月前在自己电脑上面安装了一个Linux 的虚拟机环境,当时是为了测试某一个小功能,用完就扔那里了,长时间没有使用,发现Root密码忘记了,登陆不了,怎么办呢?(ps:如果实际情况中忘记密码的这个服 ...
- Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)B. Personalized Cup
题意:把一长串字符串 排成矩形形式 使得行最小 同时每行不能相差大于等于两个字符 每行也不能大于20个字符 思路: 因为使得行最小 直接行从小到大枚举即可 每行不能相差大于等于两个字符相当于 ...
- java返回json设置自定义的格式
使用注解@JsonSerialize(using = CustomPriceSerialize.class) 创建自定义的格式化类(可为内部类) /** * 设置默认返回的小数类型(0.01 元) * ...
- 集合源码分析[2]-AbstractList 源码分析
AbstractList 类型:抽象类 接口的继承以及实现关系 继承AbstractCollection 实现List接口 典型方法实现解析 public List<E> subList( ...
- logstash配置多入多出并互相隔离
需求:需要利用同一logstash进程采集不同日志,输出到es的不同index,各输入输出隔离: 主要需要解决如下两个问题: 1.如何加载多个配置文件? 普通启动方式:nohup bin/logsta ...