Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Aloha, Habr! He hope kēia noʻu hoʻopuka mua, kahi aʻu e kamaʻilio ai e pili ana i nā koho no ka waiho ʻana i nā memo ma nā pila me ka hoʻohana ʻana iā JMeter.

Ke hana nei mākou i kahi pahi data no kahi hui federal nui. Nā palapala noi like ʻole, nā hoʻololi ʻana, nā alahele paʻakikī. No ka hoʻāʻo ʻana, pono ʻoe e hoʻouna i nā leka he nui i ka pila. ʻO ka lima ka ʻeha ʻaʻole hiki i kēlā me kēia chiropractor ke mālama.

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Hōʻike

ʻOiai pono wau e hoʻomanawanui i kēia ʻeha i ka wā mua. Ua hoʻomaka me RFHUtil. ʻO ka ikaika, akā paʻakikī a weliweli: ʻAe, ʻike ʻoe iā Rus.

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Pono i kekahi mau hihia, akā e emi mau ana i ka hihia o ka hoʻohana ikaika.
ʻAʻole hiki ke hoʻāʻo maʻalahi me ia.

Me JMeter ua maʻalahi nā mea a pau. Ma hope o ka pae mua o ka haku a me ka hoʻomaʻamaʻa ʻana, ua hoʻomaka ka manaʻolana no ka hoʻāʻo hauʻoli.

Hoʻohana ikaika au i ka JMS Publisher a me JMS Subscriber samplers. ʻAʻole like me JMS Point-to-Point, ʻoi aku ka maʻalahi o kēia hui e hoʻohana. No ka laʻana, me ka mea kākau inoa ma JMS Selector hiki iā ʻoe ke kuhikuhi i kahi loli, akā me Point-to-Point ʻaʻole hiki iā ʻoe (a ʻaʻole maopopo loa kēia ʻano).

Hoʻomākaukau i nā mea hoʻohālike

JMS Mea Pai

  • Hoʻonohonoho - kēlā me kēia Laʻana. Apache Kukulu e hoʻohana i kēia koho inā hōʻike ʻia nā queues/kumuhana ma o nā mea hoʻololi.
  • Hoʻopau (ms) = 120000. Inā ʻaʻole i hāʻule, e nalowale nā ​​noi hoʻāʻo mai ka pila ma hope o 2 mau minuke.
  • E hoʻohana i ke ʻano hoʻouna hoʻomau ʻole? - ʻoiaʻiʻo. IBM 'āponoʻO kēlā ʻano hana hoʻomau e hōʻoia i ka mālama pono ʻana i nā memo i hoʻouna ʻia i ka wā o ka hiki ʻole. A ʻoi aku ka wikiwiki o ka hoʻololi ʻana i ke ʻano hoʻomau ʻole. No ka hoʻāʻo ʻana, ʻoi aku ka nui o ka wikiwiki.

Ma kēlā me kēia mea hoʻopuka hoʻonohonoho au i kahi waiwai jms e hoʻohana ai ka mea kākau inoa ma ka JMS Selector. No kēlā me kēia hoʻouna ʻana, hoʻokumu ʻia kahi waiwai maʻamau i loko o ka mea hoʻolālā hoʻāʻo ʻo User Parameters:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Ma kēia ala hiki iā ʻoe ke hōʻoiaʻiʻo ua heluhelu ʻia ka leka pololei.

ʻO ka "blank" hope loa o kahi mea hoʻopuka JMS i hoʻonohonoho mua ʻia:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

JMS mea kakau

  • Hoʻonohonoho - kēlā me kēia Laʻana. ʻAe, maopopo iā ʻoe.
  • Manawa manawa (ms) = 100000. Inā ʻaʻole i hiki mai ka noi ma ka pila ma hope o 100 kekona o ke kali ʻana, a laila ua hewa kekahi mea.
  • Kū i waena o nā laʻana? - ʻoiaʻiʻo.

