' freak.no - Stresstesting av webløsning
freak.no

freak.no (https://freak.no/forum/index.php)
-   Web-utvikling (https://freak.no/forum/forumdisplay.php?f=67)
-   -   Stresstesting av webløsning (https://freak.no/forum/showthread.php?t=289213)

M72 29. mai 2016 17:58

Stresstesting av webløsning
 
Hei,

finnes det noen tjenester som kan stress-teste en webløsning ved å kjøre flere nettlesere / instanser simultant?
Eventuelt programmer en kan kjøre selv på egen maskin.

Jeg har en WebSocket-server som kjører en del transaksjoner, og ønsker å se hvordan tjenesten oppfører seg når 20,100,200,500 ++ brukere er inne på tjenesten (og forblir værende mens transaksjonene kjøres)

På forhånd, takk.

etse 29. mai 2016 18:02

Finnes mange måter å kjøre ytelsestester på, men krever at du har en rigg som er god nok til å klare det. På jobb har vi brukt Gatling en del, hvor du kan recorde en eller flere brukerflyter og så simulere med X-antall brukere. Har fungert helt greit. http://gatling.io/

Lacertosus 29. mai 2016 18:05

Sitat:

Sitat av etse (Innlegg 3314612)
Finnes mange måter å kjøre ytelsestester på, men krever at du har en rigg som er god nok til å klare det. På jobb har vi brukt Gatling en del, hvor du kan recorde en eller flere brukerflyter og så simulere med X-antall brukere. Har fungert helt greit. http://gatling.io/

Er det bare jeg som er dårlig til å navigere, eller er det ingen gratis tjenester på gatling?

Hadde vært kult å fått testet nettsiden(e) jeg lager, men som en fattig student frister det lite å bruke mer penger på nett-tjenester. :\

vidarlo 29. mai 2016 18:19

Apache Bench funker jo og rimeleg greit. Om du skal simulere komplekse brukergjennomløp må det litt scripting til, men det går jo alltids an.

M72 29. mai 2016 18:50

Sitat:

Sitat av vidarlo (Innlegg 3314622)
Apache Bench funker jo og rimeleg greit. Om du skal simulere komplekse brukergjennomløp må det litt scripting til, men det går jo alltids an.

Jeg har prøvd med Apache Bench, men den starter aldri WebSocket-transaksjonene.

fuzzy76 29. mai 2016 19:06

WebSocket er litt mer kronglete ja. Men et kjapt Google-søk ga meg både https://github.com/observing/thor og https://artillery.io som begge ser ut til å skulle kunne gjøre oppgaven.

M72 29. mai 2016 19:35

Sitat:

Sitat av fuzzy76 (Innlegg 3314644)
WebSocket er litt mer kronglete ja. Men et kjapt Google-søk ga meg både https://github.com/observing/thor og https://artillery.io som begge ser ut til å skulle kunne gjøre oppgaven.

Disse sender requests og lukker sesjonen med en gang. Det jeg er på utkikk etter er ekte / virtuelle klienter som kobler seg opp mot tjenesten og bare blir der med sesjonen oppe uten å gjøre noe bortsett fra å holde WebSocket tjenesten i live.

fuzzy76 29. mai 2016 20:07

Sitat:

Sitat av M72 (Innlegg 3314653)
Disse sender requests og lukker sesjonen med en gang. Det jeg er på utkikk etter er ekte / virtuelle klienter som kobler seg opp mot tjenesten og bare blir der med sesjonen oppe uten å gjøre noe bortsett fra å holde WebSocket tjenesten i live.

Å bare idle med en connection oppe krever jo ekstremt lite ressurser, så et såpass kunstig scenario vil jo ikke si deg noe som helst om ytelsen.

Forøvrig kan artillery.io gjøre nøyaktig det du beskriver (ved hjelp av think-operasjonen), så her tror jeg du skal lese dokumentasjonen en gang til.

M72 30. mai 2016 01:11

Sitat:

Sitat av fuzzy76 (Innlegg 3314671)
Å bare idle med en connection oppe krever jo ekstremt lite ressurser, så et såpass kunstig scenario vil jo ikke si deg noe som helst om ytelsen.

Forøvrig kan artillery.io gjøre nøyaktig det du beskriver (ved hjelp av think-operasjonen), så her tror jeg du skal lese dokumentasjonen en gang til.

Å idle en connection i webløsningen vil fyre løs en stresstesting av ytelsen. Jeg måler ikke hvor mange ping-meldinger jeg kan sende og motta ved hjelp av masse virtuelle klienter, jeg måler hvordan den overliggende transaksjonsprotokollen jeg har implementert takler mange brukere.
Problemet til mange av disse løsningen er at de virtuelle klientene de instansierer ikke kjører en browser engine i bunn, slik at de ikke klarer å plukke opp klient-side-koden jeg har implementert og starte en WS-kobling og transaksjon.

Jeg har forøvrig laget et skript med Selenium og PhantomJS som fungerer som virtuelle klienter, men de spiser ressursene på maskinen min, og jeg har ikke muligheten til å distribuere denne koden til å kjøre på clustere, derfor ser jeg etter andre løsninger.


Alle tidspunkt er GMT +2. Klokken er nå 16:51.