windows - Selenhvirvelvirkning med IE virker ikke, hvis RDP aldrig er forbundet med Jenkins slaver

Indlæg af Hanne Mølgaard Plasc

Problem



Vi opretter en masse Windows Jenkins slaver på Amazon EC2, og gør dem autologon, efter at de er forsynet. [3]


Når vi er logget på, bruger vi at forbinde slaverne tilbage til at mastere via java web start med at udføre 'ps'. Med alt dette kan vi køre selen perfekt med IE, medmindre vi ikke kan få en højere opløsning end 1024 * 768. Vi fik screenshot, kan vi se browseren køre på GUI'en, hvis den er forbundet med RDP, ligesom at køre på en fysisk pc.


Men det er en fejl, at hover-handlingen ikke virker på IE, medmindre vi forbinder slaven via fjernbetjeningen en gang før testen starter, bare tilslut en gang, intet andet, jeg kan endda lukke RDP-sessionen.


Jeg gætter på noget, der udløses af RDP-forbindelsen, kan bare ikke finde ud af, hvad der er.

Bedste reference


Du kan forsøge at tilpasse dine testskripter for at få dem til at lave en RDP-forbindelse, før du starter dine test, hvis der ikke findes nogen. Dette er koden jeg brugte til et af vores projekter for at sikre en RDP-forbindelse er aktiv:


    REM check if user has an RDP session. Will store the session ID of the user in the SESSION variable
    call :getsession computername username SESSION

    if "\%SESSION\%" EQU "" (
         REM initiate an RDP connection to 'computername', wait, and disconnect by killing the process
         mstsc.exe /v:computername & ping -n 5 1.1.1.1 & taskkill /F /IM mstsc.exe
    )

    REM check again the session
    call :getsession computername user SESSION

    if \%SESSION\% NEQ "" (
        echo start your tests
    )

    :getsession
    for /F "tokens=1,2,3,4" \%\%i in ('query session /SERVER:\%1 ^| findstr \%2') do if \%\%j EQU \%2 (SET \%3=\%\%k) else (SET \%3=\%\%j)
    goto :eof


Bemærk, at den automatiske forbindelse kun foretages, hvis du gemmer legitimationsoplysninger på maskinen, hvorfra du starter fjernbetjeningen:


    cmdkey /generic:computername /user:rdp\_username /pass:rdp\_password


Efter at have udført dette en gang vil mstsc.exe kunne oprette forbindelse til maskinen uden brugerinteraktion.