zoukankan      html  css  js  c++  java
  • python自动化测试(4)--获取配置文件信息

    一、配置文件的类型

    在python自动化测试中,为了减轻测试脚本维护过程中工作量,我们可以将一些常用的变量或者参数值放置在配置文件中。当我们需要修改某个变量的值时,只需修改配置文件中的选项值就可以实现这一目的。

    除了可以减轻测试脚本在维护过程中的工作量,使用配置文件还有如下优点:

    (1)减少对源代码的改动点,提高代码的容错率;

    (2)提高了工作效率。

    在自动化测试中,经常使用的配置文件类型包括如下两类,分别为:

    .ini    ②.yaml

    其中.ini配置文件的书写格式如下:

    [section1]
    option1=value1
    option2=value2
    ...... [section2] option3
    =value3 option4=value4
    ......

    【示例】

    1 [log]
    2 name=login_test
    3 level=INFO
    4 file_ok=True
    5 file_name=login_test.log

    .yaml配置文件的书写格式如下(一般使用字典的方式进行书写):

    section1:
        option1: value1
        option2: value2
    ......
    
    section2:
        option3: value3
        option4: value4
    ......

    【示例】

    1 log:
    2   name: login_test
    3   level: WARNING
    4   file_ok: False
    5   file_name: mylog.log

    【说明】在使用.yaml配置文件时,option与value之间需要有一个空格

    二、读取配置文件信息的操作流程

    1、针对.ini配置文件,直接使用python自带的configparser模块读写配置文件

      1.1、导入configparser模块:from configparser import ConfigParser

      1.2、实例化ConfigParser类:config = ConfigParser()

      1.3、读取配置文件:config.read("配置文件名称.ini",encoding="utf-8")

      1.4、获取配置文件中某一option的值:val = config.get("section名称","option名称")

      1.5、获取指定section中的所有option:opts = config.options("section名称")

      1.6、获取当前配置文件中的所有section:secs = config.sections()

    【说明】

      支持读取出的数据为bool、int和float,需要将get()函数变更为:

      getboolean(section,option)

      getint(section,option)

      getfloat(section,option)

    2、针对.yaml配置文件,需要手动安装pyyaml:pip install pyyaml

      2.1、引入yaml模块:import yaml

      2.2、打开yaml文件

      2.3、调用yaml.load函数加载文件对象,返回值为dict

    【示例】

    1 import yaml
    2 
    3 with open("log.yaml",encoding="utf-8") as fs:
    4     datas = yaml.load(fs,yaml.FullLoader)
    5     pass
    6 
    7 for key,value in datas.items():
    8     print(key)
    9     print(value)

    三、代码实现

     1 from configparser import ConfigParser
     2 
     3 config = ConfigParser()
     4 # 读取配置文件
     5 config.read("log.ini",encoding="utf-8")
     6 # 读取配置文件中的某一项值
     7 val = config.get("log","name")
     8 print(val)
     9 
    10 # 获取当前的section
    11 secs = config.sections()
    12 print(secs)
    13 
    14 # 获取指定section中的所有options
    15 opts = config.options("log")
    16 print(opts)

    四、封装读取配置文件的操作

     由于读取配置文件信息的操作流程相对比较固定,因此我们可以其封装成一个类。当我们需要使用时,只需引入该模块即可。

     1 from configparser import ConfigParser
     2 import os
     3 
     4 class HandleConfig(ConfigParser):
     5 
     6     def __init__(self,file_path):
     7         super().__init__()
     8         # 将配置文件读入内存
     9         self.read(file_path,encoding="utf-8")
    10         pass
    11     pass
    12 
    13 # 在实际调用时,log.ini可以根据个人喜好进行自定义
    14 file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"log.ini")
    15 
    16 # 实例化配置类时,需要指定配置文件的名称
    17 handleConfig = HandleConfig(file_path)
  • 相关阅读:
    compile js file in java project
    AS400上的C编程
    Linux图片工具
    vncserver nonroot user
    [struts]freemarker.beans: Key "location" was not found on instance of java.lang.NullPointerException
    VS2010 express中改变VC Default include/lib/… 目录
    重启博客,回味在深圳打拼的软件从业生涯,与同路人共勉
    JavaScript设置Cookie、获取Cookie和清除Cookie
    WebService 开启参数调试
    JavaScript获取Url参数
  • 原文地址:https://www.cnblogs.com/yif930916/p/14706611.html
Copyright © 2011-2022 走看看