Úno
8
Myslel jsem, že už to mám, ale byla to slepá cesta.
Můj postup byl takový, že jsem si vytvořil testy v Selenium IDE, nastavil Selenium Core a pak vytvořil dávku, která ty testy dokázala spustit v předem určeném počtu Firefoxů, pokaždé s jiným prázdným profilem:
@ECHO OFF
SETLOCAL
REM Nastavení.
SET count=20
SET firefox_path="c:\Program Files\Mozilla Firefox\firefox.exe"
SET testUrl="http://localhost:12345/Selenium/core/TestRunner.html?test=../tests/TestSuite.html&resultsUrl=../postResults&auto=true"
SET profilePrefix=%TEMP%\TestProfile
REM Spuštění %count% instancí Firefoxu.
FOR /L %%i IN (1,1,%count%) DO MKDIR "%profilePrefix%%%i"
FOR /L %%i IN (1,1,%count%) DO ECHO user_pref("browser.shell.checkDefaultBrowser", false); user_pref("browser.startup.homepage_override.mstone", "rv:1.9.0.3"); > "%profilePrefix%%%i\prefs.js"
FOR /L %%i IN (1,1,%count%) DO %firefox_path% -no-remote -profile "%profilePrefix%%%i" %testUrl%
ECHO Ted chvilku pockejte na dobehnuti vsech testu.
PAUSE
REM Úklid.
TASKKILL /IM firefox.exe /T /F
FOR /L %%i IN (1,1,%count%) DO RMDIR /S /Q "%profilePrefix%%%i"
ENDLOCAL
Takhle s dvaceti okny to ještě ujde, obsazení paměti mi vyšplhá jenom na nějakých 85%:
Jenže 20 je málo. To už se na podobné testování můžu rovnou
vykašlat, jako všichni ostatní. Zkusil jsem nastavit 50 (i to je pořád
málo), během chvilky se počítač stal totálně nepoužitelným a trvalo
půl hodiny, než se mi podařilo přerušit tu dávku a taskkillnout ty
firefox.exe procesy…
Takže tudy cesta nevede. ![]()
