前言:今天为什么要整理读取配置文件呢?原因是:公司正在做的项目,操作页面时都是根据路由跳转,由于自己经验尚浅,将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里面直接conf.read(cfgpath)就可以了,python3需要加个参数:encoding="utf-8"
conf.read(cfgpath, encoding="utf-8")
二、代码编写
分别在common文件夹下新建配置文件:config.ini 和 读取配置文件:readConf.py ,然后编写代码...
1、配置文件 :config.ini
配置文件中按照功能模块分为 risk 、rule 、term ;其下的url地址分别代表该模块下某个功能点的url
[risk] ;新建风险 url0 = www.baidu.com ;新建风险目录、导入风险模板 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(os.path.relpath(__file__)) #获取配置文件路径 cfgpath = os.path.join(curpath, "config.ini") # 创建管理对象 self.conf = configparser.ConfigParser() # 读ini文件 self.conf.read(cfgpath, encoding="utf-8") def readConf(self,param): #获取所有的section # sections = self.conf.sections() # print(sections) #获取某个sections中的所有值,将其转化为字典 items = dict(self.conf.items(param)) return items if __name__ == ‘__main__‘: test = ReadConf() t = test.readConf("risk") #传入sections的值 print(‘我取某个sections下所有值 ‘,t) print(t[‘url1‘])
3、用例编写
优化前代码:
import unittest from pages.risk.createRisk 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): self.driver.get(base_url) def tearDown(self): self.driver.delete_all_cookies() @classmethod def tearDownClass(cls): cls.driver.quit() def test_create_risk(self): ‘‘‘新建风险点‘‘‘ random = self.risk.get_random_chinese() self.risk.createRisk(random) time.sleep(3) if __name__ == ‘__main__‘: unittest.main()
优化后代码:
import unittest from pages.risk.createRisk import CreateRisk from selenium import webdriver from common.readConf 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 = cls.url.readConf(‘risk‘) #这里传入risk模块 # 获取配置文件中的url cls.base_url = cls.standard_url[‘url0‘] #这里传入risk模块中新建风险的url print(cls.base_url) def setUp(self): self.driver.get(self.base_url) def tearDown(self): self.driver.delete_all_cookies() @classmethod def tearDownClass(cls): cls.driver.quit() def test_create_risk(self): ‘‘‘新建风险点‘‘‘ random = self.risk.get_random_chinese() self.risk.createRisk(random) time.sleep(3) if __name__ == ‘__main__‘: unittest.main()
经过修改后,每次更新url地址,只需在配置文件中修改就好了,是不是方便多了~~
原文地址:https://www.cnblogs.com/yudx/p/11413990.html
时间: 2024-10-12 09:33:39