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)
原文地址:https://www.cnblogs.com/yif930916/p/14706611.html