一、文件创建
接上篇内容,在项目study_test项目下新建文件夹:config,用来存放基本配置。
- config文件夹下新增文件:config.ini、globalparameter.py
- config.ini 代码:
[URL]
# 登录地址
login_url = 'http://www.baidu.com/login'
# 接口地址
base_url = 'http://www.baidu.com/api'
[MYSQL]
# 配置数据库相关参数
host=**.**.**.***
port=3306
user=root
password=*****
db_name=****
charset=utf8
- globalparameter.py 代码:
# coding:utf-8
# 配置全局参数
import configparser
import os
import time
# 获取项目路径
# project = os.path.abspath(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) #也可以获取到项目路径
# print(project)
'''
获取路径代码解释:
获取当前文件的相对路径:os.path.dirname(__file__)
获取当前文件的绝对路径:os.path.abspath(__file__) 或者 os.path.realpath(__file__)
将path的目录和文件名分开为元组:os.path.split(__file__)
os.path.dirname(os.path.split(os.path.realpath(__file__))[0]) #对绝对路径切片获取第一个元组后的相对路径
os.path.join(path1,path2,...) #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。
os.pardir:路径组件,意味着将目录树向上遍历一级
'''
project_path = os.path.abspath(os.path.dirname(os.path.split(os.path.realpath(__file__))[0]))
# 测试用例代码存放路径(用于构建suite,该文件夹下的文件都必须以test开头命名)
test_case_path = project_path+"\\testCase\\"
# 测试报告存储路径
report_path = project_path+"\\report\\"
def config_path(ini_path):
# config的配置路径:通过获取当前绝对路径的相对路径来找
path = configparser.ConfigParser()
real_path = os.path.dirname(os.path.realpath(__file__))
join_path = os.path.join(real_path, ini_path)
path.read(join_path, encoding='utf-8')
return path
if __name__ == '__main__':
ceshi = config_path('config.ini')
print(ceshi)
# 读取当前路径下的config配置文件路径
url_path = config_path('config.ini')
二、代码解释
- 像上面代码备注的那样我们可以通过获取文件的相对路径、绝对路径来找到项目路径、配置文件路径、case用例路径等
- os.path.realpath(file)获取当前文件的绝对路径D:\Program Files (x86)\Python\Pythonstudy\study_test\config\globalparameter.py
- os.path.dirname(os.path.realpath(file))获取上面globalparameter.py所在的相对路径:D:\Program Files (x86)\Python\Pythonstudy\study_test\config 赋值给real_path
- os.path.join(real_path, ini_path)获取config目录下的文件,赋值给join_path返回。
- 若要调用config_path(ini_path),则将ini_path替换成config目录下想要获取的文件的文件名,例如:config_path('config.ini')
-
这里我们封装方法config_path来获取配置文件config文件夹下面的文件,用于后面对请求URL进行封装
文件分布.png
下一篇讲解封装接口请求中的URL及读取ini文件中的用例数据
网友评论