小工具知识网

当前位置: 首页 > 行业知识 > Golang之selenium+k8s部署玩转模拟手机页面监控

行业知识

Golang之selenium+k8s部署玩转模拟手机页面监控

2026-11-08 11:29:26 来源:互联网转载

Golang之selenium+k8s部署玩转模拟手机页面监控


文章目录

  • Golang之selenium+k8s部署玩转模拟手机页面监控
  • 前言
  • 一、Selenium是什么?
  • 二、实现页面监控步骤
    • 1.开启selenium服务
    • 2.启动浏览器
    • 3.调用已创建的浏览器
    • 4.页面操作
    • ���结

      前言

      随着互联网的快速发展,用户更多的会去通过手机端去接触我们开发的产品。我们可以通过微服务,中间件,网络,甚至基于日志对我们的平台稳定性进行监控,当出现告警时,我们可以及时准确的定位系统出现的问题。

      ()

      然而,当我们对底层能力做好监控时,我们并不能确保系统中存在的风险就能及时掌控了。用户在使用我们系统时直接与我们的Web应用进行交互,为了能够及时了解页面功能是否正常,我们需要对页面进行监控。


      一、Selenium是什么?

      Selenium是一个用于Web应用程序测试的工具,可以直接运行在浏览器中,就像真正的用户在操作一样。

      ()

      Golang语言引入库:

      "github.com/tebeka/selenium""github.com/tebeka/selenium/chrome"

      二、实现页面监控步骤

      1.开启selenium服务

      • 1.如果我们的监控服务需要部署在k8s中,我们可以先在k8s中搭建一个Selenium-hub服务,以便于监控服务在k8s搭建后直接调用Selenium工具。
      • 2.如果监控在windows环境,可以下载chromedriver.exe文件,然后本地启动selenium服务。

        本地开启selenium服务:

        //设置selium服务的选项,设置为空。根据需要设置。ops := []selenium.ServiceOption{}service, err := selenium.NewChromeDriverService("./chromedriver.exe", 9515, ops...)if err != nil {fmt.Printf("Error starting the ChromeDriver server: %v", err)}//延迟关闭服务defer service.Stop()

        2.启动浏览器

        当我们在启动浏览器时,需要设置浏览器的兼容性,通过以下配置,启动一个满足我们监控需要的浏览器模式,注,需要将设置好的驱动参数添加进浏览器设置参数中。

        1. headless,无头模式

          当我们考虑在监控服务部署在K8s,我们需要创建无头模式,这时浏览器不需要显示页面,程序在后台运行的同时,渲染页面也能保障我们对性能的要求.

        2. profile.managed_default_content_settings.images ,不加载网页中的图片

          当网页中有大量图片需要加载时,使用此参数可以极大的提高代码运行速度,搭配无头模式更好,因为在后台运行的浏览器控制并不需要加载图片。

        3. MobileEmulation: 将浏览器设置成手机
        4. disable-gpu,禁用GPU加速模式
        5. hide-scrollbars隐藏滚动条,应对一些特殊页面
        6. disable-popup-blocking:,禁用弹窗

        启动浏览器:

        //设置浏览器兼容性,我们设置浏览器名称为chromecaps := selenium.Capabilities{    "browserName": "chrome",  }//禁止图片加载,加快渲染速度imagCaps := map[string]interface{}{"profile.managed_default_content_settings.images": 2,}//设置实验谷歌浏览器驱动的参数chromeCaps := chrome.Capabilities{  MobileEmulation: &chrome.MobileEmulation{    DeviceName: "iPhone X",},Prefs: imagCaps,    Args: []string{      "--headless", //设置Chrome无头模式      "--no-sandbox",      "--disable-gpu",    },  }//添加浏览器设置参数caps.AddChrome(chromeCaps)

        3.调用已创建的浏览器

        webDriver, err := selenium.NewRemote(caps, "浏览器hub访问地址")  if err != nil {    log.Printf("创建WebDriver失败: %v", err)    return  }  defer webDriver.Quit()

        4.页面操作

        浏览器启动完成后,打开我们的Web页面,然后基于系统的业务场景,模拟用户行为进行页面操作,对操作结果进行判断,对异常结果进行告警。

        1. 首先需要确保系统的Web服务可以正常打开,我们要打开监控的地址,然后查询页面上的正常展示时某一个CSS标签,来对页面是否正常展示。
        //设置超时时间webDriver.SetPageLoadTimeout(time.Second * time.Duration(config.GetCommonConfig().ErrorTime))//请求访问地址getErr := webDriver.Get(“需要打开的url”)elem, findErr := webDriver.FindElement((selenium.ByCSSSelector, "需要获取的CSS标签" )
        1. 当我们需要点击页面的某一个按钮或者图片时,我们依旧可以基于CSS标签获取我们需要的Element,对该Element进行操作,如单击,双击。
        elem.CLick()//单机获取到的标签elem.DoubleCLick()//双击elem.ButtonDown()//按下鼠标elem.ButtonUp()//抬起鼠标
        1. 同样,对于页面也后很多的操作,如关闭页面,向前,向后翻页等操作。
        webDriver.Close()//关闭页面webDriver.Forward() //向前翻webDriver.Back()//向后翻

        总结

        本文着重介绍通过selenium,创建符合我们需求的浏览器模式,并进行简单的用户操作,结合我们的实际业务场景,加入逻辑判断,日志记录,实时告警,即可完成对我们系统的Web应用进行页面监控。

上一篇:雷雨视频下载全攻略,轻松掌握下载步骤,畅享高清视频体验!

下一篇:宝塔面板怎么设置网页?