目标:实现selenium自动登录百度,并搜索雷军
知识点:yaml实例:
yaml文件配置:使用xx.yml
使用如下方式加载
with open('./login.yml',mode='r',encoding='utf8') as file:
all_cases = yaml.safe_load(file)
知识点:logging实例:
日志主要有如下功能
1、写入到日志文件: logging.FileHandler
2、写入到控制台:logging.StreamHandler
3、创建相关的日志格式:logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
如下为基础代码:
"""
@Time : 2024/8/10 22:12
@Auth : jany
"""
import logging
# 创建一个logger
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG) # 设置日志级别
# 创建一个handler,用于写入日志文件
fh = logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)
# 创建一个handler,用于输出控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 创建一个formatter,用于控制日志的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 添加formatter到handler
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 添加handler到logger
logger.addHandler(fh)
logger.addHandler(ch)
# 写入日志
logger.debug('这是一个debug级别的日志信息')
logger.info('这是一个info级别的日志信息')
logger.warning('这是一个warning级别的日志信息')
logger.error('这是一个error级别的日志信息')
logger.critical('这是一个critical级别的日志信息')
yaml & logging组合实例:
依赖文件见附件
import yaml
from tools.keywords import Web
from tools.Logger import logger
def run_case(case,web):
"""创建函数专门用来运行自动化"""
method = case.get('method')
if method == 'openbrowser':
web.openbrowser()
elif method=='geturl':
web.geturl(case.get('url'))
elif method=='input':
web.input(case.get('locator'),case.get('value'))
elif method=='click':
web.click(case.get('locator'))
elif method=='sleep':
web.sleep(case.get('time'))
elif method == 'quit':
web.quit()
# 读yaml数据
with open('./login.yml',mode='r',encoding='utf8') as file:
all_cases = yaml.safe_load(file)
logger.info(all_cases)
web = Web()
# 读出来所有登录的用例
login_case = all_cases.get('loginPage')
print(login_case)
for test_suite in login_case:
cases = test_suite.get('cases')
for case in cases:
logger.info(case)
# 运行用例
run_case(case,web)