Sawubona, Habr! Lokhu kulandelana kwami
Senza ibhasi ledatha lenkampani enkulu yombuso. Amafomethi ezicelo ahlukahlukene, ukuguqulwa, umzila oyinkimbinkimbi. Ukuze uhlole, udinga ukuthumela imilayezo eminingi kulayini. Mathupha izinhlungu akuwona wonke ama-chiropractor angabhekana nazo.
Isingeniso
Nakuba kwadingeka ngibekezelele lobu buhlungu ekuqaleni. Konke kwaqala nge-RFHUtil. Inamandla, kodwa iyaxaka futhi iyesabeka: Uyazi, uRus.
Iyadingeka kwezinye izimo, kodwa yehla kancane uma isetshenziswa.
Ukuhlola okulula akunakwenzeka ngakho.
Nge-JMeter konke sekulula. Ngemuva kwesigaba sokuqala sokuzijwayeza nokujwayela, ithemba laqala ukuvela ukuze kuhlolwe injabulo.
Ngisebenzisa ngokugcwele amasampula Omshicileli we-JMS kanye ne-JMS Subscriber. Ngokungafani ne-JMS Point-to-Point, lokhu kubhangqwana kubonakale kulula kakhulu ukukusebenzisa. Isibonelo, ngoBhalisi kusikhethi se-JMS ungacacisa okuguquguqukayo, kodwa nge-Point-to-Point awukwazi (noma le ndlela ayibonakali kahle).
Ilungiselela amasampula
Umshicileli we-JMS
- Isethaphu - Isampula Ngayinye. I-Apache
kuncoma sebenzisa le nketho uma ulayini/izihloko zicaciswe ngezinto eziguquguqukayo. - Ukuphelelwa yisikhathi (ms) = 120000. Esimeni sokuhluleka, izicelo zokuhlolwa zizonyamalala kulayini ngemva kwemizuzu emi-2.
- Sebenzisa imodi yokulethwa engapheli? - iqiniso. IBM
iyavuma leyo ndlela eqhubekayo iqinisekisa ukulondolozwa okuthembekile kwemilayezo edlulisiwe uma kwenzeka ukwehluleka kungazelelwe. Futhi ukushintshanisa okusheshayo kumodi engaqhubeki. Ngezinjongo zokuhlola, isivinini sibaluleke kakhulu.
Kumshicileli ngamunye ngibeka impahla ye-jms ezosetshenziswa Obhalisile Kusikhethi se-JMS. Kokuthunyelwa ngakunye, kukhiqizwa inani elingahleliwe kusici sohlelo lokuhlola Amapharamitha Womsebenzisi:
Ngale ndlela ungaqiniseka ukuthi umlayezo olungile ufundiwe.
“Isikhala” sokugcina somshicileli olungiselelwe kusengaphambili we-JMS:
Obhalisile we-JMS
- Isethaphu - Isampula Ngayinye. Awu, uyaqonda.
- Isikhathi sokuvala (ms) = 100000. Uma isicelo singafiki kulayini ngemva kwemizuzwana eyi-100 yokulinda, khona-ke kukhona okungahambanga kahle.
- Yeka phakathi kwamasampuli? - iqiniso.
I-JMS Selector - elula kakhulu
Ungabhekana kanjani nezinhlamvu zesiCyrillic emilayezweni edluliswayo. Ku-JMeter, ngokuzenzakalelayo, ngemva kokuhlola amaphutha, ikhonjiswa ngokugwegwile. Ukuze ugweme lokhu futhi ujabulele ezinkulu nezinamandla njalo futhi yonke indawo, udinga:
- Engeza i-agumenti ye-JVM “kumqalisi” we-JMeter:
-Dfile.encoding=UTF-8
- Engeza i-JSR223 PostProcessor kuMbhalisi onomugqa we-groovy:
prev.setDataEncoding("UTF-8")
Thumela umbhalo
Inketho yokuvilapha. Ifanele ukulungisa amaphutha ezivivinyweni ezisanda kubhalwa. Noma ezimweni lapho udinga ukuthumela okungenani into encane. Khetha inketho Umthombo womlayezo - Textarea bese ubeka umzimba womlayezo ebhulokhini lombhalo:
Ukudlulisa ifayela
Inketho evame kakhulu. Ifanele izimo eziningi. Khetha inketho Umthombo womlayezo - Kusuka kufayela bese ukhombisa indlela eya kumyalezo osesigangeni Ifayela - Igama lefayela:
Idlulisela ifayela endaweni yombhalo
Inketho eguquguqukayo kakhulu. Ifanele izimo eziningi + ingasetshenziswa ku-JMS Point-to-Point lapho ingekho inketho yesibili yokuthumela:
Idlula i-byte array
Inketho enzima kakhulu. Ifanele ukubheka ukudluliswa kwezicelo okunembe ngokungeyikho, ngaphandle kokuhlanekezela, i-SMS kanye nokuphazamiseka. Ngeke ukwazi ukwenza lokhu ku-JMeter ezenzakalelayo.
Ngakho kwadingeka ngilande
Kufakwe esikhundleni endleleni extractContent(..)
umugqa:
buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");
ku:
byte[] bytes = new byte[(int) bytesMessage.getBodyLength()];
bytesMessage.readBytes(bytes);
try {
buffer.append(new String(bytes, "UTF-8"));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
futhi yakha kabusha i-JMeter.
Okusele nje ukwengeza amasampula ambalwa e-JSR223. Esokuqala singaphambi kokuba Umshicileli/Obhalisile udale ifayela le-DAT eliqukethe amabhayithi angahleliwe:
import org.apache.commons.lang3.RandomUtils;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
vars.put("PATH_TO_BYTES", "C:temprandomBytes.dat");
File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
byte[] arr = RandomUtils.nextBytes((int)(Math.random()*10000));
try {
FileOutputStream fos = new FileOutputStream(RESULT_FILE);
fos.write(arr);
fos.close();
} catch (IOException e) {
System.out.println("file not found");
}
Eyesibili, ekugcineni kweskripthi, isusa ifayela:
import java.io.File;
File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
RESULT_FILE.delete();
Futhi ungakhohlwa ukwengeza indlela eya kufayela Kumshicileli:
Futhi isheke kokuthi JSR223 Assertion for Subscriber - qhathanisa amabhayithi omthombo nalawo afika kulayini womamukeli:
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
Path path = Paths.get(vars.get("PATH_TO_BYTES"), new String[0]);
byte[] originalArray = Files.readAllBytes(path);
byte[] changedArray = ctx.getPreviousResult().getResponseData();
System.out.println(changedArray.length);
if (Arrays.equals(originalArray, changedArray))
{
SampleResult.setResponseMessage("OK");
} else {
SampleResult.setSuccessful(false);
SampleResult.setResponseMessage("Comparison failed");
SampleResult.setResponseData("Bytes have changed","UTF-8");
IsSuccess=false;
}
isiphetho
Ngichaze izindlela ezine zokuthumela imilayezo kulayini, engizisebenzisa nsuku zonke ekusebenzeni. Ngethemba ukuthi lolu lwazi lwenza impilo yakho ibe lula. Ngokuqhubeka, ngihlela ukukhuluma ngolwazi lwami lokuhlola ukushintshana lapho kukhona ulayini ekugcineni kanye nesizindalwazi noma uhlelo lwefayela ngakolunye.
Yonga isikhathi sakho. Futhi ngiyabonga ngokunaka kwakho.
Source: www.habr.com