Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Salama, Habr! Tohin'ny ahy ity fanontana teo aloha, izay hiresaka momba ny safidy hametrahana hafatra amin'ny filaharana amin'ny fampiasana JMeter.

Manao bus data ho an'ny orinasa federaly lehibe izahay. Fomba fangatahana isan-karazany, fanovana, lalana be pitsiny. Mba hanaovana fitiliana dia mila mandefa hafatra be dia be amin'ny filaharana ianao. Amin'ny tanana dia fanaintainana izay tsy zakan'ny chiropractor rehetra.

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

fampidirana

Na dia tsy maintsy niaritra izany fanaintainana izany aza aho tamin’ny voalohany. Nanomboka tamin'ny RFHUtil izany rehetra izany. Mahery, nefa manjavozavo sy mampatahotra: Eny, fantatrao i Rus.

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Tena ilaina amin'ny toe-javatra sasany, fa mihena hatrany amin'ny fampiasana mavitrika.
Ny fitsapana mora dia tsy azo atao miaraka aminy.

Miaraka amin'ny JMeter dia lasa mora kokoa ny zava-drehetra. Taorian'ny dingana voalohany amin'ny fifehezana sy zatra izany, dia nanomboka nipoitra ny fanantenana ho an'ny fitsapana mahafaly.

Mazoto mampiasa JMS Publisher sy JMS Subscriber samplers aho. Tsy toy ny JMS Point-to-Point, ity mpivady ity dia toa azo ampiasaina kokoa. Ohatra, miaraka amin'ny Subscriber ao amin'ny JMS Selector dia azonao atao ny mamaritra fari-piainana, fa amin'ny Point-to-Point dia tsy azonao atao (na tsy dia mazava loatra ity fomba ity).

Manomana samplers

Mpanonta JMS

  • Setup - Santionany tsirairay. Apache Manoro hevitra ampiasao ity safidy ity raha toa ka voafaritra amin'ny alalan'ny variables ny filaharana/lohahevitra.
  • Lany daty (ms) = 120000. Raha sendra tsy fahombiazana dia hanjavona eo amin'ny filaharana ny fangatahana fitsapana rehefa afaka 2 minitra.
  • Mampiasa fomba fanaterana tsy maharitra? - marina. IBM fanambaranaio fomba maharitra io dia miantoka ny fitehirizana azo itokisana ny hafatra alefa raha sendra ny tsy fahombiazana tampoka. Ary ny fifanakalozana haingana kokoa amin'ny fomba tsy maharitra. Ho an'ny tanjona fitsapana dia zava-dehibe kokoa ny hafainganam-pandeha.

Ao amin'ny Mpanonta tsirairay aho dia mametraka fananana jms izay hampiasain'ny Mpanoratra ao amin'ny JMS Selector. Ho an'ny fandefasana tsirairay dia misy sanda kisendrasendra avoaka ao amin'ny singa drafitra fitsapana Parameter mpampiasa:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Amin'izany fomba izany dia azonao antoka fa voavaky ny hafatra marina.

Ny "blank" farany amin'ny Mpanonta JMS efa namboarina mialoha:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Mpanoratra JMS

  • Setup - Santionany tsirairay. Eny, azonao.
  • Timeout (ms) = 100000. Raha tsy tonga amin'ny filaharana ny fangatahana rehefa avy niandry 100 segondra, dia nisy zavatra tsy nety.
  • Atsaharo eo anelanelan'ny santionany? - marina.

JMS Selector - tena mety zavatra. Mpanoratra farany JMS:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Ahoana ny fomba hiatrehana ny abidy cyrillic amin'ny hafatra alefa. Ao amin'ny JMeter, amin'ny alΓ lan'ny default, aorian'ny fanitsiana, dia aseho amin'ny fomba miolakolaka. Mba hialana amin'izany sy hankafizanao ilay lehibe sy mahery mandrakariva ary na aiza na aiza, dia mila:

  1. Manampia tohan-kevitra JVM amin'ny "mpamoaka" JMeter:
    -Dfile.encoding=UTF-8
  2. Ampio ny JSR223 PostProcessor amin'ny Mpanoratra miaraka amin'ny tsipika groovy:
    prev.setDataEncoding("UTF-8")

Alefaso lahatsoratra

Ny safidy kamo indrindra. Mety amin'ny debugging fitsapana vao nosoratana. Na ho an'ny tranga izay mila mandefa zavatra kely farafaharatsiny. Safidio ny safidy Loharanon'ny hafatra - Textarea ary apetraho ao anaty andian-tsoratra ny vatan'ny hafatra:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Famindrana rakitra

Ny safidy mahazatra indrindra. Mety amin'ny ankamaroan'ny toe-javatra. Safidio ny safidy Loharanon'ny hafatra - Avy amin'ny rakitra ary manondro ny lalana mankany amin'ny hafatra ao an-tsaha File - Anaran-drakitra:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Mamindra rakitra amin'ny saha lahatsoratra

Ny safidy maro samihafa. Mety amin'ny ankamaroan'ny toe-javatra + azo ampiasaina amin'ny JMS Point-to-Point izay tsy misy safidy fandefasana faharoa:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Mandalo array byte

Ny safidy sarotra indrindra. Mety amin'ny fanamarinana ny fifindran'ny fangatahana araka ny marina hatrany amin'ny byte, tsy misy fanodikodinana, SMS ary fikorontanana. Tsy ho vitanao izany amin'ny JMeter default. eto Tena nolazaina tamiko izany.

Ka voatery nisintona aho loharanom-baovao ary manova amin'ny Mpanoratra JMS.

Hiverina any amin'ny methode extractContent(..) andalana:

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

on:

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

ary nanorina JMeter.

Ny hany sisa tavela dia ny manampy JSR223 Samplers roa. Ny voalohany dia alohan'ny mpivady Mpanonta/Subscriber hamorona rakitra DAT misy bytes kisendrasendra:

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

Ny faharoa - amin'ny faran'ny script, mamafa ny rakitra:

import java.io.File;

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

Ary aza adino ny manampy ny lalana mankany amin'ny rakitra ao amin'ny Publisher:

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Ary koa ny fanamarinana ao amin'ny JSR223 Assertion for Subscriber - ampitahao ny source bytes amin'ireo izay tonga ao amin'ny filahatry ny mpandray:

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

famaranana

Namaritra fomba efatra aho handefasana hafatra amin'ny filaharana, izay ampiasaiko isan'andro amin'ny fampiharana. Manantena aho fa hanamora ny fiainanao ity fampahalalana ity. Ho tohin'izany dia mikasa ny hiresaka momba ny traikefako amin'ny fanandramana fifanakalozana izay misy filaharana amin'ny farany aho ary ny rafitra tahiry na ny rakitra amin'ny ilany iray.

Tehirizo ny fotoananao. Ary misaotra amin'ny fiheveranao.

Filaharana sy JMeter: mizara amin'ny Mpanonta sy Mpanoratra

Source: www.habr.com

Add a comment