python自动化测试框架之如何编写配置文件?使用ConfigParser试试
off999 2024-11-03 14:15 33 浏览 0 评论
1. 配置文件说明
只要是用编写项目,你就肯定离不开配置文件 。就以测试人员编写的自动化测试项目为例 ,如果你做连接数据库 、访问一些第三方接口、或者访问登录接口的用户名和密码。这些输入的信息最大特点就是都可能是变量,比如访问数据库时的信息在测试环境1上是一套、但是访问另外一套测试环境这些信息就已经发生变化了 。
这个时候怎么办 ?通过的方式就是这些很可能发生变化的信息放在一个文件中去管理 ,这样发生变化时,只需要修改这个文件中的信息就可。
如果你使用的是python编写的自动化项目 ,它有第一个第三方包就是专门做配置文件读取和写入的,这个包就是ConfigParser
2.ConfigParser介绍
1.下载安装
# 下载
pip install configparser
# 验证 :
pip show configparser2.导包
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", encoding="utf-8")
print("返回所有的sections:",config.sections())
#运行结果
# ['db', 'user_info']案例2 : 获取指定section 的键名。即将配置文件某个section 所有的键:
import configparser
config = configparser.ConfigParser()
config.read("my.ini", encoding="utf-8")
r = config.options("db")
print(r)
#运行结果
# ['host', 'port', 'user', 'password', 'database']案例3 : 获取指定section下指定option的值
import configparser
config = configparser.ConfigParser()
config.read("my.ini", encoding="utf-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", encoding="utf-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", encoding="utf-8")
if not config.has_section("result"): # 检查是否存在result
config.add_section("result")
if not config.has_option("result", "report"): # 检查是否存在该option
config.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", encoding="utf-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", encoding="utf-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", encoding="utf-8")
config.remove_option("user_info","password") # 删除user_info下的password键值对
config.write(open("my.ini", "w"))4.项目实践
在自动化项目就可以这样配置 ,具体如下 :
4.项目总结
至此,我们已经实现了五步了 ,分别是 :
第一 、如何编写一个接口自动化框架 ,在第一篇博文中介绍了 。https://www.toutiao.com/item/7223778665283404323/
第二、如何使用unittest编写测试用例 ,已经在第二篇博文中介绍了 。https://www.toutiao.com/item/7225986414469825024/
第三、如何使用requests实现接口请求 ,并和测试用例如何对接 ,已经在第三篇博文中介绍了。https://www.toutiao.com/item/7231485629643997748/
第四、如何使用yaml编写测试数据 ,已经在第四篇博文中介绍了 。https://www.toutiao.com/item/7236369710286733861/
第五,如何使用allure生成测试报告,已经在第五篇博文中介绍了 。https://www.toutiao.com/item/7243783682144944697/
第六 ,如何使用loguru记录日志 ,已经在第六篇博文中介绍了 。https://www.toutiao.com/item/7253833815246815796/
第七,如何使用pymysql连接数据库,已经在第七篇博文中介绍了 。https://www.toutiao.com/item/7256573953278214668/
第八,如何进行数据参数化 ,已经在第八篇博文中介绍了 。https://www.toutiao.com/item/7264358637693354553/
第九,如何进行读取配置文件数据,就是也就是本篇博文了 。
相关推荐
- cad提供的激活码16组(autocad2014永久激活码16个)
-
1.断开网络,拔除网线或禁用网卡;2.安装时输入序列号“666-69696969”,产品密钥“001H1”;3.安装完毕后启动AutoCAD2017,点击“激活”,然后选择“使用脱机方法申请激活码...
- 163com免费邮箱(163邮箱网页版入口)
-
163邮箱官网首页入口为http://mail.163.com/网易163免费邮箱--中文邮箱第一品牌.容量自动翻倍,支持50兆附件,免费开通手机号码邮箱赠送3G超大附件服务.支持各种客户端软件收发,...
- 三国老款经典单机游戏(老版的三国单机游戏)
-
《三国战记》;《三国群英传》;《三国志》;《三国杀》。游戏介绍:《三国战记》:《三国战纪:风云再起》游戏背景为东汉末年,异象四起:连年天灾、作物欠收、民不聊生,连带影响税收。以张角为首的黄...
- 视频转换器哪个好(视频转换器排行榜)
-
建议使用狸窝转换器,它功能齐全,界面简洁,体积小,速度快。嗨格式视频转换器是一款非常实用的视频文件转换工具,它可以将各种视频格式之间进行转换,例如将MP4、AVI、MOV等视频格式转换成其他常见的视频...
-
- 自动算税软件(自动算税软件怎么用)
-
1、首先,打开手机,找到appstore,在appstore内输入个人所得税。点击获取之后会在页面底部出现如下弹框,点击安装。2、之后会出现如下弹框,显示获取个人所得税app需要进行一个简短的验证才可以,点击继续按钮。在输入框内输入上面...
-
2026-01-18 18:03 off999
- 农场类模拟经营游戏(一款很老的农场游戏)
-
个人觉得《真实模拟农场3D》好玩!这是一款以经营农场为主题的模拟类游戏,你会马上成为一个农场主人。负责一块开阔农场的日常运营,把自己的农场运作的蒸蒸日上,成为最富有的农场主。玩家可以驾驶拖拉机,收割机...
-
- 做图片的软件(做图片的软件app)
-
有手机版的p图大神可以制作好玩的图片此软件专门进行图片恶搞的,手机用美图秀秀,电脑上用ps推荐7个冷门APP吧,以上APP都是朋友推荐或自己无意间发现的,如有雷同,纯属意外。1.马卡龙玩图:马卡龙玩图是一款非常有趣的修图APP,强大的抠图功...
-
2026-01-18 17:15 off999
-
- 德国vs日本视频直播(德国vs日本视频直播回放)
-
世界杯直播德国与日本的比赛是在北京时间的11月23日21点这个时间段举行,这场比赛在卡塔尔世时间则是为16:00点。历史上德国和日本曾经有过2次交手,在2004年12月(日本0-3德国)和2006年5月(德国2-2日本)两队分别进行过2场友...
-
2026-01-18 17:03 off999
- 卡牌类手游排行榜第一名(卡牌类手游排行榜第一名是谁)
-
阴阳师忘川风华录神将三国姬斗无双天地劫:幽成再临月圆之夜阿比斯之旅黑潮之上山海镜花斗罗大陆:武魂觉醒以下是一拳超人手游中常见的卡牌排名:S级卡牌:1.一拳超人(变身)2.童帝(变身)3.杰诺斯A...
- 英雄联盟手游内测申请(英雄联盟手游内测申请地址)
-
要申请英雄联盟手游内测资格,您需要先安装好游戏并创建账号。然后根据游戏官方发布的内测申请指南,在指定时间内填写相应的申请表格。一般来说,申请表格会要求您填写以下信息:1.基本个人信息:包括姓名、年龄...
- 金色影视影视剧(金色影视 tv)
-
电影《金色池塘》拍摄地是英国南部新汉普郡。《金色池塘》是由马克·雷戴尔执导,凯瑟琳·赫本、亨利·方达等主演的剧情片。该片根据欧内斯特·汤普森的同名戏剧改编而成,讲述了年老的诺曼与女儿之间出现了感情危机...
- 下载全民k歌免费安装(找回《全民k歌》)
-
打开全民k歌网页版,打开想要下载的歌曲按F12,点击Network的选项,再按ctrl+R找到里面最大的文件,右键openlinkinnewtab新的页面中右键另存为,就可以下载了1.确保您的手机支...
- oa软件排行榜前十名(oa软件下载)
-
OA办公软件有很多,例如泛微、致远、蓝凌、华天动力、索昂、通达、飞企、微宏、万户、金和、今目标、协众、云之家、泛普、明道、天翎、手册类、安创安全OA、小熊OA等相对大型企业来说,中小型企业的管理规范...
- 免费下载优酷视频(优酷下载 安装)
-
首先,你要开通优酷VIP,不然很多电影都下载不了,其次就是打开手机上的优酷,找到自己想看的电影,点击进去,然后再播放页面,点击下面的下载按钮。选择下载版本的质量进行下载,有超清,高清,标清,然后返回到...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