JMS Selector - maʻalahi loa mea. Ka mea kākau inoa JMS hope loa:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Pehea e hana ai me ka huapalapala Cyrillic i nā memo i hoʻouna ʻia. I ka JMeter, ma ka maʻamau, ma hope o ka hoʻoponopono ʻana, hōʻike ʻia ke kekee. No ka pale ʻana i kēia a hauʻoli i ka mea nui a me ka mana mau a me nā wahi āpau, pono ʻoe:

  1. Hoʻohui i kahi hoʻopaʻapaʻa JVM i ka "hoʻolaha" JMeter:
    -Dfile.encoding=UTF-8
  2. Hoʻohui i ka JSR223 PostProcessor i ka mea kākau inoa me ka laina groovy:
    prev.setDataEncoding("UTF-8")

Hoʻouna kikokikona

ʻO ke koho palaualelo loa. He kūpono no ka hoʻopau ʻana i nā hoʻokolohua kākau hou. A i ʻole no nā hihia inā pono ʻoe e hoʻouna i kahi mea liʻiliʻi. Koho koho Puna memo - Textarea a kau i ke kino o ka memo ma kahi poloka kikokikona:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Hoʻopili ʻana i ka faila

ʻO ka koho maʻamau. Kūpono no ka hapa nui o nā hiʻohiʻona. Koho koho Puna memo - Mai ka waihona a kuhikuhi i ke ala i ka memo ma ke kahua Kōnae - inoa faila:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Ka hoʻoili ʻana i kahi faila i kahi kahua kikokikona

ʻO ka koho nui loa. He kūpono no ka hapa nui o nā hiʻohiʻona + hiki ke hoʻohana ʻia ma JMS Point-to-Point kahi ʻaʻohe koho hoʻouna lua:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Ke hāʻawi nei i kahi ʻano byte

ʻO ke koho paʻakikī loa. He kūpono no ka nānā ʻana i ka hoʻouna pololei ʻole ʻana o nā noi i lalo i ka byte, me ka ʻole o ka distortion, SMS a me ka perturbation. ʻAʻole hiki iā ʻoe ke hana i kēia ma ka JMeter paʻamau. maanei Ua haʻi ʻia mai iaʻu e pili ana i kēia.

No laila pono wau e hoʻoiho nā kumu a hoʻololi wae helu JMS mea kakau.

Ua pani ʻia ma ke ʻano extractContent(..) laina:

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

ma:

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

a kukulu hou ia JMeter.

ʻO nā mea a pau i koe e hoʻohui i ʻelua o JSR223 Samplers. ʻO ka mea mua ma mua o ka Publisher/Subscriber pair no ka hana ʻana i kahi faila DAT i loaʻa nā bytes random:

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

ʻO ka lua - ma ka hope o ka palapala, holoi i ka faila:

import java.io.File;

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

A mai poina e hoʻohui i ke ala i ka faila ma Publisher:

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

A he nānā pū kekahi ma JSR223 Assertion for Subscriber - e hoʻohālikelike i nā bytes kumu me nā mea i hiki mai i ka laina o ka mea loaʻa:

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

hopena

Ua wehewehe au i ʻehā mau ala e hoʻouna ai i nā leka i nā queues, aʻu e hoʻohana ai i kēlā me kēia lā i ka hana. Manaʻo wau e maʻalahi kēia ʻike i kou ola. I ka hoʻomau ʻana, hoʻolālā wau e kamaʻilio e pili ana i koʻu ʻike no ka hoʻāʻo ʻana i kahi hoʻololi kahi i loaʻa kahi queue ma kekahi ʻaoʻao a me kahi waihona a i ʻole ʻōnaehana faila ma kekahi.

E mālama i kou manawa. A mahalo no kou noonoo.

Queues a me JMeter: kaʻana like me ka Publisher a me ka mea kākau inoa

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka