selenium+python⾃动化测试--读取配置⽂件(.ini)
前⾔:今天为什么要整理读取配置⽂件呢?原因是:公司正在做的项⽬,操作页⾯时都是根据路由跳转,由于⾃⼰经验尚浅,将url地址写在每个⽤例中,导致每次开发⼀更改路由,我就要去每个页⾯中修改url地址,光来来回回页⾯就很费时间,所以就想到了⽤配置⽂件,将所有url地址放在⼀个⽂件中,页⾯⽤到哪个时读取哪个。
⼀、基础了解
ini
ini配置⽂件格式如下:
;这⾥是注释
[section0]
key0 = value0
key1 = value1
[section1]
key2 = value2
key3 = value3
section不能重复,⾥⾯数据通过section去查,每个seletion下可以有多个key和vlaue的键值对,注释⽤英⽂分号(;)
configparser
通过python3⾥⾯⾃带configparser模块来读取ini⽂件。
# python3
import configParser
如果注释⾥⾯有中⽂的话,这⾥代码跟python2是有点区别的,python2⾥⾯直接ad(cfgpath)就可以了,python3需要加个参数:encoding="utf-8"
⼆、代码编写
分别在common⽂件夹下新建配置⽂件:config.ini 和读取配置⽂件:readConf.py ,然后编写代码...
1、配置⽂件:config.ini
配置⽂件中按照功能模块分为 risk 、rule 、term ;其下的url地址分别代表该模块下某个功能点的url
[risk]
;新建风险
url0 = www.baidu
;新建风险⽬录、导⼊风险模板
url1 = xxxx
[rule]
;新建制度⽬录
url1 = xxxxx
;制度审批任务模板
url2 = xxxxxxx
[term]
;新建术语
url1 = xxxxxx
;新建术语⽬录
url2 = xxxxxx
2、读取配置⽂件:readConf.py  以下是封装好的读取配置⽂件的⽅法
import configparser
import os
class ReadConf():
def__init__(self):
curpath = os.path.dirname(lpath(__file__)) #获取配置⽂件路径
cfgpath = os.path.join(curpath, "config.ini")
# 创建管理对象
# 读ini⽂件
def readConf(self,param):
#获取所有的section
# sections = f.sections()
# print(sections)
#获取某个sections中的所有值,将其转化为字典
items = f.items(param))
return items
if__name__ == '__main__':
test = ReadConf()
t = adConf("risk")  #传⼊sections的值
print('我取某个sections下所有值 ',t)
print(t['url1'])
3、⽤例编写
优化前代码:
import unittest
from ateRisk import CreateRisk
from selenium import webdriver
import time
base_url = "xxxx"
class TestCreateRisk(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.risk = CreateRisk(cls.driver)
def setUp(self):
(base_url)
def tearDown(self):
self.driver.delete_all_cookies()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_create_risk(self):
'''新建风险点'''
random = _random_chinese()
ateRisk(random)
time.sleep(3)
if__name__ == '__main__':
unittest.main()
优化后代码:
import unittest
from ateRisk import CreateRisk
from selenium import webdriver
adConf import ReadConf
import time
class TestCreateRisk(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.risk = CreateRisk(cls.driver)
# 读取配置⽂件,传⼊sections值,
cls.url = ReadConf()
cls.standard_url = adConf('risk') #这⾥传⼊risk模块
# 获取配置⽂件中的url
cls.base_url = cls.standard_url['url0'] #这⾥传⼊risk模块中新建风险的url print(cls.base_url)
def setUp(self):
(self.base_url)python怎么读文件夹下的文件夹
def tearDown(self):
self.driver.delete_all_cookies()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_create_risk(self):
'''新建风险点'''
random = _random_chinese()
ateRisk(random)
time.sleep(3)
if__name__ == '__main__':
unittest.main()
经过修改后,每次更新url地址,只需在配置⽂件中修改就好了,是不是⽅便多了~~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。