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 ...
随机推荐
- VRRP技术总结和配置实践
1.VRRP作为网关可靠性的常用方法,基本思路是,两台路由器组成一个虚拟路由器,通过VRRP协议对内网呈现一个虚拟的网关ip, 以便让局域网内部的终端通过这个虚拟网关对外进行通信. 2.VRRP的最简 ...
- Glide图片加载框架小bug
如上一段加载图片的代码,本身是没问题的,后来测试发现有情况不显示url对应的图片,而一直显示加载超时的图片 修改如下: 将with()方法的上下文context改为图片的imageView.getCo ...
- Velodyne VLP-16 gmapping 建图
1. 测试环境 Ubuntu 16.04 x64.ROS Kinetic.Velodyne VLP-16.RoboWare Studio 2. 安装 ROS 功能包 sudo apt-get inst ...
- 关于谷歌JSV8与微软JSRT的性能比较
首先,我并没有得到实际的比较结果,望有兴趣的朋友可以帮助完成这个比较. benchmarksgame,提供了各种语言的性能比较,但都为linux下的测试,很难比较谷歌与微软的东西. 众所周知,JSV8 ...
- The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "SDSSDFCC...
The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server ...
- Windows 系统下 mysql workbench 的安装及环境配置
1.MySQL的官网地址:https://www.mysql.com/ 2,选择DOWNLOADS 3.选择community 再MySQL workbench 4.安装MySQL workbench ...
- 为什么会出现Notice: Undefined index: submit in D:\xampp\htdocs\test.php on line 19
事例如下": <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- Ecto 总结
ecto 简介 ecto 相当于 elixir 的 ORM,但是得益于 elixir 语言,和传统的 ORM 相比,更加简洁和强大. ecto 主要分为 4 部分: Repo: 这是和真正数据库交互的 ...
- 【Teradata】gtwglobal查看
使用root登录TD数据库节点 cnsterm 6 start gtwglobal cnsterm 3 //上一个命令的window编号 h //帮助 QUIT //退出
- (转)Spring Boot 2 (四):使用 Docker 部署 Spring Boot
http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html Docker 技术发展为微服务落地提供了更加便利的环境,使 ...