---  好的方法很多,我们先掌握一种  ---

【背景】

这里描述的配置文件为自动化用例中使用到的信息,非pytest自动化框架中例如pytest.ini, conftest.py等具有特殊意义的配置文件。

测试过程中一些固定的参数,例如:环境信息,用户密码等。我们可以存放在一个文件中,进行统一的维护管理,在用例中进行调用。

【方法】

对于配置文件的设计和获取有很多方法(yaml,json等等),这次我们说一个简单的,利用Python的configparser。

它是 Pyhton 标准库中用来解析配置文件的模块,它提供了方便的方法来解析配置文件并提取特定的配置项值,注意需要区分大小写。

配置文件由section和items 这2部分组成,对文件本身类型没有限制,满足类字典(键和值对应)类型就可以:

  section是相当于标签,用于区分不同的配置块。

  items是section下面的键和值。

配置文件的设计:

# 用户信息配置
[user_msg]
name = zhangsan
passwd = 123 # 安装信息配置
[install]
install_dir = /home/test/install_path

【使用】  

1. 内置模块导入和实例化

configparser属于内置模块,直接import就行,然后进行实例化

import configparser
conf = configparser.ConfigParser()
# 或者如下方式导入
from configparser import ConfigParser
conf = ConfigParser()

2. 先读取配置文件,然后获取配置项的值

config_path = '这里指定配置文件的路径'
# config_path = os.path.join(os.path.dirname(__file__),'config_file')
conf.read(config_path) # 取得配置文件中的信息
name = conf.get('user_msg','name') #获取用户信息中的name姓名
print(name)

【其他常用方法】

基于上面的示例conf

conf.section()  # 获取所有section,以列表形式返回(注意:不收集DEFAULT这个标签)

conf.add_section('new_section')  # 添加一个新标签,重名将报错

conf.has_section('section')  # 判断是否存在这个标签,如果存在返回True

conf.option('section') # 获取该section下的所有option,如果存在DEFAULT标签,会将它下面的option一起返回,只有名没有值

conf.has_option('section','option') # 判断某个section下是否存在指定的option,找不到自己的会到DEFAULT下找

conf.set(section,option,value) # 如果section和option都存在,则将对应的option值重设为value

【结尾】

配置文件如果作为自动化框架中用户的固定信息统一维护管理,一般通过get去获取信息情况较多。

当然configparser还有高阶方法,例如:实例化的设置,高级定制,需要更深入学习的小伙伴可查阅对应模块手册。

 

五分钟掌握Python中配置文件解析器configparser的使用的更多相关文章

  1. Python中配置文件解析模块-ConfigParser

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置).配置文件的格式是: []包含的叫section, section 下有option=value ...

  2. Python模块:配置文件解析器configparser

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...

  3. python接口自动化测试 - configparser配置文件解析器详细使用

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  4. 五分钟学会Python装饰器,看完面试不再慌

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第12篇文章,我们来看看Python装饰器. 一段囧事 差不多五年前面试的时候,我就领教过它的重要性.那时候我Pyt ...

  5. python中html解析-Beautiful Soup

    1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...

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

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

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

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

  8. python中@property装饰器的使用

    目录 python中@property装饰器的使用 1.引出问题 2.初步改善 3.使用@property 4.解析@property 5.总结 python中@property装饰器的使用 1.引出 ...

  9. WCF中配置文件解析

    WCF中配置文件解析[1] 2014-06-14 WCF中配置文件解析 参考 WCF中配置文件解析 返回 在WCF Service Configuration Editor的使用中,我们通过配置工具自 ...

  10. 简单说明Python中的装饰器的用法

    简单说明Python中的装饰器的用法 这篇文章主要简单说明了Python中的装饰器的用法,装饰器在Python的进阶学习中非常重要,示例代码基于Python2.x,需要的朋友可以参考下   装饰器对与 ...

随机推荐

  1. Spring Boot 中使用 JSON Schema 来校验复杂JSON数据

    JSON是我们编写API时候用于数据传递的常用格式,那么你是否知道JSON Schema呢? 在数据交换领域,JSON Schema 以其强大的标准化能力,为定义和规范 JSON 数据的结构与规则提供 ...

  2. RabbitMq高级特性之延迟队列 通俗易懂 超详细 【内含案例】

    RabbitMq高级特性之延迟队列 介绍 消息进入队列后不能立即被消费,到达指定时间后才可被消费 实现 结合以下两种即可达到延迟队列 RabbitMq高级特性之TTL过期时间 RabbitMq高级特性 ...

  3. 【牛客刷题】HJ15 求int型正整数在内存中存储时1的个数

    题目链接 题倒是很简单,最开始用了这么一种解法: package main import "fmt" func main() { a := 0 fmt.Scan(&a) s ...

  4. 【SpringCloud学习笔记(二)】用nacos做配置中心

    1. 学习目的 nacos除了作为服务注册中心之外,还能用作配置中心,可以说满足了日常的大部分需要.本次就是要学会如何使用nacos作为配置中心. 2. 操作 要使用nacos作为配置中心,需要首先引 ...

  5. UCX84X笔记

    1. 管脚定义 COMP: 误差放大器补偿引脚.将外部补偿元件连接到此引脚,以修改误差放大器输出.误差放大器内部有电流限制,因此用户可以通过外部强制COMP接地来命令零占空比. UCx84x系列中的误 ...

  6. 手把手教你如何上传代码到gitee服务器

    之前编写了几个适合新手的小项目, 为方便大家学习和下载代码, 决定把代码上传到gitee服务器. 不得不说,git是一个非常好用的代码版本管理工具, 本文手把手教大家如何将自己编写的代码上传到Gite ...

  7. 一文教你如何用C代码解析一段网络数据包?【含代码】

    本文的目的是通过随机截取的一段网络数据包,然后根据协议类型来解析出这段内存. 学习本文需要掌握的基础知识: 网络协议 C语言 Linux操作 抓包工具的使用 其中抓包工具的安装和使用见下文: < ...

  8. 将文件的换行符由 CRLF 转换为 LF

    在 DOS/Windows 文本文件中,换行,也称为新行,是两个字符的组合:回车(CR)后跟一个换行(LF).在 Unix 文本文件中,一行的换行是单个字符:换行(LF).在 Mac 文本文件中,在 ...

  9. 【Python】之操作鼠标键盘,上传文件,并支持中文

    Mac系统实现操作键盘 Python中模拟键盘和鼠标最著名的模块是:pymouse和pykeyboard.一次安装两个模块比较麻烦,而有一个库整合了这两个模块,而且能支持跨平台操作,这个库叫PyUse ...

  10. 阿里云【七天深入MySQL实战营】

    阿里云[七天深入MySQL实战营] 最近报名了阿里云[七天深入MySQL实战营].不过一直没时间看[最主要还是自己懒],看了下课程及答疑信息,感觉应该还可以,分享出来和大家一起学习学习​.现在课程已经 ...