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("1234")
        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、驱动路径等写入配置文件,而是直接写入脚本,那么脚本本身的维护成本将变得很大,而且可读性也并不好。

对于自动化测试动辄几十上百条测试用例来说,这将是一场灾难。。。

以上内容仅供参考,其中某些敏感信息已经脱敏,望理解。。。

原文地址:https://www.cnblogs.com/imyalost/p/9125872.html

时间: 2024-10-15 18:53:07

python:实例化configparser模块读写配置文件的相关文章

python之configParser模块读写配置文件

借鉴:http://www.cnblogs.com/TankXiao/p/3038350.html configParser是python自带的模块,用来读写配置文件 配置文件的格式:[]包含的叫section,section下有option=value这样的键值 配置文件  test.conf [section1] name = tank age = 28 [section2] ip = 127.0.0.1 port = 8080 python代码 #-*- coding:UTF-8 -*-

用ConfigParser模块读写配置文件——Python

对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑的问题. 2)用配置文件,通过在程序中读配置文件获取配置,用户改变配置后重新写入配置文件,即使程序崩溃或者关闭,配置依然能够保存下来. 3)用数据库来存储配置变量,也能长久保存,不过读写数据库也是重量级操作,不太方便. 最近在写一个基于wxPython的GUI程序,需要用到配置文件,本来打算用xml

python3.52 使用configparser模块读写ini文件

使用configparser模块读写ini文件,如果是python 2.7 使用为 import ConfigParser,python 3.2 以后的版本中 ,应当使用import configparser.Python的configparser Module中定义了3个类对INI文件进行操作.分别是RawConfigParser.ConfigParser.SafeConfigParser.模块所解析的ini配置文件是由多个section构成,每个section名用中括号'[]'包含,每个se

Python中ConfigParser模块应用

Python中ConfigParser模块应用 Python的ConfigParser模块定义了3个对INI文件进行操作的类 RawConfigParser,ConfigParser和SafeConfigParser.其中RawCnfigParser是最基础的INI文件读取类,ConfigParser.SafeConfigParser支持对%(value)s变量的解析. 下面看看怎样通过ConfigParser类来解析一个ini文件. 配置文件settings.cfg [DEFAULT] myk

python封装configparser模块获取conf.ini值(优化版)

昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的section和keyname获取value的,前两天怎么都调试不通过.今天百度了一下,有人通过字典的方式把我的和这个想法实现了,我把这个例子修改了一下,代码如下,并通过测试,以后可以用在自动化测试框架中: 1 #coding:utf-8 2 import os 3 import ConfigParser

python的ConfigParser读取设置配置文件

python 读写配置文件在实际应用中具有十分强大的功能,在实际的操作中也有相当简捷的操作方案,以下的文章就是对python 读写配置文件的具体方案的介绍,望你浏览完下面的文章会有所收获. python 读写配置文件ConfigParser模块是python自带的读取配置文件的模块.通过他可以方便的读取配置文件. 这篇文章简单介绍一下python 读写配置文件的方法. 配置文件.顾名思议就是存放配置的文件.下面是个例子 点击(此处)折叠或打开 [info] age = 21 name = che

python的ConfigParser模块

简介 ConfigParser模块在python3中修改为configparser.这个模块定义了一个ConfigParser类,该类的作用是使用配置文件生效,配置文件的格式和windows的INI文件的格式相同 该模块的作用 就是使用模块中的RawConfigParser().ConfigParser(). SafeConfigParser()这三个方法(三者择其一),创建一个对象使用对象的方法对指定的配置文件做增删改查 操作. 配置文件有不同的片段组成和Linux中repo文件中的格式类似:

python 之ConfigParser模块学习

1.1 读取配置文件 -read(filename) 直接读取ini文件内容 -sections() 得到所有的section,并以列表的形式返回 -options(section) 得到该section的所有option -items(section) 得到该section的所有键值对 -get(section,option) 得到section中option的值,返回为string类型 -getint(section,option) 得到section中option的值,返回为int类型 1

python之configparser模块

1. 简介 configparser用于配置文件解析,可以解析特定格式的配置文件,多数此类配置文件名格式为XXX.ini,例如mysql的配置文件.在python3.X中 模块名为configparser ,在python2.X中使用的模块名为ConfigParser. ##### ini 文件示例 ######## [section1] name = wang age = 18 [section2] name:python age = 19 #### 文件格式说明 ######### [XXX