问题标签 [browsermob]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
19193 浏览

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

在使用 selenium 进行 GUI 测试时,我想使用 browsermob 来监视网络连接。我在这里、这里和这里找到了一些信息和文档绝对不清楚如何真正使用它。

在文档中它写道:

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

我也看到

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

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

0 投票
2 回答
309 浏览

python - HTTP 响应中使用了哪种 base64?

我正在捕获 Selenium 使用 Browser Mob 代理(使用 browsermob-proxy Python 包)发出的 HTTP 请求。在我的 HAR 文件中,我看到了这个(它应该是一个 Javascript 文件):

但是,当解码使用textcontent

我总是收到以下错误:

解码此类字符串的正确方法是什么?

编辑添加

我假设问题来自 rfc1341 的这一行:“base64 数据中的 CRLF 序列应转换为带引号的可打印换行符,但仅在转换文本数据时”,因为解码适用于图像。

但是,我还没有理解什么是 base64 数据中的 CRLF 序列以及如何转换它。

0 投票
1 回答
492 浏览

java - Java:更改外部库 Maven 依赖项的日志级别

我正在使用 maven 将外部依赖 BrowserMob 代理导入到我的 Java 项目中:

但是,当我使用这个库时,它在调试级别的输出中非常冗长,以至于我几乎看不到我的程序在做什么。如何减少该库产生的输出量?我基本上看到了很多这样的:

0 投票
0 回答
247 浏览

java - Browsermob 不会通过 Sauce Connect 拦截 Sauce Labs 的任何内容

我正在尝试从 Browserstack 切换到 Sauce Labs(前者在 docker 中产生了一个僵尸进程,它挂起整个容器)。虽然一切似乎都在连接和监听端口,但 HAR 是空的。

我的设置很简单:在运行测试的机器上,我从我的代码中同时启动 BMP 和 SC。然后我的测试会启动一个远程 WebDriver,它会打开一个网页(我在这里使用 Google 作为示例)。然后,这个互联网连接应该通过 BMP 代理,以便我可以捕获所有分析。

根据我使用 BrowserStack 的经验,它很有效。但是,在与 Sauce Labs 相同的设置中,我没有截获任何东西。

0 投票
1 回答
5497 浏览

python - BrowserMob 代理 Python - 如何获取响应正文?

我需要使用 Selenium Chrome 驱动程序和 browsermob 代理获取 POST 请求的响应正文内容。目前,当我阅读它时,此内容不包含在我的文件 HAR 输出中,尽管我可以在浏览器网络流量中看到响应。我怎样才能让它捕获响应流量?(很抱歉编程新手,看不到太多 BMP 的 python 文档)

0 投票
0 回答
673 浏览

java - selenium/browsermob addheader 不工作 (2.1.5)

我已经在网上搜索了几天,似乎找不到任何真正有效的东西。我看过很多问题/示例,但没有一个对我有用。

Java 1.8、Eclipse 4.7.3a、Selenium-server-standalone-3.1.2.0.jar、browsermob-core-2.1.5.jar

为了能够设置请求标头,我尝试了 15 种不同的解决方案,但它们都不起作用,似乎很多东西都适用于旧版本。

简单的设置,

添加标头功能没有错误,但似乎没有设置标头,我继续设置驱动程序,测试一切正常,但标头未设置。

这段代码正确吗?我错过了什么吗?有人真的可以为我指出一个简单的例子,它适用于我正在运行的版本,或者请让我知道我哪里出错了。

谢谢

0 投票
1 回答
84 浏览

java - Browsermob 在 IntelliJ 创建的 jar 文件中导致错误

我正在尝试为 Maven Selenium/TestNG/Java 测试自动化项目创建可执行 jar,但在运行 .jar 文件时我不断收到“错误:无法找到或加载主类”。
为了确保确实是 Browsermob 导致 jar 失败,我创建了一个新的 maven 项目,它在 src\main\java 目录中有一个文件

