configparser简介

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

ini文件相关知识

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

ini文件示例

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

操作ini文件

认准三部曲

  1. 实例化ConfigParser类
  2. 读取配置文件
  3. 操作配置文件

基础代码

     import configparser

     filename = 'F:/Interface/config/server.ini'
# 实例化configparser
config = configparser.ConfigParser() # 读取配置文件
config.read(filename, encoding="utf-8-sig") # 获取某个option的值(最常见的操作)
config.get(section="server", option="username")

包含知识点

  • 当你配置文件有中文时,在调用 read() 方法时,需要传  encoding="utf-8-sig" 参数
  • 最常见的操作就是 get(section,option,fallback="默认值") ,获取某个option的值,当然也可以传个 fallback ,当你的option不存在的时候,就会返回fallback的值

configparser封装类

为了更好的复用configparser,我们将常用的方法写成一个封装类

 #!/usr/bin/env python
# -*- coding: utf-8 -*- """
__title__ = 操作配置文件工具类
""" import configparser class ConfigUtil:
# 实例化configparser
config = configparser.ConfigParser() def read(self, filename):
"""
读取配置文件
:param filename: 配置文件路径
"""
self.config.read(filename, encoding="utf-8-sig") def get(self, _options, _section='server'):
"""
获取某个options值
:param _options: option
:param _section: section
"""
try:
# 方式一:调用方法
value = self.config.get(section=_section, option=_options, fallback="默认值,key不存在则返回此值") # 方式二:索引
value = self.config[_section][_options]
except Exception as e:
print("没有获取到值")
value = None
return value def get_options_key_value(self, _section):
"""
以列表(name,value)的形式返回section中的每个值
:param _section: 某个section
:return: list[tuple(key,value)]
"""
return self.config.items(_section) def get_all_section(self):
"""
获取所有section
"""
return self.config.sections() def get_options_by_section(self, _section):
"""
获取section下所有可用options
"""
# 方式一
keys = []
for _options in self.config[_section]:
keys.append(_options) # 方式二(推荐)
keys = self.config.options(_section)
return keys def assert_section_in_config(self, _section):
"""
判断section是否存在
:param _section: 需要判断的section
"""
return _section in self.config def assert_options_in_section(self, _section, _options):
"""
判断options是否存在某个section中
:param _section: 某个section
:param _options: 需要判断的options的key值
"""
return _options in self.config[_section] configUtil = ConfigUtil() if __name__ == '__main__':
filename = 'F:/imocInterface/config/server.ini'
configUtil.read(filename)
print(configUtil.get("username"))
print(configUtil.get_all_section())
print(configUtil.assert_section_in_config("server"))
print(configUtil.get_options_by_section("server"))
print(configUtil.assert_options_in_section("server", "usernsame"))
print(configUtil.get_options_key_value("server"))

python接口自动化测试 - configparser配置文件解析器详细使用的更多相关文章

  1. Python标准组件ConfigParser配置文件解析器,保存配置时支持大写字母的方法

    虽然自己已经改用xml作为配置文件首选格式了,但是有时候还是需要解析ini.cfg文件(为了兼容早期版本或者其他作者的软件). 基本上Python自带的ConfigParser足够应对了,但是美中不足 ...

  2. python configparser配置文件解析器

    一.Configparser 此模块提供实现基本配置语言的ConfigParser类,该语言提供类似于Microsoft Windows INI文件中的结构.我们经常会在一些软件安装目录下看到.ini ...

  3. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  4. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  5. golang开发:类库篇(四)配置文件解析器goconfig的使用

    为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...

  6. parseConf(配置文件解析器)

    /****************************************************************************** * * parseConf(配置文件解析 ...

  7. Python模块之: ConfigParser 配置文件读取

    Python模块之: ConfigParser 配置文件读取   ConfigParser用于读写类似INI文件的配置文件,配置文件的内容可组织为组,还支持多个选项值(option-value)类型. ...

  8. python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为

    python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...

  9. python接口自动化测试七:获取登录的Cookies

    python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...

随机推荐

  1. C语言动态内存

    动态分配内存的概述 在数组一章中,介绍过数组的长度是预先定义好的,在整个程序中固定不变,但是在实际的编程中,往往会发生这种情况,即所需内存空间取决于实际输入的数据,而无法预先确定.为了解决上述问题,c ...

  2. ASP.NET WebForm Identity使用

    环境 win10企业版x64+visual studio 2017+.net 4.5 step1 基本使用+邮件确认+密码重置 https://docs.microsoft.com/en-us/asp ...

  3. windows下的redis和redismyadmin

    redis默认是16个数据库,从0-15 由于项目需要,我使用了19号数据库,然而再向19号数据库添加数据的时候,通过redismyadmin查看发现添加到19号数据库的数据会同步到0,16,17,1 ...

  4. Java8 Date API

    一 .Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也 ...

  5. appium工作流程解析

    为什么选择appium ​ app自带测试框架,为什么要选择appium这个测试框架呢? Ios9.3以前使用的是UIAutomation,Ios9.3以后使用XCUITest.如果只使用Apple的 ...

  6. 【他山之石】mysql编码问题总结

    有些问题可能比较基础,但是没有经过系统学习还是可能会出错,记录下. 这次是mysql的编码问题. 背景是部署新的测试环境,给了一台服务器还有在另一个环境下的mysql,配置过程中发现mysql编码有问 ...

  7. jmeter 5.1版本更新说明

    版本5.1 摘要 新的和值得注意的 不兼容的变化 Bug修复 改进 非功能性变化 已知问题和解决方法 谢谢 新的和值得注意的 核心改进 JDBC测试已得到改进,能够设置init SQL语句并添加与不支 ...

  8. Head First设计模式——组合模式

    最近比较忙,有段时间没有更新设计模式的进度了.今天继续学习组合设计模式. 组合模式的例子我们继续延续上篇<Head First设计模式——迭代器模式>的菜单例子,首先声明下迭代器和组合模式 ...

  9. Javascript用途,语法特点,难点,调试工具,引入方式,命名规范,变量声明及赋值,数据类型,运算符

    JavaScript用来干什么 数据的验证 将动态的内容写入到网页当中(ajax) 对事件做出相应 读写html当中的内容 检测浏览器 创建cookies 模拟动画 语法特点 基于对象和事件驱动的松散 ...

  10. LibreOJ 6278. 数列分块入门 2 题解

    题目链接:https://loj.ac/problem/6278 题目描述 给出一个长为 \(n\) 的数列,以及 \(n\) 个操作,操作涉及区间加法,询问区间内小于某个值 \(x\) 的元素个数. ...