Rindas un JMeter: kopīgošana ar izdevēju un abonentu
Sveiks, Habr! Šis ir turpinājums manējam iepriekšējā publikācija, kurā es runāšu par iespējām ievietot ziņojumus rindās, izmantojot JMeter.
Mēs veidojam datu kopni lielam federālam uzņēmumam. Dažādi pieprasījumu formāti, transformācijas, sarežģīta maršrutēšana. Lai veiktu testēšanu, uz rindu ir jānosūta daudz ziņojumu. Manuāli ir sāpes, ar kurām ne katrs manuālais terapeits var tikt galā.
Ievads
Lai gan sākumā man bija jāsamierinās ar šīm sāpēm. Viss sākās ar RFHUtil. Spēcīgs, bet neērts un biedējošs: Nu, jūs zināt Rus.
Dažos gadījumos neaizstājams, bet aktīvas lietošanas gadījumā tas pastāvīgi samazinās.
Ērta pārbaude ar to nav iespējama.
Ar JMeter viss ir kļuvis vienkāršāks. Pēc pirmā apgūšanas un pierašanas posma sāka parādīties cerība uz laimīgu pārbaudi.
Es aktīvi izmantoju JMS Publisher un JMS Subscriber paraugus. Atšķirībā no JMS Point-to-Point, šis pāris šķita ērtāk lietojams. Piemēram, ar Subscriber JMS Selector var norādīt mainīgo, bet ar punktu-punktu jūs nevarat (vai arī šī metode nav īpaši acīmredzama).
Paraugu ņemšanas sagatavošana
JMS izdevējs
Iestatīšana — katrs paraugs. Apache iesaka izmantojiet šo opciju, ja rindas/tēmas ir norādītas, izmantojot mainīgos.
Derīguma termiņš (ms) = 120000. Neveiksmes gadījumā testa pieprasījumi pazudīs no rindas pēc 2 minūtēm.
Vai izmantot nepastāvīgu piegādes režīmu? - taisnība. IBM pretenzijaska pastāvīgais režīms nodrošina drošu pārsūtīto ziņojumu saglabāšanu pēkšņas atteices gadījumā. Un ātrāka apmaiņa nepastāvīgā režīmā. Pārbaudes nolūkos ātrums ir svarīgāks.
Katrā izdevējā es iestatu jms rekvizītu, ko abonents izmantos JMS atlasītājā. Katram iesniegumam lietotāja parametru testa plāna elementā tiek ģenerēta nejauša vērtība:
Tādā veidā jūs varat būt pārliecināti, ka ir izlasīts pareizais ziņojums.
Iepriekš konfigurēta JMS izdevēja pēdējais “tukšais”:
JMS abonents
Iestatīšana — katrs paraugs. Nu tu saproti.
Taimauts (ms) = 100000 100. Ja pieprasījums neienāk rindā pēc XNUMX sekunžu gaidīšanas, tad radās kļūda.
Apstāties starp paraugiem? - taisnība.
JMS Selector - diezgan ērti lieta. Galīgais JMS abonents:
Kā rīkoties ar kirilicas alfabētu pārsūtītajos ziņojumos. Programmā JMeter pēc noklusējuma pēc korektūras tas tiek parādīts greizi. Lai no tā izvairītos un vienmēr un visur izbaudītu lielo un vareno, jums ir nepieciešams:
Pievienojiet JVM argumentu JMeter “palaidējam”:
-Dfile.encoding=UTF-8
Pievienojiet JSR223 PostProcessor abonentam ar rievotu līniju:
prev.setDataEncoding("UTF-8")
Sūtīt tekstu
Slinkākais variants. Piemērots tikko uzrakstīto testu atkļūdošanai. Vai arī gadījumiem, kad jānosūta kaut kas mazs. Izvēlieties opciju Ziņojuma avots — Textarea un ievietojiet ziņojuma pamattekstu teksta blokā:
Failu pārsūtīšana
Visizplatītākā iespēja. Piemērots lielākajai daļai scenāriju. Izvēlieties opciju Ziņojuma avots — no faila un laukā norādiet ceļu uz ziņojumu Fails — faila nosaukums:
Faila pārsūtīšana uz teksta lauku
Vispusīgākā iespēja. Piemērots lielākajai daļai scenāriju + var izmantot JMS no punkta uz punktu, kur nav otrās sūtīšanas iespējas:
Nododot baitu masīvu
Sarežģītākais variants. Piemērots, lai pārbaudītu nekļūdīgi precīzu pieprasījumu pārsūtīšanu līdz baitam, bez traucējumiem, SMS un traucējumiem. Jūs to nevarēsit izdarīt noklusējuma JMeter. šeit Man noteikti par to stāstīja.
Tāpēc man bija jālejupielādē avoti un modificēt kods JMS abonents.
Aizstāts metodē extractContent(..) rinda:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
Es aprakstīju četrus veidus, kā nosūtīt ziņojumus uz rindām, kurus ikdienā izmantoju praksē. Es ceru, ka šī informācija atvieglos jūsu dzīvi. Turpinājumā plānoju pastāstīt par savu pieredzi, pārbaudot biržu, kur vienā galā ir rinda, bet otrā – datubāze vai failu sistēma.