کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

سلام، حبر! دا زما یو سلسله ده پخوانۍ خپرونه، په کوم کې چې زه به د JMeter په کارولو سره په کتارونو کې د پیغامونو ځای په ځای کولو اختیارونو په اړه وغږیږم.

موږ د لوی فدرالي شرکت لپاره د ډیټا بس جوړوو. د غوښتنې مختلف شکلونه ، بدلونونه ، پیچلي روټینګ. د ازموینې لپاره، تاسو اړتیا لرئ چې قطار ته ډیری پیغامونه واستوئ. په لاسي ډول یو درد دی چې هر چایروپریکټر نشي کولی اداره کړي.

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

پېژندنه

که څه هم زه باید په لومړي سر کې د دې درد سره مخ شوم. دا ټول د RFHUtil سره پیل شوي. ځواکمن، مګر عجیب او ډارونکی: ښه، تاسو روس پیژنئ.

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

په ځینو مواردو کې اړین دی، مګر د فعال استعمال په صورت کې په ثابت ډول کمیږي.
د دې سره اسانه ازموینه ناممکن ده.

د JMeter سره هرڅه اسانه شوي. د ماسټرۍ له لومړۍ مرحلې وروسته او دې ته عادت شو ، امید د خوښۍ ازموینې لپاره پیل شو.

زه په فعاله توګه د JMS خپرونکي او JMS پیرودونکي نمونې کاروم. د JMS Point-to-Point برعکس، دا جوړه د کارولو لپاره خورا اسانه ښکاري. د مثال په توګه، د JMS انتخاب کونکي کې د پیرودونکي سره تاسو کولی شئ یو متغیر مشخص کړئ، مګر د پوائنټ-ټو-پوائنټ سره تاسو نشئ کولی (یا دا طریقه ډیره څرګنده نه ده).

د نمونو چمتو کول

د JMS خپرونکی

  • ترتیب - هر نمونه. اپاچی وړاندیز کوي دا اختیار وکاروئ که چیرې قطار/موضوعات د متغیرونو له لارې مشخص شوي وي.
  • ختمېدل (ms) = 120000. د ناکامۍ په صورت کې، د ازموینې غوښتنې به د 2 دقیقو وروسته له کتار څخه ورک شي.
  • د غیر دوامداره تحویلي حالت وکاروئ؟ - رښتیا. IBM منظورولدا دوامداره حالت د ناڅاپه ناکامۍ په صورت کې د لیږد شوي پیغامونو د اعتبار وړ ساتنه تضمینوي. او په غیر دوامداره حالت کې چټک تبادله. د ازموینې موخو لپاره، سرعت خورا مهم دی.

په هر خپرونکي کې ما د jms ملکیت ترتیب کړی چې پیرودونکي به د JMS انتخاب کونکي کې وکاروي. د هرې سپارنې لپاره، یو تصادفي ارزښت د کارن پیرامیټونو ازموینې پلان عنصر کې رامینځته کیږي:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

پدې توګه تاسو ډاډه اوسئ چې سم پیغام لوستل شوی.

د مخکې ترتیب شوي JMS خپرونکي وروستی "خالي":

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

د JMS پیرودونکي

  • ترتیب - هر نمونه. ښه، تاسو پوهیږئ.
  • د وخت پای (ms) = 100000. که غوښتنه د 100 ثانیو انتظار وروسته په کتار کې نه راځي، نو یو څه غلط شوی.
  • د نمونو تر منځ ودروئ؟ - رښتیا.

د JMS انتخاب کونکی - خورا مناسب شی. د JMS وروستی پیرودونکي:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

په لیږدول شوي پیغامونو کې د سیریلیک الفبا سره څنګه معامله وکړئ. په JMeter کې، په ډیفالټ ډول، د پروف ریډینګ وروسته، دا په کره توګه ښودل کیږي. د دې څخه د مخنیوي لپاره او تل او هرچیرې د لوی او ځواکمن څخه خوند واخلئ، تاسو اړتیا لرئ:

  1. JMeter "لانچر" ته د JVM دلیل اضافه کړئ:
    -Dfile.encoding=UTF-8
  2. د گرووی لاین سره پیرودونکي ته JSR223 پوسټ پروسیسر اضافه کړئ:
    prev.setDataEncoding("UTF-8")

متن ولېږئ

ترټولو سست انتخاب. د تازه لیکل شوي ازموینو ډیبګ کولو لپاره مناسب. یا د قضیو لپاره کله چې تاسو اړتیا لرئ لږترلږه یو څه کوچنی واستوئ. اختیار غوره کړئ د پیغام سرچینه - Textarea او د پیغام بدن په متن بلاک کې ځای په ځای کړئ:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

د فایل لیږد

تر ټولو عام انتخاب. د ډیری سناریوګانو لپاره مناسب. اختیار غوره کړئ د پیغام سرچینه - د فایل څخه او په ساحه کې پیغام ته لاره په ګوته کړئ دوتنه - د دوتنې نوم:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

د متن ساحې ته د فایل لیږدول

تر ټولو پراخه انتخاب. د ډیری سناریوګانو لپاره مناسب + په JMS پوائنټ-ټو-پوائنټ کې کارول کیدی شي چیرې چې د لیږلو دوهم اختیار شتون نلري:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

د بایټ سرې تیریدل

تر ټولو ستونزمن انتخاب. بایټ ته د غوښتنو دقیق لیږد چیک کولو لپاره مناسب ، پرته له تحریف ، SMS او ګډوډي. تاسو به نشئ کولی دا په ډیفالټ JMeter کې ترسره کړئ. دلته ما په دې اړه یقینا وویل.

نو زه باید ډاونلوډ کړم سرچینې او تعدیل کوډ د JMS پیرودونکي.

په طریقه بدل شوی extractContent(..) کرښه:

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

په:

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

او JMeter بیا جوړ کړ.

ټول هغه څه چې پاتې دي د JSR223 نمونې یو څو اضافه کول دي. لومړی د خپرونکي / پیرودونکي جوړه څخه مخکې دی چې د DAT فایل رامینځته کړي چې تصادفي بایټونه لري:

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

دوهم - د سکریپټ په پای کې، فایل حذف کوي:

import java.io.File;

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

او په خپرونکي کې فایل ته لاره اضافه کول مه هیروئ:

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

او همدارنګه د پیرودونکي لپاره د JSR223 ادعا کې چیک - د سرچینې بایټس د هغه چا سره پرتله کړئ چې د ترلاسه کونکي کتار کې راځي:

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

پایلې

ما قطارونو ته د پیغامونو لیږلو څلور لارې تشریح کړې، کوم چې زه هره ورځ په عمل کې کاروم. زه امید لرم چې دا معلومات ستاسو ژوند اسانه کړي. په دوام کې، زه پلان لرم چې د تبادلې ازموینې زما د تجربې په اړه وغږیږم چیرې چې په یوه پای کې قطار شتون لري او په بل کې ډیټابیس یا فایل سیسټم.

خپل وخت خوندي کړئ. او ستاسو د پاملرنې څخه مننه.

کتارونه او JMeter: د خپرونکي او پیرودونکي سره شریکول

سرچینه: www.habr.com

Add a comment