配置模块的引入
需求背景:
进行自动化测试的时候会有很多的设置常量需要操作。
比如 baseurl,db连接数据,测试用用户名,管理员账号,token,auth之类
比较好的方式是使用一个静态文件保存下来,编写方法固定读取
涉及第三方库 configparser.ConfigParser
step1 创建一个配置文件解析器对象
conf = configParser()
step2 将配置文件配置到解析器对象中
conf.read("filename.ini",encoding='utf-8')
step3 读取相关的配置内容
#方法1 get: 读取的所有内容都会当成字符串来处理
res = conf.get(‘log’,‘filename’) print(res) #方法二 getint 专门用来读取数值类型的数据 int res = conf.getint("mysql",'port') #方法三 getfloat 专门用来读取浮点数 float res3 = conf.getfloat("mysql","n") #方法四 getboolean 专门用来读布尔值 False false都支持 res4 = conf.getboolean()
配置文件内部编写格式
[log]
level = DEBUG fh_level = WARNING filename = all.log sh_level = DEBUG [mysql] host = 127.0.0.1 port = 3306 n = 17.01 b = 89 b1 = True b2 = False b3 = true b4 = false addicated= 阿迪 dict1 = {"a":1,"b":666}
配置文件的写入操作(基本不用)
第一步创建一个配置文件解析器对象
conf = ConfigParser() 第二 将配置文件读取搭配配置文件解析器对象中 conf.read('配置文件',encoding='utf-8') 第三 配置文件内容写入 conf.write(fp=open("lemon01.ini", "w", encoding="utf-8"))
完整代码
from configparser import ConfigParser class HandleConfig(ConfigParser): """配置文件解析器类的封装""" def __init__(self, filename): super().__init__() self.read(filename, encoding="utf8") conf = HandleConfig("config.ini") res = conf.get("mysql", "port") print(res)
yaml类型文件形式存取数据
此处只记述读取,yaml类型文件做测试用例进行数据驱动留作后面更新内容。
import yaml
# yaml格式文件的操作模块: pyyaml # 安装命令: pip install pyyaml with open("lemon.yaml", "r", encoding="utf-8") as f: file = yaml.load(f, Loader=yaml.FullLoader) print(file)
框架模型的搭建
搭建自动化测试框架首先要考虑好技术的选型,
从几个大的层面来去构想需要准备哪些模块,哪些功能。
举个例子:
excel读取 + ddt + unittest + log + beautifulReport/HTMLtestrunnerReport + jenkins
根据应用到的技术逐一分析最终成型的框架结构
--用例数据 xlsx 文件
--excel操作模块
--日志模块
--ddt数据驱动模块
--测试用例模块
--测试运行程序入口文件(启动文件
输出
日志记录文件
测试报告文件
之后针对项目文件,按功能做分层设计目录,大致分为几类
1,自己封装的一些模块,common下存储
2,测试用例模块,testcases存储
3,使用到的第三方库文件 lib下存储
4,测试报告文件 reports
5,log记录文件
6,测试启动入口 run_test.py
如图所示,之后就可以愉快的编写用例类实现了~