python:实例化configparser模块读写配置文件
之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用。
实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高了代码的可读性。。。
1、配置文件
configparser模块支持读取.conf和.ini等类型的文件,在文件夹新建一个.ini文件,写入一些信息,示例如下:
config.ini
[driver]
chromedriver = E:\automation\UI\Testcase\browser\chromedriver.exe
[homepage]
url = https://www.sougou.com/
[signup]
name = E:\automation\UI\Testdata\signup-data.csv
[login]
name = E:\automation\UI\Testdata\login-data.csv
[sign_user]
name = E:\automation\UI\Testdata\sign_user.csv
[sign_mobile]
name = E:\automation\UI\Testdata\sign_mobile.csv
[sign_pwd]
name = E:\automation\UI\Testdata\sign_pwd.csv
[vip_user]
name = E:\automation\UI\Testdata\vip_user.csv
[serach]
name = E:\automation\UI\Testdata\search.csv
[DATABASE]
host = 10.0.0.1
username = TEST
password = test
dbname = Test
[HEADERS]
contentType = application/x-www-form-urlencoded
[HTTP]
url = https://baidu.com
login = https://github.com
2、configparser读取配置信息并实例化
可以将要访问的url地址、读取的数据文件路径、数据库信息等写入配置文件,然后利用configparser模块读取,然后实例化,示例代码如下:
readConfig.py
# coding=utf-8
import os
from configparser import ConfigParser # 获取绝对路径
BASE_DIR = os.path.dirname(__file__)
CONFIG_FILE_PATH = os.path.join(BASE_DIR, "config.ini") # 配置文件名称 class MyConfig:
def __init__(self): config = ConfigParser()
config.read(CONFIG_FILE_PATH) self.browerDriver = config.get("driver", "chromedriver") # 浏览器驱动
self.homedoUrl = config.get("homepage", "url") # 搜狗url
self.signupData = config.get("signup","name") # 用户注册测试数据
self.loginData = config.get("login","name") # 用户登录测试数据
self.signUser = config.get("sign_user","name") # 注册用户数据
self.signMobile = config.get("sign_mobile","name") # 注册用户手机号码
self.signPwd = config.get("sign_pwd","name") # 注册用户密码
self.vipUser = config.get("vip_user","name") # 生产白名单测试账号
self.search = config.get("serach","name") # 搜索数据
self.contentType = config.get("HEADERS", "contentType") # 请求头连接类型
self.URL = config.get("HTTP", "url") # 百度URL
self.loginURL =config.get("HTTP", "login") # github的URL myconfig = MyConfig()
3、调用实例化的配置信息
将我们需要的信息实例化后封装,在需要的时候,直接调用即可,示例代码(测试手机验证码)如下:
test_mobcode.py
# coding=utf-8
from selenium import webdriver
from readConfig import myconfig
from selenium.webdriver.common.by import By
import unittest,time class MobCodeTest(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Chrome(myconfig.browerDriver) # 调用实例化后的浏览器驱动
self.driver.maximize_window()
self.url = myconfig.homedoUrl # 调用实例化后的请求url def test_mobcode(self):
driver = self.driver
driver.get(self.url)
driver.implicitly_wait(3)
driver.find_element_by_link_text("免费注册").click()
driver.find_element_by_id("txtMobileCode").send_keys("")
driver.find_element_by_class_name("login-btn").click() # 定位报错提示元素并断言,打印出来
error = driver.find_element_by_xpath("//*[@id=\"loginForm\"]/div/dl[2]/dd/p")
print(error.text)
self.assertIsNotNone(error.text) def tearDown(self):
self.driver.close() suite = unittest.TestSuite()
suite.addTest(MobCodeTest("test_mobcode"))
runner = unittest.TextTestRunner()
runner.run(suite)
可以想象,如果不将url、驱动路径等写入配置文件,而是直接写入脚本,那么脚本本身的维护成本将变得很大,而且可读性也并不好。
对于自动化测试动辄几十上百条测试用例来说,这将是一场灾难。。。
以上内容仅供参考,其中某些敏感信息已经脱敏,望理解。。。
python:实例化configparser模块读写配置文件的更多相关文章
- Python自动化测试 -ConfigParser模块读写配置文件
C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
- python:利用configparser模块读写配置文件
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...
- 用ConfigParser模块读写配置文件——Python
对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...
- Python自动化测试 (二) ConfigParser模块读写配置文件
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section, section 下有op ...
- Python使用ConfigParser模块读取配置文件(config.ini)以及写入配置文件
前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser.configPars ...
- configparser模块读写ini配置文件
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...
- python中confIgparser模块学习
python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...
- python中configparser模块读取ini文件
python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...
- python封装configparser模块获取conf.ini值(优化版)
昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...
随机推荐
- AI在汽车中的应用:实用深度学习
https://mp.weixin.qq.com/s/NIza8E5clC18eMF_4GMwDw 深度学习的“深度”层面源于输入层和输出层之间实现的隐含层数目,隐含层利用数学方法处理(筛选/卷积)各 ...
- mybatis 通过实体类进行查询
如果使用实体类进行查询, 不管会不会使用到 主键, 都必须设置主键, 才能查询 <select id="selectByAppidAndServerCode" resultM ...
- Kotlin入门(23)适配器的进阶表达
前面在介绍列表视图和网格视图时,它们的适配器代码都存在视图持有者ViewHolder,因为Android对列表类视图提供了回收机制,如果某些列表项在屏幕上看不到了,则系统会自动回收相应的视图对象.随着 ...
- 第二篇 Html(13章节)-a标签,img标签,列表,表格
1. a标签 - 超链接,可以跳转 - 锚 href='#某个标签的ID' 标签的ID不允许重复 <!DOCTYPE html> <html lang="en&qu ...
- C#“必须先将当前线程设置为单个线程单元(STA)模式方可进行OLE调用”异常解决方案
关于这类问题网上搜索会有很多解决方案,但基本的意思都相差不大,大致问题出于启用线程时调用类似剪贴板Clipboard.SetDataObject出错,我把我的测试代码展现下: 解决方案:只需将thre ...
- 自动化测试基础篇--Selenium判断元素是够存在
摘自https://www.cnblogs.com/sanzangTst/p/8376101.html selenium+python处于学习阶段,功能实现之后开始整理之前写的代码,突然发现一个功能没 ...
- Elasticsearch深入搜索之全文搜索及JavaAPI使用
一.基于词项与基于全文 所有查询会或多或少的执行相关度计算,但不是所有查询都有分析阶段. 和一些特殊的完全不会对文本进行操作的查询(如 bool 或 function_score )不同,文本查询可以 ...
- 转:Log Explorer使用说明恢复被误删除的数据
一.介绍 Log Explorer主要用于对MSSQLServer的事物分析和数据恢复.你可以浏览日志.导出数据.恢复被修改或者删除的数据(包括执行过update,delete,drop和trunca ...
- c/c++ 标准库 string
c/c++ 标准库 string 标准库 string的小例子 test1~test10 #include <iostream> using namespace std; int main ...
- Windows安装paramiko和PyCharm工程导入
借鉴了CSDN博主Liam_Fang的paramiko安装 原文链接:https://blog.csdn.net/weixin_39912556/article/details/80543829 前提 ...