【问题标题】:Jmeter with selenium webdriver plugin-start firefox session without cleaning cookies/cacheJmeter with selenium webdriver plugin-start firefox session without清理cookies/cache
【发布时间】:2015-11-10 11:30:48
【问题描述】:

我正在使用 Jmeter 2.13 和一个 selenium webdriver 插件。当我启动我的线程时,它会打开一个新的 Firefox 会话,并清除所有 cookie 和缓存。在之前的会话中,我进行了持续近 5 分钟的同步,这为我的应用程序带来了一些产品。我不想每次启动线程时都同步。

有什么方法可以在不清除 cookie/缓存的情况下启动新的 firefox 会话?

【问题讨论】:

    标签: selenium selenium-webdriver webdriver jmeter jmeter-plugins


    【解决方案1】:

    如果我的猜测是正确的,Selenium 就是打开 Firefox 实例的那个,请看下面。如果没有,请通过代码示例提供有关您设置的更多信息。

    默认情况下,Selenium 以安全模式打开 Firefox,其中很多东西都被禁用(如扩展、本地存储设置等)。这也意味着您不会有任何缓存或 cookie。

    您可以阅读有关此here 的更多信息。

    要禁用此功能,您需要将 `about:config` 中的 `toolkit.startup.max_resumed_crashes` 设置键设置为 `-1`。

    在 Selenium 代码方面,这可以通过在 FirefoxProfile 中设置首选项来实现。实现它的 C# 代码如下所示:

    FirefoxProfile firefoxProfile = new FirefoxProfile();
    firefoxProfile.SetPreference("toolkit.startup.max_resumed_crashes", "-1");
    
    IWebDriver driver = new FirefoxDriver(firefoxProfile);
    

    【讨论】:

      【解决方案2】:

      查看 FirefoxDriverConfig.java 源代码,每次 Firefox 启动时插件都会创建新的配置文件:

      FirefoxProfile createProfile() {
          FirefoxProfile profile = new FirefoxProfile();
          String userAgentOverride = getUserAgentOverride();
          String ntlmOverride = getNtlmSetting();
          if (StringUtils.isNotEmpty(userAgentOverride)) {
              profile.setPreference("general.useragent.override", userAgentOverride);
          }
          if (StringUtils.isNotEmpty(ntlmOverride)) {
              profile.setPreference("network.negotiate-auth.allow-insecure-ntlm-v1", true);
          }
      
          profile.setPreference("app.update.enabled", false);
      
          addExtensions(profile);
          setPreferences(profile);
      
          return profile;
      }
      

      所以有两种选择:

      1. 获取插件源代码并修改配置文件初始化行以使用您现有的配置文件:

        FirefoxProfile profile = new FirefoxProfile("/path/to/firefox/profile");
        

        请参阅 Mozilla 文档的 How do I find my profile 页面,了解有关如何找到当前配置文件目录的说明。

      2. 停止使用 WebDriver Sampler 并改用 JSR223 Sampler,它支持 WebDriver Sampler 支持的所有语言并提供完全控制(您必须自己编写所有代码来配置、启动和停止浏览器)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        • 2021-06-08
        • 1970-01-01
        • 2014-06-18
        • 1970-01-01
        • 1970-01-01
        • 2013-06-28
        相关资源
        最近更新 更多