我使用Jmeter 2.13與硒webdriver插件並排。當我開始我的線程時,它會打開一個新的Firefox會話,並清除所有Cookie和緩存。在之前的會話中,我進行了一次持續差不多5分鐘的同步,這會將我帶入我的應用中的一些產品。每次啓動線程時,我都不想同步。Jmeter與硒webdriver插件啓動火狐會話沒有清理餅乾/緩存
有什麼辦法可以啓動新的Firefox會話而不清除Cookie /緩存?
我使用Jmeter 2.13與硒webdriver插件並排。當我開始我的線程時,它會打開一個新的Firefox會話,並清除所有Cookie和緩存。在之前的會話中,我進行了一次持續差不多5分鐘的同步,這會將我帶入我的應用中的一些產品。每次啓動線程時,我都不想同步。Jmeter與硒webdriver插件啓動火狐會話沒有清理餅乾/緩存
有什麼辦法可以啓動新的Firefox會話而不清除Cookie /緩存?
如果我的猜測是正確的,那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);
展望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;
}
因此,有2種選擇:
獲取插件源代碼並修改配置文件初始化行以使用您現有的配置文件:
FirefoxProfile profile = new FirefoxProfile("/path/to/firefox/profile");
請參閱How do I find my profile頁面的Mozilla文檔,瞭解有關如何查找當前配置文件目錄的說明。
停止使用webdriver的採樣,然後切換到JSR223 Sampler相反,它支持所有的webdriver採樣器,並提供了完整的控制語言(你必須寫所有的代碼來配置,啓動和停止自己的瀏覽器)