Selenium--数据驱动(python)
前言:
什么是数据驱动?
从它的本意来解释,就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。说人话,其实就是参数化。
本次介绍2种文件驱动:ini文件和yaml文件
一、ini文件
1、定义
程序没有任何配置文件,那么它对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,为了让程序出厂后还能根据需要进行必要的配置,所以要用配置文件;配置文件有很多种,如INI配置文件,XML配置文件,cfg配置文件,还有就是可以使用系统注册表等。
INI ”就是英文 “initialization”的头三个字母的缩写;当然INI file的后缀名也不一定是".ini"也可以是".cfg",".conf ”或者是".txt"。
2、经典格式
INI文件的格式很简单,最基本的三个要素是:parameters,sections和comments。
#INI所包含的最基本的“元素”就是parameter;每一个parameter都有一个name和一个value
#所有的parameters都是以sections为单位结合在一起的。所有的section名称都是独占一行,并且sections名字都被方括号包围着,在section声明后的所有parameters都是属于该section
#在INI文件中comments注释语句是以分号“;”开始的
3、具体文件举例

4、python读写ini方法
需要导入Python自带的模块, 用来读写配置文件:
import ConfigParser
读取ini文件:
read(filename):读取ini文件中的内容
sections():得到所有section,返回列表形式
options(section):得到给定section的所有option
items(section):得到指定section的所有key-value
get(section,option):得到section中的option值,返回str类型
getint(section,option):得到section中的option值,返回int类型
写入ini文件:
write(filename):写入ini文件中的内容
add_section(section):写入指定section
Set(section,option,value):写入指定section中的option的值
5、读取ini文件具体代码范例
import configparser
# ======== Reading mail_config.ini setting ===========
cf = configparser.ConfigParser()
cf.readfp(open("D:\\API\\config\\mail_config.ini"))
smtpserver = cf.get("mail", "smtpserver")
sender = cf.get("mail", "sender")receiver = cf.get("mail", "receiver")
username = cf.get("mail", "username")password = cf.get("mail", "password")
6、写入ini文件具体代码范例
import configparser
# ======== write 1.ini setting ===========
config = configparser.ConfigParser()
# set a number of parameters
config.add_section("book")
config.set("book", "title", "the python standard library")
config.set("book","author", "fredrik lundh")
config.add_section("ematter")
config.set("ematter", "pages","250")
# write to fileconfig.write(open('1.ini', "w"))
二、yaml文件
1、YAML定义
YAML的官方定义很简单,即“一种人性化的数据格式定义语言”,其主要功能用途类似于XML或JSON,YAML使用空白字符和分行来分隔数据,且巧妙避开各种封闭符号,如:引号、括号等,以避免这些符号在复杂层次结构中变得难以辨认。YAML的语法与高阶语言类似,可以很简单地表述“序列(java中的list)、杂凑表(java中的map)、标量(java中的基本类型等)”数据结构,它重点强调可阅读性。
2、YAML用途
#YAML比较适合做序列化。因为它是宿主语言数据类型直转的。
#YAML做配置文件也不错。写YAML要比写XML快得多(**无需关注标签或引号**),并且比ini文档功能更强。
3、YAML vs XML
与YAML相似的数据格式定义语言是XML,YAML比XML优越性表现在
> - YAML的可读性好
> - YAML和脚本语言的交互性好
> - YAML使用实现语言的数据类型
> - YAML有一个一致的信息模型
> - YAML易于实现
上面5条是XML不足的地方,同时,YAML也具有XML的下列优点:
> - YAML可以基于流来处理
> - YAML表达能力强,扩展性好
YAML类似于XML的数据描述语言,语法比XML简单很多,YAML试图用一种比XML更敏捷的方式,来完成XML所完成的任务。
4、YAML-对象示例
YAML 支持的数据结构有三种。
#对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
#数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
#纯量(scalars):单个的、不可再分的值

