我正在使用Jmeter 2.13和selenium webdriver插件。当我启动我的线程时,它打开一个新的firefox会话,清除所有cookie和缓存。在之前的一次会议中,我进行了持续近5分钟的同步,这使我在我的应用程序中获得了一些产品。我不想在每次启动线程时同步。
有没有办法在不清除cookie /缓存的情况下启动新的firefox会话?
答案 0 :(得分:0)
如果我的猜测是正确的,那么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);
答案 1 :(得分:0)
查看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;
}
所以有两个选择:
获取插件源代码并修改配置文件初始化行,以使用您现有的配置文件:
FirefoxProfile profile = new FirefoxProfile("/path/to/firefox/profile");
有关如何找到当前配置文件目录的说明,请参阅Mozilla文档的How do I find my profile页面。
停止使用WebDriver Sampler并切换到JSR223 Sampler,它支持WebDriver Sampler所做的所有语言并提供完全控制(您必须自己编写所有代码来配置,启动和停止浏览器)