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

【背景】

这里描述的配置文件为自动化用例中使用到的信息,非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. 【Playwright+Python】系列教程(八)鉴权Authentication的使用

    写在前面 还是有些絮叨的感觉,官方翻译和某些博主写那个玩楞,基本都是软件直接翻译后的产物. 读起来生硬不说,甚至有的时候不到是什么意思,真的是实在不敢恭维. 到底是什么意思? 就是你已经登陆过一次,在 ...

  2. kubernetes负载感知调度

    背景 kubernetes 的原生调度器只能通过资源请求来调度 pod,这很容易造成一系列负载不均的问题, 并且很多情况下业务方都是超额申请资源,因此在原生调度器时代我们针对业务的特性以及评估等级来设 ...

  3. 【CDQ分治】[P5094 [USACO04OPEN] MooFest G 加强版

    P5094 [USACO04OPEN] MooFest G 加强版 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include <bits/stdc++.h> us ...

  4. Minnaert

    Minnaert 假设气泡关闭时发生周期性膨胀和收缩,周围水也跟着振动,就嗷地一声叫了出来!设有个半径为 \(r\) 的泡形成后开始简谐振动,半径有 \[r=r_0+a\sin\frac{2\pi t ...

  5. JavaScript设计模式样例二十 —— 中介者模式

    中介者模式(Mediator Pattern) 定义:用来降低多个对象和类之间的通信复杂性.目的:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独 ...

  6. Linux离线安装Tomcat

    系统环境: centos7.3.1611 openjdk version "1.8.0_102" apache-tomcat-9.0.36.tar.gz tomcat 安装 #链接 ...

  7. androi studio bitmap 压缩后 图片方向异常

    Android 使用 Camera2拍照后,获得 byte[] data,随后使用 BitmapFactory.decodeByteArray  压缩 导致图片方向异常 /* * 避免出现方向异常 * ...

  8. CLion 2022.2.4破解教程详细图解mac,windows,linux均适用

    下载与安装 此教程为CLion 2022.2.4 破解教程,且此教程以及下面提供的破解补丁适用与2022.2以后的新版本. 2022年11月10日亲测有效,mac与windows均测试完美破解 CLi ...

  9. 小tips:nodejs请求接口超时使用中间件connect-timeout实现自动超时机制

    如果在请求中不设置超时时间,那么一直处理loading卡屏状态,使用connect-timeout来设置自动超时时间. 安装: npm install connect-timeout -S 如下例子: ...

  10. SQL通用语法与分类

    通用语法 1.SQL可以单行或多行书写,以分号结尾. 2.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写. 3.注释 1)单行注释: -- 注释内容  或 # 注释内容(MySQL特有) ...