【笔记】Selenium线上巡检 -- 页面图片加载

页面图片加载

流程:
1.进行浏览器配置 -- 可查看官网文说明

(1) 配置关闭浏览器缓存
(2)配置浏览器查看日志

2.初始化浏览器 -- 访问网址
3.刷新页面 -- 控制浏览器获取浏览器日志
4.遍历日志进行相应的数据check
5.出现bug截图保存
6.截图发送到相应的群或邮箱等
7.结束退出
# !/usr/bin/env python3
# -*- coding:utf-8 -*-
"""
auth: holy.huang
data: 2024年05月28日
"""
import json
import time
import jsonpath
from selenium import webdriver
from selenium.webdriver import DesiredCapabilities
# 此处导入的是发送信息功能,如:钉钉可在群中的设置有添加机器人操作,通过其给出的接口调用编写脚本即可
# from qiye_wechat import send_qiye_wechat_msg

url = "www.baidu.com"

chrome_options = webdriver.ChromeOptions
chrome_options.add_experimental_option('w3c', True)
chrome_options.add_argument("--disk-cache-size=0")  # 关闭浏览器的缓存

# 查看日志需要设置浏览器的配置
caps = DesiredCapabilities.CHROME
# 开启获取日志的功能 -- 浏览器官网文档说明
caps['goog:loggingPrefs'] = {'performance': 'ALL'}

# 初始化浏览器
driver = webdriver.Chrome(desired_capablities=caps, options=chrome_options)
driver.maximize_window()
driver.get(url)

# 等待合适的时间让页面加载完毕
time.sleep(5)

# 反复循环,也可使用jenkins实现反复执行操作
while True:
    # 每次运行间隔3秒
    time.sleep(3)
    # 忽略页面缓存强制刷新获取最新页面,刷新页面会有浏览器缓存 -- 需提前配置浏览器 如:chrome_options
    driver.execute_cdp_cmd("page.reload", {"ignoreCache": True})
    print("刷新页面")

    # 提问:如何判断界面图片未加载? -- 控制浏览器获取浏览器的日志
    logs = driver.get_log("performance")
    print(logs)

    # 解析浏览器日志,分析是否有500这种报错的网络请求
    for log in logs:
        json_log = json.loads(log['message'])
        if json_log['message']['method'] != "Network.reponseRecevied":
            # 如果表示服务器响应信息,跳过不处理
            continue

        status_code = jsonpath(json_log, '$.message.param.response.status')[0]
        # htpp 状态码 5xx 代表服务器有问题
        if status_code >= 500:
            # 保存系统截图作为问题的证据
            driver.save_screenshot("a.png")
            # send_qiye_wechat_msg("a.png")
            driver.quit()
            raise Exception("线上系统问题啦~~~")

time.sleep(16)
driver.quit()
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值