ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

ሰላም ሀብር! ይህ የእኔ ቀጣይ ነው። ያለፈው እትምJMeterን በመጠቀም መልእክቶችን ወረፋ ስለማስቀመጥ አማራጮች እናገራለሁ ።

ለትልቅ የፌዴራል ኩባንያ ዳታ አውቶቡስ እየሰራን ነው። የተለያዩ የጥያቄ ቅርጸቶች፣ ትራንስፎርሜሽን፣ ውስብስብ ማዘዋወር። ለሙከራ, ወደ ወረፋው ብዙ መልዕክቶችን መላክ ያስፈልግዎታል. በእጅ እያንዳንዱ ኪሮፕራክተር ሊቋቋመው የማይችል ህመም ነው.

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

መግቢያ

ምንም እንኳን መጀመሪያ ላይ ይህን ህመም መታገስ ነበረብኝ. ሁሉም የተጀመረው በ RFHUtil ነው። ኃይለኛ, ግን አሰቃቂ እና አስፈሪ: ደህና, ሩስን ታውቃለህ.

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

በአንዳንድ ሁኔታዎች አስፈላጊ ነው, ነገር ግን በንቃት ጥቅም ላይ ከዋለ በቋሚነት እየቀነሰ ይሄዳል.
ከእሱ ጋር ምቹ ሙከራ ማድረግ አይቻልም.

በ JMeter ሁሉም ነገር ቀላል ሆኗል. ከመጀመሪያው የመማር እና የመላመድ ደረጃ በኋላ፣ ለደስታ ፈተና ተስፋ መውጣት ጀመረ።

የJMS አታሚ እና የጄኤምኤስ ተመዝጋቢ ናሙናዎችን በንቃት እጠቀማለሁ። ከJMS ነጥብ-ወደ-ነጥብ በተለየ፣ እነዚህ ጥንድ ለመጠቀም የበለጠ አመቺ ይመስላል። ለምሳሌ፣ በJMS Selector ውስጥ ካለው ተመዝጋቢ ጋር ተለዋዋጭ መግለጽ ይችላሉ፣ ነገር ግን ከነጥብ-ወደ ነጥብ ጋር ማድረግ አይችሉም (ወይም ይህ ዘዴ በጣም ግልፅ አይደለም)።

ናሙናዎችን በማዘጋጀት ላይ

JMS አታሚ

  • ማዋቀር - እያንዳንዱ ናሙና. Apache ይመክራል ወረፋዎች/ርእሶች በተለዋዋጮች ከተገለጹ ይህንን አማራጭ ይጠቀሙ።
  • የማለቂያ ጊዜ (ms) = 120000. ካልተሳካ, የፈተና ጥያቄዎች ከ 2 ደቂቃዎች በኋላ ከወረፋው ይጠፋሉ.
  • የማያቋርጥ የማድረሻ ሁነታን ይጠቀሙ? - እውነት። አይቢኤም ማፅደቅያ የማያቋርጥ ሁነታ ድንገተኛ ውድቀት በሚከሰትበት ጊዜ የሚተላለፉ መልዕክቶችን አስተማማኝ ጥበቃ ያደርጋል። እና ፈጣን ልውውጥ በማይቋረጥ ሁነታ. ለሙከራ ዓላማዎች, ፍጥነት የበለጠ አስፈላጊ ነው.

በእያንዳንዱ አታሚ ውስጥ ተመዝጋቢው በJMS መራጭ ውስጥ የሚጠቀመውን የ jms ንብረት አዘጋጃለሁ። ለእያንዳንዱ ግቤት፣ በዘፈቀደ ዋጋ የሚመነጨው በተጠቃሚ መለኪያዎች የሙከራ እቅድ አካል ውስጥ ነው፡-

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

በዚህ መንገድ ትክክለኛው መልእክት መነበቡን እርግጠኛ መሆን ይችላሉ።

ቀድሞ የተዋቀረ የJMS አታሚ የመጨረሻው “ባዶ”፡-

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

የጄኤምኤስ ተመዝጋቢ

  • ማዋቀር - እያንዳንዱ ናሙና. እሺ ይገባሃል።
  • የጊዜ ማብቂያ (ms) = 100000. ጥያቄው ከ 100 ሰከንድ መጠበቅ በኋላ ወረፋው ላይ ካልደረሰ, የሆነ ችግር ተፈጥሯል.
  • በናሙናዎች መካከል ይቁም? - እውነት።

JMS መራጭ - በጣም ምቹ ነገር. የመጨረሻ JMS ተመዝጋቢ፡-

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

በሚተላለፉ መልዕክቶች ውስጥ የሲሪሊክ ፊደላትን እንዴት መቋቋም እንደሚቻል። በJMeter ውስጥ፣ በነባሪነት፣ ከተጣራ በኋላ፣ በጠማማነት ይታያል። ይህንን ለማስቀረት እና ታላቁን እና ሀይለኛውን ሁል ጊዜ እና በሁሉም ቦታ ለመደሰት፣ የሚከተሉትን ማድረግ አለብዎት:

  1. የJVM ነጋሪ እሴት ወደ JMeter “አስጀማሪ” ያክሉ፡-
    -Dfile.encoding=UTF-8
  2. JSR223 ፖስትፕሮሰሰርን ወደ ተመዝጋቢ አክል ከግሩቭ መስመር፡
    prev.setDataEncoding("UTF-8")

ጽሑፍ ላክ

በጣም ሰነፍ አማራጭ። አዲስ የተፃፉ ፈተናዎችን ለማረም ተስማሚ። ወይም ቢያንስ ትንሽ ነገር መላክ ሲፈልጉ ለጉዳዮች። አማራጭ ይምረጡ የመልእክት ምንጭ - Textarea እና የመልእክቱን አካል በጽሑፍ ብሎክ ውስጥ ያስቀምጡት፡-

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

ፋይል ማስተላለፍ

በጣም የተለመደው አማራጭ. ለአብዛኛዎቹ ሁኔታዎች ተስማሚ። አማራጭ ይምረጡ የመልእክት ምንጭ - ከፋይል እና በመስክ ላይ ወደ መልእክቱ የሚወስደውን መንገድ ያመልክቱ ፋይል - የፋይል ስም:

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

ፋይልን ወደ የጽሑፍ መስክ በማስተላለፍ ላይ

በጣም ሁለገብ አማራጭ. ለአብዛኛዎቹ ሁኔታዎች ተስማሚ የሆነ + ሁለተኛ የመላክ አማራጭ በሌለበት በJMS ነጥብ-ወደ-ነጥብ ውስጥ መጠቀም ይቻላል፡

ወረፋዎች እና JMeter፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

የባይት ድርድር ማለፍ

በጣም አስቸጋሪው አማራጭ. እስከ ባይት ድረስ ያሉ ጥያቄዎችን ያለማዛባት፣ ኤስኤምኤስ እና ግርግር ሳይሳሳቱ ትክክለኛ ስርጭትን ለማረጋገጥ ተስማሚ። ይህንን በነባሪ JMeter ውስጥ ማድረግ አይችሉም። እዚህ በእርግጠኝነት ስለዚህ ጉዳይ ተነግሮኛል.

ስለዚህ ማውረድ ነበረብኝ ምንጮች እና አስተካክል ኮድ የጄኤምኤስ ተመዝጋቢ።

ዘዴው ውስጥ ተተካ 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፡ ከአታሚ እና ተመዝጋቢ ጋር መለዋወጥ

ምንጭ: hab.com

አስተያየት ያክሉ