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)
  • 相关阅读:
    win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
    JQUERY UI Datepicker Demo
    Official online document, install svn server in centOS
    JAVE not work in linux
    AMR 转mp3 失败
    XD, XR, DR 股票
    Linux 下MySql 重置密码
    Difinition Of Done
    Apache, Tomcat, JK Configuration Example
    Linux 安装tomcat
  • 原文地址:https://www.cnblogs.com/yif930916/p/14706611.html
Copyright © 2011-2022 走看看