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里面直接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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
适合人群:【学习前提】 1. 具备python3语言基础 【学习人群】 1. 手工测试人员学习UI自动化测试技能 2. 开发人员转岗测试开发岗位 3. 如具有丰富的自动化测经验,本课程可能并不满足你学习计划:1.下载课程中配套的软件资料 2.结合课件中Demo可完成学习任务课程目标:掌握UI自动化测试框架的设计与实现课程简介:UI自动化框架的设计需储备基础知识,方能完成自动化测试框架的实现,如数据驱动、日志、配置文件等AutoUiTestFrame自动化框架的目录结构初步进行规划,目录结构如下:Config 配置文件的目录v  config.ini 配置文件;v  globalconfig.py 获得日志路径、测试用例路径、测试报告路径、测试数据路径;v  Data 测试数据;v  TestData.xlsx 测试数据。Public 公共文件库v  Common 封装的公共的方法n  Commonconfig.py 公共的参数配置:调试过程中的测试数据等;n  DoExcel.py 操作excel(数据驱动);n  Send_mail.py 发送邮件(html);n  ReadConfigIni.py 读取ini格式的配置文件;n  TestCaseInfo.py  测试用例信息;n  Log.py 日志类。设置日志类,其他模块或文件需要日志类时,调用该文件。v  Pages 使用po模式设计的测试页面n  BasePage.py  基类,对一些测试页面公共方法、属性的封装及webdrive一些方法的二次封装;n  Bing.py 测试页面。Report 测试报告v  Log 日志目录n  *****log日志。v  TestReport 测试报告目录n  ***html测试报告。TestCase 测试用例v  TC_bing.py。Run.py  控制测试用例的运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值