等峰也等你

博客园 首页 新随笔 联系 订阅 管理
  308 随笔 :: 0 文章 :: 0 评论 :: 15147 阅读

目录

  • 异常处理(弹窗黑名单)
  • 日志记录
  • 报告生成
  • 测试数据的数据驱动

异常弹框处理

  • 定义黑名单列表
  • 处理弹框
# 声明一个黑名单
def black_wrapper(fun):
def run(*args, **kwargs):
basepage = args[0]
try:
return fun(*args, **kwargs)
except Exception as e:
for black in black_list:
eles = basepage.driver.find_elements(*black)
if len(eles) > 0:
eles[0].click()
return fun(*args, **kwargs)
raise e
return run
@black_wrapper
def find(self, by, locator)
return self.driver.find_element(by, locator)

异常截图

  • 封装screenshot()截图方法
  • 出现异常时调用截图
# 封装截图方法
def screenshot(self, path):
self.driver.save_screenshot(path)
...
# 声明一个黑名单
def black_wrapper(fun):
def run(*args, **kwargs):
basepage = args[0]
try:
return fun(*args, **kwargs)
except Exception as e:
basepage.screenshot("tmp.png")
for black in black_list:
eles = basepage.driver.find_elements(*black)
if len(eles) > 0:
eles[0].click()
return fun(*args, **kwargs)
raise e
return run

生成报告

  • 添加日志
    • 使用 logging 日志模块
    • 配置 pytest.ini
  • 添加截图
import logging
def black_wrapper(fun):
def run(*args, **kwargs):
basepage = args[0]
try:
logging.info(f"查找元素:{args[2]}")
return fun(*args, **kwargs)
except Exception as e:
basepage.screenshot("tmp.png")
with open("./tmp.png", 'rb') as f:
picture_data = f.read()
allure.attach(picture_data, attachment_type=\
allure.attachment_type.PNG)
for black in black_list:
eles = basepage.driver.find_elements(*black)
if len(eles) > 0:
eles[0].click()
return fun(*args, **kwargs)
raise e
return run

数据驱动

  • 减少冗余代码
  • 集中管理测试数据
  • 便于维护
@pytest.mark.parametrize('参数1,参数2', [
('参数1-值1', '参数2-值1'),
('参数1-值2', '参数2-值2'),
])

总结

  • 异常处理(弹窗黑名单),异常截图
  • 日志记录
  • 报告生成
  • 测试数据的数据驱动
posted on   等峰也等你  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示