AI智能
改变未来

Python接口自动化测试-读取config配置文件


configparser简介

  • ConfigParser模块已在Python 3中重命名为configparser
  • 该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于.ini的文件结构

ini文件相关知识

  • 键值对可用=或者:进行分隔
  • section的名字是区分大小写的,而option的名字是不区分大小写的
  • 键值对中头部和尾部的空白符会被去掉
  • 值可以为多行
  • 配置文件可以包含注释,注释以 ;或者 # 为前缀

ini文件示例

[server]age = 45username = yes# server就是section# age、username就是opti

  

操作ini文件

  1. 实例化ConfigParser类
  2. 读取配置文件
  3. 操作配置文件
1     import configparser23     filename = \'F:/Interface/config/server.ini\'4     # 实例化configparser5     config = configparser.ConfigParser()67     # 读取配置文件8     config.read(filename, encoding=\"utf-8-sig\")910     # 获取某个option的值(最常见的操作)11     config.get(section=\"server\", option=\"username\")

configparser封装类

为了更好的读取配置文件的信息,对configparser进行封装

1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-34 \"\"\"5 __title__  = 操作配置文件工具类6 \"\"\"78 import configparser91011 class ConfigUtil:12     # 实例化configparser13     config = configparser.ConfigParser()1415     def read(self, filename):16         \"\"\"17         读取配置文件18         :param filename: 配置文件路径19         \"\"\"20         self.config.read(filename, encoding=\"utf-8-sig\")2122     def get(self, _options, _section=\'server\'):23         \"\"\"24         获取某个options值25         :param _options: option26         :param _section: section27         \"\"\"28         try:29             # 方式一:调用方法30             value = self.config.get(section=_section, option=_options, fallback=\"默认值,key不存在则返回此值\")3132             # 方式二:索引33             value = self.config[_section][_options]34         except Exception as e:35             print(\"没有获取到值\")36             value = None37         return value3839     def get_options_key_value(self, _section):40         \"\"\"41         以列表(name,value)的形式返回section中的每个值42         :param _section: 某个section43         :return: list[tuple(key,value)]44         \"\"\"45         return self.config.items(_section)4647     def get_all_section(self):48         \"\"\"49         获取所有section50         \"\"\"51         return self.config.sections()5253     def get_options_by_section(self, _section):54         \"\"\"55         获取section下所有可用options56         \"\"\"57         # 方式一58         keys = []59         for _options in self.config[_section]:60             keys.append(_options)6162         # 方式二(推荐)63         keys = self.config.options(_section)64         return keys6566     def assert_section_in_config(self, _section):67         \"\"\"68         判断section是否存在69         :param _section: 需要判断的section70         \"\"\"71         return _section in self.config7273     def assert_options_in_section(self, _section, _options):74         \"\"\"75         判断options是否存在某个section中76         :param _section: 某个section77         :param _options: 需要判断的options的key值78         \"\"\"79         return _options in self.config[_section]808182 configUtil = ConfigUtil()8384 if __name__ == \'__main__\':85     filename = \'F:/imocInterface/config/server.ini\'86     configUtil.read(filename)87     print(configUtil.get(\"username\"))88     print(configUtil.get_all_section())89     print(configUtil.assert_section_in_config(\"server\"))90     print(configUtil.get_options_by_section(\"server\"))91     print(configUtil.assert_options_in_section(\"server\", \"usernsame\"))92     print(configUtil.get_options_key_value(\"server\"))

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python接口自动化测试-读取config配置文件