Tsung

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 10. elokuuta 2015 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .
Tsung
Tyyppi Kuormitustestaustyökalu
Kehittäjä Nicolas Nicklausse
Sisään kirjoitettu Erlang [1]
Käyttöliittymä komentorivi
Käyttöjärjestelmä Linux , UNIX
uusin versio
Lisenssi GNU GPL 2
Verkkosivusto tsung.erlang-projects.org

Tsung ( englanninkielisestä  Tsunami-Next Generation [3] , joka tunnettiin aiemmin nimellä IDX-Tsunami ) on hajautettu kuormitus- ja stressitestausjärjestelmä , joka on kirjoitettu erlang -kielellä . Järjestelmän kehittämisen aloitti Nicolas Niclauss e vuonna 2001. Alun perin se oli hajautettu järjestelmä kuormitustestaukseen IDEALXin (nykyisin OpenTrust ) sisäisiin tarpeisiin . Muutamaa kuukautta myöhemmin projekti kehittyi avoimen lähdekoodin moniprotokollatyökaluksi kuormitustestausta varten. HTTP - tuki lisättiin vuonna 2003.

Tsungilla voidaan testata erilaisia ​​HTTP-protokollia (mukaan lukien SOAP ), WebDAV , Jabber , LDAP sekä PostgreSQL ja MySQL , ja se mahdollistaa myös klusterin emuloinnin asiakaskoneista [4] .

Ominaisuudet

HTTP - protokollalle järjestelmä sallii:

Jabber /XMPP-protokollassa voidaan testata todennusviestejä , läsnäolorekisteröintiä, chat-viestejä, työskentelyä käyttäjäluettelon kanssa, huoneita ja käyttäjien synkronointiasetuksia .

Rakenne

Tsung - määritystiedosto  on XML - tiedosto. Päätunniste on tunniste <tsung>, joka sisältää koko määrityksen. Tunnisteella on kaksi ominaisuutta: loglevel ja dumptraffic . loglevel ohjaa lokin monisanaisuutta, kun taas dumtrafficia käytetään virheenkorjaukseen. Vaihtoehto dumptraffic=true luo dump.log- lokitiedoston , joka sisältää yksityiskohtaiset tiedot kunkin palvelimen vastauksesta. Tsungin uusimmassa versiossa on vaihtoehdot dumptrafic=light  - palvelimen vastauksen ensimmäiset 44 tavua ja dumptrafic=protocol  - vain seuraava datapäivä ;pid;id;http-menetelmä;isäntä;URL;HTTP status;size;match ;error .

<?xml version="1.0"?> < tsung loglevel= "info" dumptraffic= "false" > ... </tsung>

Asiakkaat ja palvelimet

Testattaessa voit käyttää useita virtuaalisia IP-osoitteita, mikä on erittäin hyödyllistä, kun palvelimen kuormituksen tasapainotin käyttää asiakkaan verkko-osoitetta verkkoliikenteen jakamiseen palvelinklusterissa.

<clients> <client host= "test1" weight= "1" maxusers= "500" > <ip value= "10.0.2.3" /> <ip value= "10.0.2.4" /> </client> <client host = "test2" weight= "3" maxusers= "250" cpu= "2" > <ip value= "10.1.2.5" /> </client> </clients> <server host= "10.2.2.10" port= "8081" type= "tcp" />

Erlang VM voi käyttää useita ytimiä – Tsung-asiakkaiden on tehokkaampaa käyttää yhtä VM:tä ydintä kohti. Cpu - parametrin on oltava yhtä suuri kuin solmujen ytimien lukumäärä.

