zoukankan      html  css  js  c++  java
  • 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"]


    以上为最简单的用法,大家如有兴趣可以自行延伸学习~~

    作者:搁浅
    出处: http://www.cnblogs.com/xiaoxi-3-/
    如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    mysql忘记密码怎么办?
    简单Ztree的实现————不连接数据库版
    正则那些事
    牛逼的OSQL----大数据导入
    从数据库导出数据
    瀑布流动态加载图片
    MVC中使用Ajax提交数据 Jquery Ajax方法传值到action
    励志经典,持续收集ing....
    看世界新闻网的简单实现
    TestList汇总
  • 原文地址:https://www.cnblogs.com/xiaoxi-3-/p/7501266.html
Copyright © 2011-2022 走看看