1. 配置文件
配置文件是把程序需要的一些参数或者设置保存到文件当中
参数,数据主要就是程序运行的依赖数据,没有这些参数,程序可能无法运行
参数实际上就是提供软件的运行环境
说的更直白一点:程序运行的常量
变量:根据程序的运行,可能时刻变化
常量:通常不会变化的,你想改变程序的运行的环境,往往需要你手工修改
如:数据库地址,域名,端口号,数据库连接数,测试账号,excel文件名
好处:对于改变程序的运行,只需要修改配置文件,不需要再修改代码,这种方式叫做无代码化
主流的配置文件格式非常多,如:
Linux系统中的.bashrc,.YAML,.TOML,.JSON,.XML,.INI,.properties
如何选择配置文件:
python中可以把所有程序依赖的变量放到一个固定的文件如config.py
py与.aml的不同之处:
py文件当中的配置变量,只需要导入即可,import config.py
yaml文件是需要读取出来,yaml.safe_load()
根据自己的公司的使用环境来选择是用yaml文件还是.py文件或者其他文件
如果公司自动化测试框架是一个纯python项目,那么用.py文件保存所有配置项
如果公司的项目不是纯python,或者希望非python工程师也可以直接读取配置项,那么用yaml文件
2. YAML文件
格式:
键: 值
键值对之间用的是冒号,冒号之后要有一个空格(至少一个,多了也没关系)
ymal文件的写法格式跟python大多数相似,需要注意的是字符串尽量用引号包裹起来,还有一个注意点是yaml中没有三引号注释,写的时候没有问题,但读出的时候会报错yaml.scanner.ScannerError: while scanning a simple key
读取yaml文件:
第一步:先安装pyyaml
第二步:导入 import yaml
import yaml
import pprint
with open('demo01.yaml', encoding='utf-8') as f:
data = yaml.safe_load(f)
pprint.pprint(data)
运行结果:
{'database': '127.168.1.13',
'hobby': [1, 2, 3],
'hobby1': [1, 2, 3],
'info': {'age': 18, 'name': 'momo'},
'info1': {'age': 18, 'name': 'momo1'},
'password': 123456,
'username': 'mo: mo'}
注意data的值是个字典
我们自动化测试可以使用yaml文件保存设置选项,也可以保存测试用例数据
3. INI文件
ini也是配置文件中的一种,它比较适合配置项的数据类型只是简单的字符串,数字的情况,如果涉及数组和字典的嵌套会比较吃力,现在用的越来越少,主流的还是yaml文件,所以这种就不过多介绍了
ini配置格式有几个注意点:
-- section无法嵌套,嵌套后的效果和没有嵌套的是一样的
[default]
[db]
host=http://www.baidu.com
获取这个host的方式不会发生任何变化,default并不是db的你级
-- 字符串的表示不需要加引号,否则引号也会被解析出来
[db]
host="http://www.baidu.com"
host1=http://www.baidu.com
等到的结果:
"http://www.baidu.com"
-- 等号前后可以有空格,也可以不用
注意:ini不需要安装,直接导入就可用
新建demo02.ini文件,代码如下
[default]host = http://www.baidu.com [db] host = 'http://www.baidu.com' port = 3306 name = 'py'
from configparser import ConfigParser
parser = ConfigParser()
parser.read('demo02.ini',encoding='utf-8')
host = parser.get('default','host')
db_host = parser.get('db','host')
port = parser.get('db','port')
print(host)
print(db_host)
print(port)
运行结果:
http://www.baidu.com 'http://www.baidu.com'
3306