Ááá

Další web používající WordPress

Úno

8

Jak simulovat paralelní přístupy?

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%:

clipboard01.png

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. :-(

This entry was posted by LLook on 00:56, Úno 8th 2009 and filed in Nezařazené.

Komentáře můžete sledovat přes RSS 2.0 kanál.

Komentářů už je 11. :-) to “Jak simulovat paralelní přístupy?”

  1. AvatarMartin Hujer
    Posted: Úno 8th, 2009 at 9.26
    1

    On tam existuje nějaký parametr, něco jako reuse, díky kterému Selenium používá stejné okno…

  2. AvatarMartin Hujer
    Posted: Úno 8th, 2009 at 9.28
    2

    Tak je to -browserSessionReuse

  3. AvatarLLook
    Posted: Úno 8th, 2009 at 13.17
    3
    Author Comment

    Jenže pak taky používá stejné cookies a tím pádem stejnou session. Pak nejde o test více uživatelů zároveň, ale test jednoho uživatel ve více tabech.

    Schůdnou cestu vidím spíše v tom, nahradit Selenium něčím na způsob HtmlUnit, prostě browserem, který neplýtvá zdroje na nějaké vykreslování nebo GUI. Teď jsem zjistil, že to už přede mnou někoho napadlo: http://clearspace.openqa.org/thread/15219

    Takže se teď trochu podívám na ten nástroj PushToTest TestMaker, to by mohlo být ono.

  4. AvatarHologos
    Posted: Úno 8th, 2009 at 13.17
    4

    Proč nezkusit použít nějaký méně náročný prohlížeč? Když už se má otevírat tolik oken, je jasné, že pokud jedno okno zabere v paměti 50MB paměti, že při 20 oknech to nebude svižné..

  5. AvatarLLook
    Posted: Úno 8th, 2009 at 13.19
    5
    Author Comment

    [4] Méně náročný prohlížeč buďto nespustí Selenium test, nebo nemá podporu profilů (např. Google Chrome, Internet Explorer).

  6. AvatarMartin Hujer
    Posted: Úno 8th, 2009 at 20.30
    6

    Chrome umí profily…

    „C:\Documents and Settings\…\Local Settings\Data aplikací\Google\Chro­me\Application\chro­me.exe“ „–user-data-dir=I:\_usr\chrome“

  7. AvatarHologos
    Posted: Úno 8th, 2009 at 20.37
    7

    [5] Sorry, na to jsem nepomyslel ;)

  8. AvatarHologos
    Posted: Úno 8th, 2009 at 20.37
    8

    [5] Sorry, na to jsem nepomyslel :)

  9. Avatarv6ak
    Posted: Úno 10th, 2009 at 18.28
    9

    Já si hned říkal, že to je nějaký divný.

    Co takhle mockovat požadavek Controlleru?

  10. AvatarLLook
    Posted: Úno 13th, 2009 at 19.08
    10
    Author Comment

    Mockovat požadavky by možná nějak šlo, ale všechno by se tím dost zkomplikovalo.

    Já chci testovat běžné uživatelské chování, jako například uživatel se přihlásí, něco změní, vyjede si nějaký report a zase se odhlásí. S nástrojem typu Selenium IDE takové chování během chvilky doslova naklikám, kdybych měl podobné testy definovat imperativně v C# s použitím nějakých nízkoúrovňových mocků, tak by to dost zdržovalo.

    PushToTest se mi nedaří nainstalovat, instalátor vyhazuje nějakou FileNotFoudEx­ception. Našel jsem ještě jeden projekt, který předělává Selenium testy na HtmlUnit testy: Selenium-HtmlUnit Adapter. Možná se k tomu ještě někdy vrátím, ale teď už mě to nějak nebaví a tak řešení load testů odkládám na neurčito…

  11. AvatarOndra
    Posted: Říj 4th, 2009 at 13.35
    11

    Javu už umíš, zkus HtmlUnit.

SexyComments by BorkWeb

Leave a Reply


© Ááá * WordPress * LoseMyMind * Feed feed