python接口自动化测试 - configparser配置文件解析器详细使用
configparser简介
- ConfigParser模块已在Python 3中重命名为configparser
- 该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构
ini文件相关知识
- 键值对可用 = 或者 : 进行分隔
- section 的名字是区分大小写的,而 option 的名字是不区分大小写的
- 键值对中头部和尾部的空白符会被去掉
- 值可以为多行
- 配置文件可以包含注释,注释以 # 或者 ; 为前缀
ini文件示例
[server]
age = 45
username = yes # server就是section
# age、username就是option
操作ini文件
认准三部曲
- 实例化ConfigParser类
- 读取配置文件
- 操作配置文件
基础代码
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配置文件解析器详细使用的更多相关文章
- Python标准组件ConfigParser配置文件解析器,保存配置时支持大写字母的方法
虽然自己已经改用xml作为配置文件首选格式了,但是有时候还是需要解析ini.cfg文件(为了兼容早期版本或者其他作者的软件). 基本上Python自带的ConfigParser足够应对了,但是美中不足 ...
- python configparser配置文件解析器
一.Configparser 此模块提供实现基本配置语言的ConfigParser类,该语言提供类似于Microsoft Windows INI文件中的结构.我们经常会在一些软件安装目录下看到.ini ...
- Python接口自动化测试框架实战 从设计到开发
第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...
- 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码
引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...
- golang开发:类库篇(四)配置文件解析器goconfig的使用
为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...
- parseConf(配置文件解析器)
/****************************************************************************** * * parseConf(配置文件解析 ...
- Python模块之: ConfigParser 配置文件读取
Python模块之: ConfigParser 配置文件读取 ConfigParser用于读写类似INI文件的配置文件,配置文件的内容可组织为组,还支持多个选项值(option-value)类型. ...
- 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 ...
- python接口自动化测试七:获取登录的Cookies
python接口自动化测试七:获取登录的Cookies,并关联到下一个请求 获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...
随机推荐
- dotnet 方法名 To 和 As 有什么不同
在看到 dotnet 框架里面有很多方法里面用了 ToXx 和 AsXx 好像都是从某个类转换为另一个类,那么这两个方法命名有什么不同 在约定的方法命名里面,用 To 的方法表示从类 A 转为类 B ...
- python 下载bilibili视频
说明: 1.清晰度的选择要登录,暂时还没做,目前下载的视频清晰度都是默认的480P 2.进度条仿linux的,参考了一些博客修改了下,侵删 3.其他评论,弹幕之类的相关爬虫代码放在了https://g ...
- Python反射笔记
通过字符串的形式,导入模块.使用__import__ In [3]: SYS = __import__("sys") In [4]: SYS.path 如果导入模块在多级文件夹下 ...
- Zabbix监控web
1.1 创建主机 1.2 应用集 1.3 创建web场景 1.4 创建触发器
- win32简单的sockeTCP协议通信
什么也不说了看代码 首先是服务端代码 #include <stdio.h> #include <stdlib.h> #include <WinSock2.h> #i ...
- 洛谷$P2486\ [SDOI2011]$染色 线段树+树链剖分
正解:线段树+树链剖分 解题报告: 传送门$QwQ$ 其实是道蛮板子的题,,,但因为我写得很呆然后写了贼久之后发现想法有问题要重构,就很难受,就先写个题解算了$kk$ 考虑先跑个树剖,然后按$dfn$ ...
- iOS颜色转换成图片的方法
// 颜色转换为背景图片 - (UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0 ...
- CompositePattern(组合模式)-----Java/.Net
组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象.组合模式依据树形结构来组合对象,用来表示部分以及整体层次.这种类型的设计模式属于结构型模式, ...
- 02_小程序——onPageScroll 你入坑了吗?
1:你的 onPageScroll 事件是不是失灵?闲话不多说,直接上代码!!! <!--pages/homePage/testing/testing.wxml--> <view c ...
- 前端Tips#3 - 简写的 border-radius 100% 和 50% 是等效的
本文同步自 JSCON简时空 - 技术博客,点击阅读 视频讲解 视频地址 文字讲解 1.先讲结论 border-radius 这个 css 属性大家应该使用得非常娴熟,现实中用到的场景基本都是四个圆角 ...