- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在使用 selenium 进行 GUI 测试时,我想使用 browsermob 来监控网络连接。我找到了一些信息和文档here和 here和 here ,但完全不清楚如何真正使用它。
在文档中是这样写的:
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 .
通过 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/
Extract
并Save
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()
快照:
测试
作为Python 运行执行程序
执行时,您将观察到Firefox Quantum Browser 被初始化并且url
http://www.google.co.in 打开并在测试结束时关闭。测试执行
完成后,您将在工作空间中找到以下文件,这些文件将为您提供测试执行
的所有详细信息:
bmp.log
geckodriver.log
server.log
关于python - 如何将 browsermob 与 python-selenium 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48201944/
我是一名优秀的程序员,十分优秀!