Tässä esimerkissä toista konetta käytetään Tsung-klusterissa, jossa on suuri "paino" ja kaksi ydintä. Oletusarvon mukaan kuorma jakautuu tasaisesti kaikille ytimille (oletusarvoisesti yksi ydin asiakasta kohti). Paino ( kokonaisluku) -parametrilla voidaan asettaa asiakaskoneen prioriteetti. Erityisesti, jos yhden asiakkaan paino on 1 ja toisen paino 2, toinen käynnistää kaksi kertaa enemmän käyttäjiä kuin ensimmäinen (suhteet ovat 1/3 ja 2/3). Yllä olevassa esimerkissä, jossa toisen asiakkaan cpu=2 ja weight=3 , paino on 1,5 jokaiselle ytimelle.

Valvonta

Tsung tukee useita valvontavaihtoehtoja: natiivi valvontaagentti Erlangissa , Muninissa tai SNMP :ssä . Agentti on asennettava palvelinpuolelle [5] . Jos kuorma on luotu palvelinklusterille, voit käyttää eri agentteja eri palvelimille.

<monitoring> <monitor host= "10.1.1.94" type= "erlang" /> <monitor host= "10.1.1.94" type= "munin" > <munin port= "8081" /> </monitor> <monitorin isäntä = "10.1.1.94" type= "snmp" > <snmp version= "v2" Community= "rwCommunity" port= "11161" /> </monitor> </monitoring>

Latausvaiheet

Kuorma voidaan jakaa useisiin vaiheisiin. Asetuksissa voit asettaa kunkin vaiheen keston ja vaiheiden järjestyksen. Kussakin vaiheessa voit asettaa samanaikaisten käyttäjien määrän kahdella tavalla: asettaa käyttäjien määrän ajanjaksoa kohti, esimerkiksi 100 käyttäjää sekunnissa, tai määrittää käyttäjien luontitiheyden, kuten yksi käyttäjä 0,01 sekunnin välein. Vakaassa kuormassa voit lisätä tietyn istunnon tiettyyn aikaan simuloidaksesi jonkinlaista tarkistusta tai käynnistääksesi jonkin palvelun.

<load> <saapumisvaihe = "1" kesto= "10" unit= "minuutti" > <!-- Lämpenemisvaihe --> <käyttäjien välinen saapuminen= "0.1" unit= "sekunti" > </users> < /arrivalphase > <arrivalphase phase= "2" duration= "60" unit= "minute" > <!-- Latausvaihe --> <käyttäjien saapumisnopeus= "1000" unit= "second" > </users> </arrivalphase > < !-- Special Sessions --> <user session= "addManyProducts" start_time= "20" unit= "minute" /> <user session= "checkOrders" start_time= "25" unit= "minute" /> </ kuorma>

Käyttäjäagentit

Seuraavassa kokoonpanoesimerkissä määritetään käyttäjäagenttien prosenttiosuus eri selaimien simuloimiseksi . Tämä prosenttiosuus määrittää todennäköisyyden määrittää käyttäjäistunto jollekin määritetyistä agenteista (oletusarvo on määritetty - tsung ):

< optiotyyppi = "ts_http" name= "user_agent" > <user_agent probability= "60" > Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0 </user_agent> <user_agent probability= "20" > Mozilla/5.0 (yhteensopiva; MSIE 8.0; Windows NT 5.0; Trident/4.0; InfoPath.1; SV1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 3.0.04506.30) </user_agent> <user_agent probability= "20" > Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, kuten Gecko) Chrome/19.0.1042.0 Safari/535.21 </user_agent> </option>

Muistiinpanot

  1. Tsungin avoimen lähdekoodin projekti Open Hubissa: Kielisivu - 2006.
  2. Julkaisu 1.7.0 - 2017.
  3. Nicolas Niclausse. Tsung-versio 1.2.0 saatavilla (linkki ei saatavilla) . Haettu 30. toukokuuta 2016. Arkistoitu alkuperäisestä 4. maaliskuuta 2016. 
  4. 12 Holt , 2011 .
  5. Holt, 2011 , s. 54.

Kirjallisuus

  • Bradley Holt. Luku 6. Hajautetun kuormituksen testaus // CouchDB:n skaalaus. - O'Reilly Media, Inc., 2011. - 72 s. — ISBN 978-1-4493-0343-3 .

Linkit