当前位置: 首页 > 知识库问答 >
问题:

带BrowserMob代理的Selenium

孙琨
2023-03-14

我开始在Selenium上写一些测试,并认为如果我能在登录我们的网站时获得性能指标,那就太好了。我遇到了BrowserMob-Proxy。我开始从Lightbody的github页面复制前五行,我已经得到了错误消息:“ProxyServer无法解析为类型”和“代理无法解析为类型”。

谁能告诉我这里还缺什么吗?

这是pom。xml:

...
</plugins>
</build>
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-impl</artifactId>
        <scope>test</scope>
    </dependency>
    <!-- 20131112 ab hier neu hinzugefügt von "https://docs.jboss.org/author/display/ARQ/Drone" -->
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-webdriver-depchain</artifactId>
        <version>${version.org.jboss.arquillian.drone}</version>
        <type>pom</type>
        <scope>test</scope>
    </dependency>
    <!-- bis hier -->
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-selenium</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.jboss.arquillian.extension</groupId>
        <artifactId>arquillian-drone-selenium-server</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>servlet-api-2.5</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.6.4</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.lightbody.bmp</groupId>
        <artifactId>browsermob-proxy</artifactId>
        <version>LATEST_VERSION (ex: 2.0-beta-9)</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>selenium-api</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
<profiles>
    <profile>
        <id>arquillian-weld-ee-embedded</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <dependency>
                <groupId>org.jboss.spec</groupId>
                <artifactId>jboss-javaee-6.0</artifactId>
                <version>1.0.0.Final</version>
                <type>pom</type>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.container</groupId>
                <artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
                <version>1.0.0.CR3</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.weld</groupId>
                <artifactId>weld-core</artifactId>
                <version>1.1.5.Final</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.6.4</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>arquillian-glassfish-embedded</id>
        <dependencies>
...

在这个类中,我试图让方法“开始”和“结束”(“开始”还没有完成,我还没有“结束”...)。通过调用开始BrowserMob应该开始测量性能和结束它应该停止测量...

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Timer {

public void start() {

    // start the proxy
    ProxyServer server = new ProxyServer(4444);
    server.start();

    // get the Selenium proxy object
    Proxy proxy = server.seleniumProxy();

    // configure it as a desired capability
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(CapabilityType.PROXY, proxy);

    // start the browser up
    WebDriver driver;

}

}

共有2个答案

安承教
2023-03-14

尝试BrowserMobProxyServer server=new BrowserMobProxyServer();然后从中获取常规代理。是的,获取最新版本。

丌官博文
2023-03-14

您的问题在于版本行。它看起来像是直接从browsermob github页面复制和粘贴的。相反,这条线应该是这样的。

<version>2.0-beta-9</version>   

删除最新的_版本和其他语法。

 类似资料:
  • 我正在尝试将browsermob设置为在我的selenium项目中工作。我正在寻找一种使用ChromeOptions来设置代理的方法,但是所有的资源都告诉我要使用ChromeOptions来处理其他的事情,然后在实例化一个新的ChromeDriver实例之前将它转换为DesiredCapabilities。 这是我的代码: 我使用的是maven存储库中的Webdriver版本2.44。这是我得到的

  • 问题内容: 具有依赖项的Maven / Java项目: 码: 公共类bmp_Selenium { } 控制台输出: 在端口:57547上运行的BrowserMob代理在端口47157上启动ChromeDriver 2.33.506106(8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2)仅允许本地连接。2017年11月30日下午4:48:33 org.openqa.

  • 问题内容: 我想为browsermob配置上游代理,最好从python或shell脚本中以编程方式配置。 它看起来不像browsermob的python绑定包含了上游代理配置命令或方法。我可以使用另一种方法吗? 问题答案: python绑定实际上确实允许您配置上游代理。使用创建代理时,可以将的值设置为上游代理的IP地址和端口(有关详细信息,请参见create_proxy上的参数)。

  • 具有依赖项的Maven/Java项目: 代码: 公共类bmp_Selenium{ } 控制台输出: BrowserMob代理运行在端口:57547上启动chrome driver 2 . 33 . 506106(8 a 06 c 39 c 4582 fbfbfbab 6966 db B1 c 38 a 9173 BF B1 a 2)在端口47157上只允许本地连接。2017年11月30日下午4:4

  • 我想在所有浏览器上自动化Web应用程序。我的代码运行正常,铬,火狐,但当我尝试它在边缘,它显示ssl证书错误。 if((browser.equalsIgnoreCase(“边缘”)){ //DesiredCapabilities=新DesiredCapabilities();//能力。setCapability(CapabilityType.PROXY,PROXY);

  • 我似乎无法在我的vue/express应用程序中使用devServer:proxy设置。 我的vue.config.js文件在我的客户端文件夹的根目录中,看起来像: 我使用axios从前端发送请求,如下所示: 我的快速应用程序正在localhost:5000上运行,我已经配置了endpoint: 请求在我的网络选项卡中显示为: 并返回404错误。 我错过了什么?