我正在使用 IntelliJ,当创建没有 Browsermob 依赖的 .jar(项目结构 > 工件 > JAR > 从模块...等)时,一切都很好。但是,一旦我将 Browsermob 添加到它,.jar 就会开始失败,并显示“错误:无法找到或加载主类”。

其他依赖项似乎不会造成任何麻烦。

pom.xml 以防万一:

可能是什么原因?

0 投票
0 回答
335 浏览

java - Selenium 与 BrowserMob - 404 错误

我目前正在尝试使用 BrowserMob 设置 Selenium WebDriver,以在测试中捕获网络请求。目前我的设置如下:

在 192.168.1.97,端口 8080 上运行 TomCat 的开发机器

在网络驱动程序上:

返回:

代理(手动,http=192.168.0.97:64181,ssl=192.168.0.97:64181)

我们的网络上没有使用公司代理。

以下是我测试中的代码:

目前正在发生的事情是,Chrome 正在成功生成,当我将这些功能传递给 Web 驱动程序时,本地 Web 服务器为许多请求返回 404 错误。这些似乎都是外部资源(与直接来自 TomCat 的请求相反),所以我的解决方案非常接近,只是无法让 BrowserMob 连接到第三方 HTTP 和 HTTPS 资源。例如 jQuery 失败、Google Analytics 失败等等。

我已经检查了实际资源中的 HAR 资源,并且代理似乎受到了打击,因为我能够读取 HAR 资源。IE。我从中得到输出:

如果我删除链式代理的行,Selenium 根本不会连接到任何 Web 服务器。我怀疑本地设置是否需要链式代理,但我现在使用它比没有它更进一步。

有人能看出有什么不对吗?我假设因为我正在运行“嵌入式”模式我不需要在命令行运行代理?

还有其他值得探索的设置吗?

0 投票
1 回答
1132 浏览

selenium - BrowserMob 代理和 Webdriverio 最小的空 HAR 文件

我想知道是否有人对可能是什么问题或在解决以下问题时可以采取的其他步骤有任何想法。

我需要捕获网络流量,因此我可以编写一些硒测试来验证某些请求标头。

问题是当尝试使用 Webdriver.io + Browsermob 代理时,创建的 HAR 文件包含的信息非常少。

我尝试使用代理的 C# 绑定,这导致了与 Javascript 相同的问题。在 HAR 文件中返回数据的唯一绑定是 Java 绑定。虽然有一个业务需求,但我必须使用 Webdriver.io 来实现它。

我从堆栈溢出中检查了许多其他问题和答案,但无济于事。大多数都没有得到回答,那些还没有为我工作过的。

我当前运行的代码与代码非常相似,不同之处在于我试图从中获取信息的 URL。

我工作的 Java 代码与 Javascript 和 C# 代码之间的区别在于,Java 以编程方式设置代理,而另外两个期望代理已经在运行并连接到它。

即使考虑到这一点,当我启动 C# 或 Javascript 测试时,代理也会注册新连接。selenium 服务器也可以正常启动。测试完成后,根据各自的控制台,这两种清理都没有问题。

有没有其他方法可以潜在地调试这个?甚至是捕获网络流量的替代方案(必须跨浏览器工作 - 已经有一个使用 chrome-remote-interface 适用于 chrome 的解决方案,但我们看到了使用 browsermob 代理进行跨浏览器网络捕获的建议)。

谢谢你的时间

我忘了提一些非常重要的东西。下面是我用于 browsermob-proxy 的 npm 包

https://www.npmjs.com/package/browsermob-proxy

0 投票
1 回答
263 浏览

python - 为 Browsermob/Selenium 激活 Ecc

我的问题是使用 Selenium 和 browsermob 的测试对于某些网站来说变得非常慢。这是我当前设置服务器和代理的代码:

我已经读过加快测试的一种方法是使用 EC 证书而不是 RSA。但是,如何使用上面的代码激活 ECC?