5、python读取YAML文件
代码片段如下:
import yaml
# ======== Reading mail.yaml setting ===========
fr = open("D:\\API\\config\\mail.yaml")
get_config = yaml.load(fr)
smtpserver = get_config["smtpserver"]
sender = get_config["sender"]
receiver = get_config["receiver"]
username = get_config["username"]
password = get_config["password"]
以上为最简单的用法,大家如有兴趣可以自行延伸学习~~
Selenium--数据驱动(python)的更多相关文章
- 【转】Selenium WebDriver + Python 环境
转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
- selenium webdriver (python) 第二版
前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...
- selenium webdriver (python) 第三版
感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...
- Selenium WebDriver + Python 环境配置
1. 下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...
- Selenium终极自动化测试环境搭建(二):Selenium+Eclipse+Python
前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上,下面再举例Selenium+Eclipse+Python测试环境搭建. 第一步:安装Pyth ...
- Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python
Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python 前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上, ...
- selenium webdriver python 开始
学习资料: Selenium with Python: http://selenium-python.readthedocs.org/en/latest/index.html 乙醇的python se ...
- selenium webdriver (python)2
selenium webdriver (python) 第二版 前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...
- selenium webdriver (python)
selenium webdriver (python) 第一版PDF Posted on 2013-08-30 22:59 虫师 阅读(221) 评论(0) 编辑 收藏 前言 如果你是一位有pytho ...
随机推荐
- Skype 服务器客户端策略参数优化
1.skype通讯录原理 对于skype客户端的通讯录同步,首先说说原理,通讯簿信息是从AD同步的skype前端服务器(每天1:30),在从前端服务器同步的客户端(大概1小时内同步一次). skype ...
- MySQL运维之---mysqldump备份、select...into outfile、mysql -e 等工具的使用
1.mysqldump备份一个数据库 mysqldump命令备份一个数据库的基本语法: mysqldump -u user -p pwd dbname > Backup.sql 我们来讲解一下备 ...
- 【2017下集美大学软工1412班_助教博客】团队作业3——需求改进&系统设计团队成绩公示
作业要求 团队作业3--需求改进&系统设计 团队评分结果 Total QH BZ GJ MS SXX WBS SJ JG SJK JH NR CS PHILOSOPHER 需求改进&系 ...
- SAP BPC方案介绍
refer to http://sapper.blog.sohu.com/166039991.html SAP/BPC简介: 全面预算管理是联系公司战略目标与日常运营的重要纽带,它上到战略层面.下到执 ...
- mpvue 使用echarts动态绘制图表(数据改变重新渲染图表)
最近在公司开发一款微信小程序,按照客户需求用饼状图显示当前设备状态(开机.故障.关机),于是就在网上寻找各种资料,找了很多mpvue使用关于echarts绘制图表,最终功夫不负有心人,找到一篇关于mp ...
- numpy 的排序
import numpy as np # 1.快速排序 ''' 1.np.sort(),不改变原先值的顺序,但是在运行时占内存 2.ndarry.sort(),改变原先值的顺序,不占用内存 ''' # ...
- android与JS交互,互相调用方法,跳转到网页
在main下面New - Folder - Assets Folder,在Assets下面新建一个js_android.html <html><head> <meta h ...
- 2.2.3 TableLayout(表格布局)
3.如何确定行数与列数 ①如果我们直接往TableLayout中添加组件的话,那么这个组件将占满一行!!! ②如果我们想一行上有多个组件的话,就要添加一个TableRow的容器,把组件都丢到里面! ③ ...
- 信号处理开源库SP++介绍
SP++ (Signal Processing in C++) 是一个关于信号处理与数值计算的开源 C++程序库,该库提供了信号处理与数值计算中常用算法的 C++实现.SP++中所有算法都以 C++类 ...
- RPC使用rabbitmq实现
两天时间重写公司架构在本地实现测试学习 双向连接客户端和服务端配置: 连接rabbitmq服务器 定义消息队列 配置发送请求的模板:交换机.消息队列. 配置监听处理:监听的队列.消息转换处理 配置处理 ...