页面图片加载
流程:
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()