前言:

什么是数据驱动?

从它的本意来解释,就是数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变。说人话,其实就是参数化。


本次介绍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)的更多相关文章

  1. 【转】Selenium WebDriver + Python 环境

    转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...

  2. Selenium + PhantomJS + python 简单实现爬虫的功能

    Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...

  3. selenium webdriver (python) 第二版

    前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...

  4. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  5. Selenium WebDriver + Python 环境配置

    1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...

  6. Selenium终极自动化测试环境搭建(二):Selenium+Eclipse+Python

    前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上,下面再举例Selenium+Eclipse+Python测试环境搭建. 第一步:安装Pyth ...

  7. Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python

    Selenium终极自动化测试环境搭建(二)Selenium+Eclipse+Python 前面举例了Selenium+Eclipse+Junit+TestNG自动化测试环境的搭建,在前一篇的基础上, ...

  8. selenium webdriver python 开始

    学习资料: Selenium with Python: http://selenium-python.readthedocs.org/en/latest/index.html 乙醇的python se ...

  9. selenium webdriver (python)2

    selenium webdriver (python) 第二版 前言  对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...

  10. selenium webdriver (python)

    selenium webdriver (python) 第一版PDF Posted on 2013-08-30 22:59 虫师 阅读(221) 评论(0) 编辑 收藏 前言 如果你是一位有pytho ...

随机推荐

  1. MySQL数据库的安装与基本操作

    实验要求: 1.安装mysql源码包,并做相关的配置和优化路径,启动服务. 步骤: 1)先查询MySQL软件的安装情况,如果有建议将其卸载, 2)安装光盘自带的ncurses-devel包. 3)My ...

  2. Resharper安装使用手册

    今天在博客园上看到一位大牛写了一遍关于.NET代码优化的文章,其中提到了Resharper这个工具,以前没使用过这个工具,突然想用这个工具来检查一下自己之前代码的规范程度,也是为了写出更规范的代码. ...

  3. PyQt5--QFontDiaglog

    # -*- coding:utf-8 -*- ''' Created on Sep 17, 2018 @author: SaShuangYiBing Comment: ''' import sys f ...

  4. 没有插件的sublime编辑器是没有灵魂的

    这阵子各种捣鼓,现在趁有空记录一下sublime编辑器的一些实用的插件和安装方法,下午又该继续学习了. 接下来安装的是htmlHint.jsHint.cssLint以及汉化这几种插件,其实插件会使我们 ...

  5. MySQL Error Code文档手册---摘自MySQL官方网站

    This chapter lists the errors that may appear when you call MySQL from any host language. The first ...

  6. git pull与本地修改冲突

    1.先将本地修改存储起来 $ git stash 这样本地的所有修改就都被暂时存储起来 . $ git stash list                 可以看到保存的信息: git stash暂 ...

  7. [AHOI2014/JSOI2014]支线剧情

    题目 有源汇上下界最小费用可行流 首先注意到要求是每一条边都经过至少一次,所以对于每一条边我们设成\([1,\infty]\)就好了 另外所有点都能结束剧情,所有点都要向汇点\(t\)连一条\([0, ...

  8. 3532: [Sdoi2014]Lis

    Description 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci.请删除若干项,使得4的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案. 如果有多种方案,请输出将删去 ...

  9. Node.js实战(三)之第一个Web服务器

    这次的示例同样也可以说是HelloWorld,只不过不同的是这是web服务器示例. (1)编写web.js,内容如下: var http = require("http") fun ...

  10. WorldWind源码剖析系列:四元数类Quaternion

    PluginSDK中的Quaternion4d类可能是感觉Microsoft.DirectX. Quaternion类不太实用或不够用,自己有重新写的. 四元数是英国数学家哈密顿(W.R.Hamilt ...