之前的博客介绍过利用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模块读写配置文件的更多相关文章

  1. Python自动化测试 -ConfigParser模块读写配置文件

    C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...

  2. python:利用configparser模块读写配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

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

    对于功能较多.考虑用户体验的程序,配置功能是必不可少的,如何存储程序的各种配置? 1)可以用全局变量,不过全局变量具有易失性,程序崩溃或者关闭之后配置就没了,再者配置太多,将变量分配到哪里也是需要考虑 ...

  4. Python自动化测试 (二) ConfigParser模块读写配置文件

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有op ...

  5. Python使用ConfigParser模块读取配置文件(config.ini)以及写入配置文件

    前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser.configPars ...

  6. configparser模块读写ini配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

  7. python中confIgparser模块学习

    python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...

  8. python中configparser模块读取ini文件

    python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...

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

    昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...

随机推荐

  1. PyTorch使用总览

    PyTorch使用总览 https://blog.csdn.net/u014380165/article/details/79222243 深度学习框架训练模型时的代码主要包含数据读取.网络构建和其他 ...

  2. Implemented Energy-Conserving Hair Scattering Model from Weta Digital

    I used to implement the Energy-Conserving Hair Scattering Model as the pre-calculation program, so t ...

  3. 解决OpenCV JavaCameraView相机preview方向问题

    网上找了很多解决都是有问题的,研究了半天源码解决了这个问题.我是从整个相机启动和数据传输的过程着手的,这里捡重点介绍一下,最后会贴上修改后的两个源文件. 首先要知道一个概念. 图里的小圆圈是Home按 ...

  4. java的优点和误解 《java核心技术卷i》第一章

    <java核心技术卷i>第一章主要内容包括三点: 1:Java白皮书的关键术语:描述Java的十一个关键字: 2:Java applet 3 :关于Java的常见误解   1:第一章:Ja ...

  5. Apktool(2)——使用前必须知道的apk知识

    这里拿testapp.apk为例,如下图所示,左图为直接解压apk得到的文件,右图为apktool反编译得到的文件(反编译的使用在下一篇重点介绍) 图1 解压apk和反编译apk得到的文件目录对比 一 ...

  6. html5常见新增标签

    本文内容: header nav article footer section aside datalist 音频标签: audio 视频标签: video 插入媒体标签: embed 新增input ...

  7. 使用Visual Studio Team Services进行压力和性能测试(一)——创建基础的URL压力测试

    使用Visual Studio Team Services进行压力和性能测试(一)--创建基础的URL压力测试 概述 压力测试使应用程序更加健壮,并审核在用户负载下的行为,这样我们可以在当前的基础设施 ...

  8. Python 实例方法、类方法、静态方法的区别与作用

    Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调用的呢?它们又有何区别和作用呢?且看下文. 首先,这三种方法都定义在类中.下面我先简单说一下怎么定义 ...

  9. mssql sqlserver 关键字 GROUPING用法简介及说明

    转自: http://www.maomao365.com/?p=6208  摘要: GROUPING 用于区分列是否由 ROLLUP.CUBE 或 GROUPING SETS 聚合而产生的行 如果是原 ...

  10. Windows Server 2016-Windows Server Backup功能

    一.Windows Server Backup 介绍: Windows Server Backup 是一种功能,它提供了一组向导和其他工具,大概从WinSer2008开始Win Ser Backup引 ...