gpt4 book ai didi

python - 如何将 browsermob 与 python-selenium 一起使用?

转载 作者:太空狗 更新时间:2023-10-29 17:28:33 25 4
gpt4 key购买 nike

在使用 selenium 进行 GUI 测试时,我想使用 browsermob 来监控网络连接。我找到了一些信息和文档hereherehere ,但完全不清楚如何真正使用它。

在文档中是这样写的:

server = Server("path/to/browsermob-proxy")

但是那条路是什么?在哪里可以找到它?

我也看到了

java -jar browsermob.jar --port 9090

但没有解释这个 jar 文件是什么,如果它是 browsermob 安装的一部分,或者不相关的东西。

如果有人可以提供有关如何使用 browsermob 以及我需要安装的所有内容的完整且有效的示例,我将不胜感激...

最佳答案

BrowserMob 代理

BrowserMob Proxy 是一种开源工具,用于以 HAR 格式为网络应用程序捕获性能数据。它还允许操纵浏览器行为和流量,例如模拟网络流量、重写 HTTP 请求和响应等,以及操纵来自其 AJAX 应用程序的网络流量。简而言之,BrowserMob 代理 帮助我们使用 Selenium WebDriver 自动化测试为 Web 应用程序捕获客户端性能数据。

您可以从 Python Documentation 中找到有关 BrowserMob Proxy 的更多详细信息和 this tutorial .

Windows 上使用 Python 客户端的 BrowserMob Proxy 2.0 演示

  • 通过 CLI 安装 browsermob-proxy:

    C:\Users\your_user>pip install browsermob-proxy
    Collecting browsermob-proxy
    Downloading browsermob-proxy-0.8.0.tar.gz
    Collecting requests>=2.9.1 (from browsermob-proxy)
    Downloading requests-2.18.4-py2.py3-none-any.whl (88kB)
    100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 92kB 148kB/s
    Collecting idna<2.7,>=2.5 (from requests>=2.9.1->browsermob-proxy)
    Downloading idna-2.6-py2.py3-none-any.whl (56kB)
    100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 61kB 639kB/s
    Collecting urllib3<1.23,>=1.21.1 (from requests>=2.9.1->browsermob-proxy)
    Downloading urllib3-1.22-py2.py3-none-any.whl (132kB)
    100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 133kB 250kB/s
    Collecting certifi>=2017.4.17 (from requests>=2.9.1->browsermob-proxy)
    Downloading certifi-2017.11.5-py2.py3-none-any.whl (330kB)
    100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 337kB 401kB/s
    Collecting chardet<3.1.0,>=3.0.2 (from requests>=2.9.1->browsermob-proxy)
    Downloading chardet-3.0.4-py2.py3-none-any.whl (133kB)
    100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 143kB 296kB/s
    Installing collected packages: idna, urllib3, certifi, chardet, requests, browse
    rmob-proxy
    Running setup.py install for browsermob-proxy ... done
    Successfully installed browsermob-proxy-0.8.0 certifi-2017.11.5 chardet-3.0.4 id
    na-2.6 requests-2.18.4 urllib3-1.22
  • 下载 browsermob-proxy 二进制文件 browsermob-proxy-2.1.4-bin 形成以下 url :

    https://bmp.lightbody.net/
  • ExtractSave C:\Utility

  • 目录
  • 通过 CLI 命令手动启动 Browsermobproxy 服务器:

    C:\Utility\browsermob-proxy-2.1.4\lib>java -jar browsermob-dist-2.1.4.jar --port 9090
    Running BrowserMob Proxy using LittleProxy implementation. To revert to the legacy implementation, run the proxy with the command-line option '--use-littleproxy false'.
    [INFO 2018-01-17T19:01:30,276 net.lightbody.bmp.proxy.Main] (main) Starting BrowserMob Proxy version 2.1.4
    [INFO 2018-01-17T19:01:30,388 org.eclipse.jetty.util.log] (main) jetty-7.x.y-SNAPSHOT
    [INFO 2018-01-17T19:01:30,471 org.eclipse.jetty.util.log] (main) started o.e.j.s.ServletContextHandler{/,null}
    [INFO 2018-01-17T19:01:30,871 org.eclipse.jetty.util.log] (main) Started SelectChannelConnector@0.0.0.0:9090
  • 您还可以通过如下代码启动Browsermobproxy 服务器

  • 创建一个新的 PyDev 模块(如果使用 Eclipse)并通过您的 IDE 编写一个基本程序,如下所示:

    from browsermobproxy import Server
    server = Server("C:\\Utility\\browsermob-proxy-2.1.4\\bin\\browsermob-proxy")
    server.start()
    proxy = server.create_proxy()

    from selenium import webdriver
    profile = webdriver.FirefoxProfile()
    profile.set_proxy(proxy.selenium_proxy())
    driver = webdriver.Firefox(firefox_profile=profile)


    proxy.new_har("google")
    driver.get("http://www.google.co.in")
    proxy.har # returns a HAR JSON blob

    server.stop()
    driver.quit()
  • 快照:

browsermobproxy

  • 将您的测试作为Python 运行执行
  • 当您的程序 执行时,您将观察到Firefox Quantum Browser 被初始化并且url http://www.google.co.in 打开并在测试结束时关闭。
  • 测试执行完成后,您将在工作空间中找到以下文件,这些文件将为您提供测试执行的所有详细信息:

    bmp.log
    geckodriver.log
    server.log
  • 快照: browsermobProxy_logs

关于python - 如何将 browsermob 与 python-selenium 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48201944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com