Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Moni, Habr! Ichi ndi chotsatira changa chofalitsidwa cham'mbuyo, momwe ndilankhula za zosankha zoyika mauthenga pamizere pogwiritsa ntchito JMeter.

Tikupanga basi ya data kukampani yayikulu. Mawonekedwe osiyanasiyana ofunsira, masinthidwe, njira zovuta. Kuti muyese, muyenera kutumiza mauthenga ambiri pamzere. Pamanja ndi ululu womwe si chiropractor aliyense angathe kuthana nawo.

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Mau oyamba

Ngakhale kuti poyamba ndinayenera kupirira ululu umenewu. Zonse zidayamba ndi RFHUtil. Zamphamvu, koma zovuta komanso zowopsa: Mukudziwa Rus.

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Zofunikira nthawi zina, koma zimatsika pang'onopang'ono ngati zikugwiritsidwa ntchito.
Kuyesa kosavuta sikutheka ndi izo.

Ndi JMeter zonse zakhala zosavuta. Pambuyo pa gawo loyamba lodziwa bwino ndikuzolowera, chiyembekezo chidayamba kutuluka kuti chiyesedwe chosangalatsa.

Ndimagwiritsa ntchito mwachangu JMS Publisher ndi JMS Subscriber samplers. Mosiyana ndi JMS Point-to-Point, awiriwa adawoneka kuti ndi osavuta kugwiritsa ntchito. Mwachitsanzo, ndi Wolembetsa mu JMS Selector mutha kufotokoza zosinthika, koma ndi Point-to-Point simungathe (kapena njira iyi sizowonekeratu).

Kukonzekera zitsanzo

Wofalitsa wa JMS

  • Kukhazikitsa - Chitsanzo chilichonse. Apache amalimbikitsa gwiritsani ntchito izi ngati mizere/mitu yafotokozedwa mosiyanasiyana.
  • Kutha (ms) = 120000. Ngati kulephera, zopempha zoyesa zidzatha pamzere pambuyo pa maminiti a 2.
  • Gwiritsani ntchito njira yotumizira mosalekeza? - zoona. IBM amavomerezakulimbikira kumeneku kumatsimikizira kusungidwa kodalirika kwa mauthenga opatsirana pakagwa mwadzidzidzi. Ndipo kusinthanitsa mwachangu mumayendedwe osakhazikika. Zolinga zoyesa, liwiro ndilofunika kwambiri.

Mu Wofalitsa aliyense ndimayika katundu wa jms omwe Wolembetsa adzagwiritsa ntchito mu JMS Selector. Pakutumiza kulikonse, mtengo wandalama umapangidwa mu User Parameters test plan element:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Mwanjira imeneyi mutha kutsimikiza kuti uthenga wolondola wawerengedwa.

"Chopanda kanthu" chomaliza cha wosindikiza wa JMS wokonzedweratu:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Wolembetsa wa JMS

  • Kukhazikitsa - Chitsanzo chilichonse. Chabwino, inu mukumvetsa.
  • Timeout (ms) = 100000. Ngati pempho silifika pamzere pambuyo pa masekondi 100 akudikirira, ndiye kuti chinachake chalakwika.
  • Imani pakati pa zitsanzo? - zoona.

JMS Selector - yabwino kwambiri chinthu. Wolembetsa Womaliza wa JMS:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Momwe mungathanirane ndi zilembo za Cyrillic mu mauthenga otumizidwa. Mu JMeter, mwachisawawa, mutatha kuwerengera, imawonetsedwa molakwika. Kuti mupewe izi ndikusangalala ndi zazikulu komanso zamphamvu nthawi zonse komanso kulikonse, muyenera:

  1. Onjezani mkangano wa JVM ku "launcher" ya JMeter:
    -Dfile.encoding=UTF-8
  2. Onjezani JSR223 PostProcessor kwa Wolembetsa wokhala ndi mzere wa groovy:
    prev.setDataEncoding("UTF-8")

Tumizani mawu

Njira yaulesi kwambiri. Oyenera kuthetsa mayeso olembedwa kumene. Kapena milandu pamene muyenera kutumiza osachepera chinachake chaching'ono. Sankhani njira Gwero la mauthenga - Textarea ndikuyika thupi la uthengawo mu block block:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Kusamutsa fayilo

Njira yodziwika kwambiri. Zoyenera zochitika zambiri. Sankhani njira Gwero la uthenga - Kuchokera pafayilo ndikuwonetsa njira yopita ku uthenga womwe uli m'munda Fayilo - Dzina lafayilo:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Kusamutsa fayilo ku gawo lazolemba

Njira yosunthika kwambiri. Zoyenera zochitika zambiri + zitha kugwiritsidwa ntchito mu JMS Point-to-Point pomwe palibe njira yachiwiri yotumizira:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Kudutsa gulu la byte

Njira yovuta kwambiri. Ndikoyenera kuyang'ana kutumizidwa kolondola kwa zopempha mpaka ku byte, popanda kupotoza, ma SMS ndi kusokoneza. Simungathe kuchita izi mu JMeter yokhazikika. apa Ndinauzidwa ndithu za izi.

Chifukwa chake ndidayenera kutsitsa magwero ndi kusintha code Wolembetsa wa JMS.

M'malo mwa njira extractContent(..) mzere:

buffer.append(bytesMessage.getBodyLength() + " bytes received in BytesMessage");

pa:

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);
}

ndikumanganso JMeter.

Zomwe zatsala ndikuwonjezera Ma Samplers angapo a JSR223. Yoyamba ndi pamaso pa Wofalitsa / Wolembetsa awiriawiri kulenga DAT wapamwamba munali mabayiti mwachisawawa:

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");
        }

Yachiwiri - kumapeto kwa script, imachotsa fayilo:

import java.io.File;

File RESULT_FILE = new File(vars.get("PATH_TO_BYTES"));
RESULT_FILE.delete();

Ndipo musaiwale kuwonjezera njira ya fayilo mu Publisher:

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Komanso cheke mu JSR223 Assertion for Subscriber - yerekezerani ma byte gwero ndi omwe amafika pamzere wa wolandira:

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;
	}

Pomaliza

Ndinalongosola njira zinayi zotumizira mauthenga ku mizere, yomwe ndimagwiritsa ntchito tsiku lililonse pochita. Ndikukhulupirira kuti chidziwitsochi chimapangitsa moyo wanu kukhala wosavuta. Popitiriza, ndikukonzekera kuyankhula za zomwe ndakumana nazo poyesa kusinthanitsa komwe kuli mzere kumbali imodzi ndi deta kapena mafayilo amtundu wina.

Sungani nthawi yanu. Ndipo zikomo chifukwa cha chidwi chanu.

Mizere ndi JMeter: kugawana ndi Wofalitsa ndi Wolembetsa

Source: www.habr.com

Kuwonjezera ndemanga