zoukankan      html  css  js  c++  java
  • 自动化框架——PO设计模式自学——参数化配置——ini配置文件——全面

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可。

    这篇博客,介绍下python中利用configparser模块读写配置文件的方法,仅供参考。。。

    一、读取文件

    configparser模块支持读取.conf和.ini等类型的文件,那么首先在文件夹新建一个.ini文件,写入一些信息,如下图:

    示例代码如下:

    复制代码
     1 # coding=utf-8
     2 import configparser
     3 import os
     4 
     5 os.chdir("E:\Automation\UI\testcase")
     6 cf = configparser.ConfigParser()
     7 
     8 # read(filename) 读文件内容
     9 filename = cf.read("test.ini")
    10 print(filename)
    11 
    12 # sections() 得到所有的section,以列表形式返回
    13 sec = cf.sections()
    14 print(sec)
    15 
    16 # options(section) 得到section下的所有option
    17 opt = cf.options("mysql")
    18 print(opt)
    19 
    20 # items 得到section的所有键值对
    21 value = cf.items("driver")
    22 print(value)
    23 
    24 # get(section,option) 得到section中的option值,返回string/int类型的结果
    25 mysql_host = cf.get("mysql","host")
    26 mysql_password = cf.getint("mysql","password")
    27 print(mysql_host,mysql_password)
    复制代码

    执行脚本,结果如下所示:

    1 ['test.ini']
    2 ['driver', 'mysql']
    3 ['host', 'port', 'username', 'password']
    4 [('path', 'E:\Automation\UI\testcase\browser\chromedriver.exe'), ('url', 'https://www.baidu.com/')]
    5 127.0.0.1 123456

    脚本解析:

    cf.read(filename):读取文件内容

    cf.sections():得到所有的section,并且以列表形式返回

    cf.options(section):得到section下所有的option

    cf.items(option):得到该section所有的键值对

    cf.get(section,option):得到section中option的值,返回string类型的结果

    cf.getint(section,option):得到section中option的值,返回int类型的结果

    二、写入文件

    如果需要在配置文件写入内容,需要os函数帮忙,示例代码如下:

    复制代码
     1 # coding=utf-8
     2 import configparser
     3 import os
     4 
     5 os.chdir("E:\Automation\UI\testcase")
     6 cf = configparser.ConfigParser()
     7 
     8 # 往配置文件写入内容
     9 
    10 # add section 添加section项
    11 # set(section,option,value) 给section项中写入键值对
    12 cf.add_section("mq")
    13 cf.set("mq", "user", "laozhang")
    14 cf.add_section("kafka")
    15 cf.set("kafka", "user", "xiaozhang")
    16  
    17 # write to file
    18 with open("test1.ini","w+") as f:
    19     cf.write(f)
    复制代码

    执行脚本,结果如下所示:

    脚本解析:

    cf.write(filename):将configparser对象写入.ini类型的文件

    add_section():添加一个新的section

    add_set(section,option,value):对section中的option信息进行写入

    三、修改文件

    还可以利用os函数对文件进行修改,示例代码如下:

    复制代码
     1 # coding=utf-8
     2 import configparser
     3 import os
     4 
     5 os.chdir("E:\Automation\UI\testcase")
     6 cf = configparser.ConfigParser()
     7 
     8 # 修改配置文件的内容
     9 
    10 # remove_section(section)  删除某个section的数值
    11 # remove_option(section,option) 删除某个section下的option的数值
    12 cf.read("test1.ini")
    13 cf.remove_option("kafka","user") 14 cf.remove_section("mq") 15 16 # write to file 17 with open("test1.ini","w+") as f: 18 cf.write(f)
    复制代码

    执行脚本,结果如下所示:

    脚本解析:

    cf.read(filename):读取文件(这里需要注意的是:一定要先读取文件,再进行修改)

    cf.remove_section(section):删除文件中的某个section的数值

    cf.remove_option(section,option):删除文件中某个section下的option的数值

    如上所示,就是configparser模块读写配置文件的方法,代码仅为参考,具体使用请自行实践。。。

  • 相关阅读:
    PHP 消息队列
    Nginx 设置负载均衡
    Nginx 服务器搭建
    PHP 获取文件扩展名的五种方式
    高并发和大流量解决方案
    <面试> PHP 常见算法
    Mysql 预查询处理 事务机制
    Linux定时任务 结合PHP实现实时监控
    Swoole 结合TP5搭建文字直播平台
    <记录> PHP Redis操作类
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12623908.html
Copyright © 2011-2022 走看看