Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Habari, Habr! Huu ni mwendelezo wangu uchapishaji uliopita, ambayo nitazungumza juu ya chaguzi za kuweka ujumbe kwenye foleni kwa kutumia JMeter.

Tunatengeneza basi ya data kwa kampuni kubwa ya shirikisho. Miundo mbalimbali ya ombi, mabadiliko, uelekezaji tata. Kwa majaribio, unahitaji kutuma ujumbe mwingi kwenye foleni. Manually ni maumivu ambayo si kila tabibu anaweza kushughulikia.

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Utangulizi

Ingawa nililazimika kuvumilia maumivu haya mwanzoni. Yote ilianza na RFHUtil. Nguvu, lakini mbaya na inatisha: Kweli, unajua Rus.

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Ni muhimu katika baadhi ya matukio, lakini inapungua kwa kasi katika kesi ya matumizi amilifu.
Upimaji wa urahisi hauwezekani nayo.

Kwa JMeter kila kitu kimekuwa rahisi. Baada ya hatua ya kwanza ya kuimarika na kuizoea, matumaini yalianza kupambazuka kwa majaribio ya furaha.

Ninatumia kikamilifu violezo vya Wachapishaji wa JMS na Wafuatiliaji wa JMS. Tofauti na JMS Point-to-Point, jozi hii ilionekana kuwa rahisi zaidi kutumia. Kwa mfano, na Msajili katika Kiteuzi cha JMS unaweza kutaja tofauti, lakini kwa Point-to-Point huwezi (au njia hii sio dhahiri sana).

Kuandaa sampuli

Mchapishaji wa JMS

  • Kuweka - Kila Sampuli. Apache inapendekeza tumia chaguo hili ikiwa foleni/mada zimebainishwa kupitia vigeu.
  • Muda wa matumizi (ms) = 120000. Iwapo itashindikana, maombi ya mtihani yatatoweka kwenye foleni baada ya dakika 2.
  • Je, ungependa kutumia hali ya uwasilishaji isiyoendelea? - kweli. IBM inakubalihali hiyo inayoendelea inahakikisha uhifadhi wa kuaminika wa ujumbe unaotumwa katika tukio la kushindwa kwa ghafla. Na kubadilishana kwa kasi katika hali isiyoendelea. Kwa madhumuni ya kupima, kasi ni muhimu zaidi.

Katika kila Mchapishaji niliweka mali ya jms ambayo Msajili atatumia kwenye Kiteuzi cha JMS. Kwa kila wasilisho, thamani ya nasibu inatolewa katika kipengele cha mpango wa majaribio ya Vigezo vya Mtumiaji:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Kwa njia hii unaweza kuwa na uhakika kwamba ujumbe sahihi unasomwa.

"tupu" ya mwisho ya Mchapishaji wa JMS aliyesanidiwa mapema:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Msajili wa JMS

  • Kuweka - Kila Sampuli. Naam, unaelewa.
  • Muda umeisha (ms) = 100000. Ikiwa ombi halitafika kwenye foleni baada ya sekunde 100 za kusubiri, basi hitilafu fulani imetokea.
  • Ungependa kuacha kati ya sampuli? - kweli.

Kiteuzi cha JMS - rahisi kabisa jambo. Msajili wa Mwisho wa JMS:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Jinsi ya kushughulika na alfabeti ya Cyrilli katika ujumbe unaopitishwa. Katika JMeter, kwa chaguo-msingi, baada ya kusahihisha, inaonyeshwa kwa upotovu. Ili kuepuka hili na kufurahia makubwa na yenye nguvu daima na kila mahali, unahitaji:

  1. Ongeza hoja ya JVM kwa "kizindua" cha JMeter:
    -Dfile.encoding=UTF-8
  2. Ongeza JSR223 PostProcessor kwa Msajili na mstari wa groovy:
    prev.setDataEncoding("UTF-8")

Tuma maandishi

Chaguo lazi zaidi. Inafaa kwa utatuzi wa majaribio yaliyoandikwa hivi karibuni. Au kwa kesi wakati unahitaji kutuma angalau kitu kidogo. Chagua chaguo Chanzo cha ujumbe - Textarea na weka mwili wa ujumbe kwenye kizuizi cha maandishi:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Fungua uhamisho

Chaguo la kawaida zaidi. Inafaa kwa matukio mengi. Chagua chaguo Chanzo cha ujumbe - Kutoka kwa faili na uonyeshe njia ya ujumbe kwenye uwanja Faili - Jina la Faili:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Kuhamisha faili kwenye sehemu ya maandishi

Chaguo linalofaa zaidi. Inafaa kwa hali nyingi + inaweza kutumika katika JMS Point-to-Point ambapo hakuna chaguo la pili la kutuma:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Kupitisha safu ya baiti

Chaguo ngumu zaidi. Inafaa kwa kuangalia utumaji sahihi wa maombi hadi kwa kawaida, bila upotoshaji, SMS na usumbufu. Hutaweza kufanya hivi katika JMeter chaguo-msingi. hapa Hakika niliambiwa kuhusu hili.

Kwa hivyo nililazimika kupakua vyanzo na kurekebisha code Msajili wa JMS.

Imebadilishwa katika mbinu extractContent(..) mstari:

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

juu ya:

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

na kujenga upya JMeter.

Kilichobaki ni kuongeza Sampuli kadhaa za JSR223. Ya kwanza ni kabla ya jozi ya Mchapishaji/Mteja kuunda faili ya DAT iliyo na baiti nasibu:

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

Ya pili - mwishoni mwa hati, hufuta faili:

import java.io.File;

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

Na usisahau kuongeza njia ya faili katika Mchapishaji:

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Na pia hundi katika Madai ya JSR223 kwa Msajili - linganisha kaiti chanzo na zile zinazofika kwenye foleni ya mpokeaji:

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

Hitimisho

Nilielezea njia nne za kutuma ujumbe kwenye foleni, ambazo mimi hutumia kila siku katika mazoezi. Natumai habari hii imerahisisha maisha yako. Kwa kuendelea, ninapanga kuzungumza juu ya uzoefu wangu wa kujaribu kubadilishana ambapo kuna foleni upande mmoja na hifadhidata au mfumo wa faili kwa upande mwingine.

Okoa wakati wako. Na asante kwa umakini wako.

Foleni na JMeter: kushiriki na Mchapishaji na Msajili

Chanzo: mapenzi.com

Kuongeza maoni