杭州手机网站建设公司,免费的库存管理软件有哪些,wordpress免费企模板下载,网站备案的程序1. 配置文件说明
只要是用编写项目#xff0c;你就肯定离不开配置文件 。就以测试人员编写的自动化测试项目为例 #xff0c;如果你做连接数据库 、访问一些第三方接口、或者访问登录接口的用户名和密码。这些输入的信息最大特点就是都可能是变量#xff0c;比如访问数据库…1. 配置文件说明
只要是用编写项目你就肯定离不开配置文件 。就以测试人员编写的自动化测试项目为例 如果你做连接数据库 、访问一些第三方接口、或者访问登录接口的用户名和密码。这些输入的信息最大特点就是都可能是变量比如访问数据库时的信息在测试环境1上是一套、但是访问另外一套测试环境这些信息就已经发生变化了 。
这个时候怎么办 通过的方式就是这些很可能发生变化的信息放在一个文件中去管理 这样发生变化时只需要修改这个文件中的信息就可。
如果你使用的是python编写的自动化项目 它有第一个第三方包就是专门做配置文件读取和写入的这个包就是ConfigParser
2.ConfigParser介绍
1.下载安装
# 下载
pip install configparser# 验证
pip show configparser
2.导包
import configparser
from configparser import ConfigParser # 直接导入这个类# 说明 以上两种方式都可以
3.ConfigParser 格式
该模块适用于配置文件的格式与windows ini文件类似可以包含一个或多个节section每个节可以有多个参数键值。
每一个section代表一类型的配置 然后其下面的键值对就属于该section .比如我要在my.ini文件中编写一个db的section可以这样写
[db]
host 127.0.0.1
port 3306
user root
password root
database school
说明 这里的db就可以称为section 这里host,port等就可以称为options
当然这个文件可以编写多个section 具体存放什么 就看你项目的需求 。
3.ConfigParser功能
其实 对于ConfigParser类里的方法其实基本都围绕着配置文件里section 增、删、改、查。
我们先说查也就是读取section及section里的键值对 。因为section可能有一个或者多个。就以下面的这个配置文件my.ini为例。
[db]
host 127.0.0.1
port 3306
user root
password root
database school[user_info]
user_name admin
password 123456
3.1 读取配置信息
ConfigParser类里的一些方法
read(文件) : 读取配置文件
sections() : 获取某配置文件下所有的section
options(section) : 获取某一section下的所有的键名以列表返回。
get(section,key) : 获取某一section下某一options下的值
getint(section,key) : 获取到key对应的值转化为Int类型
getboolean(section,key) : 获取到key对应的值转化为boolean类型
getfloat(section,key) : 将获取到key对应的值转化为float类型
items(section) : 获取指定section的所用配置信息
使用流程如下 导包 import configparser 初始化对象 config configparser.ConfigParser() 读取配置文件 config.read(配置文件) 根据需求读取某一个section或者options 。
案例1获取所有section节点
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
print(返回所有的sections:,config.sections())#运行结果
# [db, user_info]
案例2 获取指定section 的键名。即将配置文件某个section 所有的键
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
r config.options(db)
print(r)
#运行结果
# [host, port, user, password, database]
案例3 : 获取指定section下指定option的值
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
r config.get(db, host) # 获取db下的host对应的值
# r1 config.getint(db, post) #将获取到值转换为int型
# r2 config.getboolean(db, k2 ) #将获取到值转换为bool型
# r3 config.getfloat(db, k3 ) #将获取到值转换为浮点型
print(r)
#运行结果
# 127.0.0.1
案例4 获取指定section所有的配置信息以列表返回
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
r config.items(db)
print(r)
#运行结果
#[(host, 127.0.0.1), (port, 3306), (user, root), (password, root), (database, school)]
3.2 添加/修改配置信息
ConfigParser类里的一些方法has_section(section) : 是否存在该section
has_option(section, option) : 是否存在该option
add_section(section) : 添加section
config.set(section, key, value) : 添加section里下面key value ,若该key不存在 。
write(文件对象) 写入内容
案例1 添加section和option ,并且检查是否存在section和option
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
if not config.has_section(result): # 检查是否存在resultconfig.add_section(result)
if not config.has_option(result, report): # 检查是否存在该optionconfig.set(result, report, test_report.html)
config.write(open(my.ini, w))
说明这里是因为在result下没有report这个option 故使用set方法相当于添加 。
案例2: 修改某个option下的值
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
config.set(db, port, 3307) #修改port的值为3307
config.write(open(my.ini, w))
3.3 删除配置信息
ConfigParser类里的一些方法remove_option(section,option) : 删除section下的option
remove_section(section) : 删除整个section下的所有内容
案例1 删除report这个section
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
config.remove_section(default) #整个section下的所有内容都将删除
config.write(open(my.ini, w))
案例2 删除user_info下的password
import configparser
config configparser.ConfigParser()
config.read(my.ini, encodingutf-8)
config.remove_option(user_info,password) # 删除user_info下的password键值对
config.write(open(my.ini, w))
4.项目实践
在自动化项目就可以这样配置 具体如下 4.项目总结
至此我们已经实现了五步了 分别是
第一 、如何编写一个接口自动化框架 在第一篇博文中介绍了 。
第二、如何使用unittest编写测试用例 已经在第二篇博文中介绍了 。
第三、如何使用requests实现接口请求 并和测试用例如何对接 已经在第三篇博文中介绍了。
第四、如何使用yaml编写测试数据 已经在第四篇博文中介绍了 。
第五如何使用allure生成测试报告已经在第五篇博文中介绍了 。
第六 如何使用loguru记录日志 已经在第六篇博文中介绍了 。
第七如何使用pymysql连接数据库已经在第七篇博文中介绍了 。
第八如何进行数据参数化 已经在第八篇博文中介绍了 。
第九如何进行读取配置文件数据就是也就是本篇博文了 。