项目实战-金融界web自动化测试
web自动化测试
1. PO 框架搭建
采用分层设计思想,搭建金融界web项目自动化测试框架,最终框架如下图:
分为五层,基础层、元素层、页面层、数据层、逻辑层,另外还有测试入口run_all,浏览器驱动,配置文件,最终实现浏览器的自动登录操作。
2. 配置文件编写
创建common文件包, 在common文件包下创建文件夹config,创建config.ini文件,用来存在一些文件路径
[img]
img_dir_path = base_dir/img/
[report]
allure_results_dir_path = base_dir/allure_results/
test_report_dir_path = base_dir/test_report/
3. 添加日志功能
日志级别:CRITICAL > ERROR > WARNING > INFO > DEBUG
在common包下创建bases包,分别创建log_about.py【日志等级控制】、print_log.py【打印日志信息】、read_config.py【读取日志】文件
3.1 # 创建log_about.py
# 创建log_about.py
import logging
logging.basicConfig(level=logging.ERROR) # 日志等级控制
logging.debug('This is debug message!')
logging.info('This is info message!')
logging.warning('This is warning message!')
logging.error('This is error message!')
logging.critical('This is critical message!')
3.2 # 创建print_log.py
# 创建print_log.py
import logging
def p_log():
logging.basicConfig(level=logging.INFO,format='%(name)s - %(asctime)s - %(filename)s - [line:%(lineno)d] '
'- %(levelname)s : %(message)s')
getlog = logging.getLogger('jrj_web_autotest')
return getlog
logger=p_log()
if __name__ == '__main__': # 调用测试
logger.warning('warning message test ')
3.3 # 创建read_config.py
# 创建read_config.py
import configparser
import os
import sys
from common.bases.print_log import logger
BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(__file__))) # 绝对路径
# print('Base_dir:',BASE_DIR)
def read_config(config_file_path,field,key):
cf = configparser.ConfigParser() # 解析ini文件内容
try:
cf.read(config_file_path,encoding='utf-8')
result = cf.get(field,key).replace('base_dir',BASE_DIR).replace('\\','/') # linux系统下转换
if ':' in result:
result = cf.get(field,key).replace('base_dir',BASE_DIR).replace('/','\\') # windows系统
except Exception as e:
logger.error(e)
sys.exit(1)
return result
if __name__ == '__main_