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

时间: 2024-10-12 09:33:39

selenium+python自动化测试--读取配置文件(.ini)的相关文章

selenium+python自动化测试--读取excel数据

1.excel中数据(注意:数据是纯数字时,要将其设置成文本) 2.读取excel文件函数封装 文件名称:read_excel.py import xlrd class ReadExcel(): def __init__(self, excelPath, sheetName="Sheet1"): self.data = xlrd.open_workbook(excelPath) self.table = self.data.sheet_by_name(sheetName) # 获取第一

Python 自动化测试config配置文件ini 配置目录

import ConfigParserimport os path = os.path.join(os.path.dirname(__file__), 'config.ini').replace('\\','/')print path # config = ConfigParser.ConfigParser()# config.read('config.ini')# config.read(path) # print config.sections() conf = ConfigParser.C

selenium+python自动化测试--数据驱动

之前selenium+python自动化测试--登录  中,几个账号和密码登录就要写几个用例,感觉很麻烦~,所以下面介绍一下用数据驱动实现不同用例的登录. 话不多说,直接贴代码~~ 文件名称:test_ddtlogin.py import ddt import unittest from selenium import webdriver from common.base import Base testdata = [ {'user':'','psw':'','exp':'请输入手机号码'},

selenium + python自动化测试unittest框架学习(二)

1.unittest单元测试框架文件结构 unittest是python单元测试框架之一,unittest测试框架的主要文件结构: File >report >all_case.py >test_case >__init__.py >test_case1..... >public >__init__.py >login.py >loginout.py test_case文件夹主要存放测试用例,且测试用例命名以test_开头 public文件夹是test

selenium + python自动化测试unittest框架学习(五)webdriver的二次封装

因为webdriver的api方法很长,再加上大多数的定位方式是以xpath方式定位,更加让代码看起来超级长,为了使整体的代码看起来整洁,对webdriver进行封装,学习资料来源于虫师的<selenium +  python自动化测试>一书. 在与测试用例文件夹同一目录下新建一个文件夹package,用来放置封装方法的模块文件 我们将webdriver二次封装的文件命名为location.py from selenium import webdriver from test_case.pub

selenium+python自动化测试

F12: 右键   选择复制  path 在selenium+python自动化测试(一)–环境搭建中,运行了一个测试脚本,脚本内容如下: from selenium import webdriver import time driver = webdriver.Chrome() driver.get("http://www.baidu.com") print(driver.title) driver.find_element_by_id("kw").send_ke

selenium + python自动化测试环境搭建

selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点: *  免费,也不用再为破解QTP而大伤脑筋 *  小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序. *  这也是最重要的一点,不管你以前更熟悉C. java.ruby.python.或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS *  支持多平台:windows.linux.MAC ,支持多浏览器:ie.f

Selenium + Python 自动化测试框架搭建

这段时间在自学Python,主要是想接触自动化测试,在一番摸索下,觉得用selenium+python的自动化测试框架来开展自动化测试,第一步自然是要先搭建好环境.在网上搜了不少帖子,加上自己的摸索,做了一些记录,希望能够帮助到需要的小伙伴.具体步骤如下: Step1.安装python3.6.1 官网网址为https://www.python.org/downloads/windows/ (我不喜欢把软件装在C盘,影响内存,所以选择安装在D盘) 安装的时候选择的是自定义安装,勾选一下加入环境变量

Python(一)|selenium + python自动化测试环境搭建

selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多优点: *  免费,也不用再为破解QTP而大伤脑筋 *  小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序. *  这也是最重要的一点,不管你以前更熟悉C. java.ruby.python.或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS *  支持多平台:windows.linux.MAC ,支持多浏览器:ie.f