python 读取配置文件的单元测试_如何利用python 读取配置文件

引言

在编写接口自动化测试脚本时,有时我们需要在代码中定义变量并给变量固定的赋值。为了统一管理和操作这些固定的变量,咱们一般会将这些固定的变量以一定规则配置到指定的配置文件中,后续需要用到这些变量和变量值时通过代码读取或者写入数据到该配置文件即可,使用配置文件的好处就是不用在程序员写死,可以使程序更灵活。因而对于python语言就封装了configparser模块,用来处理指定格式的文件(文件名称一般为xxx.ini),配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section), 每个节可以有多个参数(键=值)。

注:目前python3版本操作配置文件模块名称变更为configparser,原有的python2版本配置文件模块名称变更为ConfigParser

configparser模块功能介绍

configparser模块主要封装提供了ConfigParser()类、RawConfigParser()类、SafeConfigParser()类等,如下图导入configparser模块,可以查看并使用模块下已经封装好的所有类

8261919c0a2f8d99b7b87aecc506c091.png

在configparser模块中主要还是使用封装的ConfigParser()类提供的方法来操作配置文件,对配置文件进行数据读取和写入等。

配置文件的格式如下:

中括号“[ ]”内包含的为section。

section 下面为类似于key-value 的配置内容,一般是用赋值符“=”分隔。

示例:

5895790c3c98b514a898d75cae61b5e3.png

读取配置文件及其常用读取指定数据方法

ConfigParser()类提供了操作读取配置文件、读取指定配置文件中section、section下的所有key-value等方法,具体方法使用如下:

3b95029e700a02080e40ffb7fa7b81cf.png

代码示例:

import configparser

cf = configparser.ConfigParser() # 实例化

# read(filename) 读取文件

filename = cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')

# sections() 得到所有的section,以列表形式返回

sec = cf.sections()

print(sec)

# 得到section下的所有option

opt = cf.options("mysql")

print(opt)

# items 得到section的所有键值对

value = cf.items("mysql")

print(value)

print(dict(value)) # 转成字典类型

# get(section,option) 得到section中的option值,返回string/int类型的结果

mysql_host = cf.get("mysql","host")

mysql_password = cf.getint("mysql","port")

print(mysql_host,mysql_password)

运行以上代码输出如下:

d0935a94fc3f227f578d40f5c7a9146e.png

写入配置文件(增删改操作)及其提供的操作方法

ConfigParser()类提供了写入修改配置文件数据等方法,具体方法使用如下:

e864cf60d482a61ad91256d75094dd6c.png

在配置文件编辑如下信息:

01b2ed2b1219c10210e493cf5bb64715.png

编辑如下代码:

import configparser

conf = configparser.ConfigParser()

conf.read(r'G:\api_test\configfile.ini',encoding='utf-8')

conf.set("code", "code", "6666")  # 修改指定section 的option

conf.set("code", "age", "123")  # 增加指定section 的option

conf.has_section("code")

conf.has_option("code","age")

#conf.remove_section("test")

#conf.remove_option("test","haha")

if 'test' not in conf.sections():

conf.add_section("test")  # 增加section

conf.set("test", "haha", "123")  # 给新增的section 写入option

file = open(r'G:\api_test\configfile.ini', 'w',encoding='utf-8')

conf.write(file)

file.close()

运行结束后如下:

55c71cae4950594646bec563de603bf4.png

编辑修改配置文件记得关闭配置文件。

通过以上使用ConfigParser()类提供读写配置文件的相关方法,就可以比较方便的操作配置文件。but,以上向配置文件读取和写入数据到配置文件的代码,并没有进行封装。由于经常需要使用配置文件进行数据读取和写入,因此建议将操作配置文件读写的操作封装成公共的模块。如操作读取配置文件的数据的封装,配置文件内容如下:

ad15c52451f319f3442b071df75ec75e.png

新建read_config.py文件,封装的读取配置文件的代码,实例如下:

import configparser

import os

class ReadConfig():

def __init__(self, filepath=None):

root_dir = os.path.dirname(os.path.abspath('.'))        # 获取项目主路径

# print("打印",root_dir)

configpath = os.path.join(root_dir, "configfile.ini")  # 拼接路径

# print("得到的路径为",configpath)

self.cf = configparser.RawConfigParser()

self.cf.read(configpath,encoding='utf-8')

def get_cookie(self, param):

value = self.cf.get("cookie", param)

return value

def get_sheet(self,param):

value = self.cf.get("sheet",param)

return value

def get_mysql(self,param):

value = self.cf.get("mysql",param)

return value

def get_code(self,param):

value = self.cf.get("code",param)

return value

这样封装成类后,后续其他模块需要读取配置文件数据,就可以不用重复写读取配置文件的代码,直接引入该封装的类,并实例化对象调用类里面封装的方法即可。

以上就是如何利用python 读取配置文件的详细内容,更多关于python 读取配置文件的资料请关注脚本之家其它相关文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值