Python读取配置文件
使用Python做自动化时,需要将相关的信息存储在配置文件中,比如config.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
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()
调用实例化的配置信息
将我们需要的信息实例化后封装,在需要的时候,直接调用即可,示例代码(测试手机验证码)如下:
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("1234")
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)

浙公网安备 33010602011771号