வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

வணக்கம், ஹப்ர்! இது என்னுடைய தொடர்ச்சி முந்தைய வெளியீடு, இதில் நான் JMeter ஐப் பயன்படுத்தி வரிசைகளில் செய்திகளை வைப்பதற்கான விருப்பங்களைப் பற்றி பேசுவேன்.

நாங்கள் ஒரு பெரிய ஃபெடரல் நிறுவனத்திற்கான டேட்டா பஸ்ஸை உருவாக்குகிறோம். பல்வேறு கோரிக்கை வடிவங்கள், மாற்றங்கள், சிக்கலான ரூட்டிங். சோதனைக்கு, நீங்கள் வரிசையில் நிறைய செய்திகளை அனுப்ப வேண்டும். கைமுறையாக ஒவ்வொரு சிரோபிராக்டரும் கையாள முடியாத ஒரு வலி.

வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

அறிமுகம்

இந்த வலியை முதலில் நான் தாங்கிக் கொள்ள வேண்டும் என்றாலும். இது அனைத்தும் RFHUtil உடன் தொடங்கியது. சக்திவாய்ந்த, ஆனால் மோசமான மற்றும் பயமுறுத்தும்: சரி, உங்களுக்கு ரஸ் தெரியும்.

வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

சில சந்தர்ப்பங்களில் இன்றியமையாதது, ஆனால் செயலில் பயன்படுத்தினால் படிப்படியாக குறைகிறது.
வசதியான சோதனை அது சாத்தியமற்றது.

JMeter மூலம் எல்லாம் எளிதாகிவிட்டது. தேர்ச்சி பெற்று பழகிய முதல் கட்டத்துக்குப் பிறகு மகிழ்ச்சியான சோதனைக்கான நம்பிக்கை துளிர்விட ஆரம்பித்தது.

நான் JMS வெளியீட்டாளர் மற்றும் JMS சந்தாதாரர் மாதிரிகளை தீவிரமாகப் பயன்படுத்துகிறேன். JMS Point-to-Point போலல்லாமல், இந்த ஜோடி பயன்படுத்த மிகவும் வசதியாக இருந்தது. எடுத்துக்காட்டாக, ஜேஎம்எஸ் தேர்வியில் உள்ள சந்தாதாரருடன் நீங்கள் ஒரு மாறியைக் குறிப்பிடலாம், ஆனால் பாயிண்ட்-டு-பாயிண்ட் மூலம் உங்களால் முடியாது (அல்லது இந்த முறை மிகவும் தெளிவாக இல்லை).

மாதிரிகளைத் தயாரித்தல்

ஜேஎம்எஸ் வெளியீட்டாளர்

  • அமைப்பு - ஒவ்வொரு மாதிரி. அப்பாச்சி பரிந்துரைக்கிறது வரிசைகள்/தலைப்புகள் மாறிகள் மூலம் குறிப்பிடப்பட்டால் இந்த விருப்பத்தைப் பயன்படுத்தவும்.
  • காலாவதி (மி.எஸ்) = 120000. தோல்வியுற்றால், சோதனைக் கோரிக்கைகள் 2 நிமிடங்களுக்குப் பிறகு வரிசையில் இருந்து மறைந்துவிடும்.
  • நிலையான டெலிவரி பயன்முறையைப் பயன்படுத்தவா? - உண்மை. ஐபிஎம் கூற்றுக்கள்தொடர்ச்சியான பயன்முறையானது, திடீரென தோல்வியுற்றால் அனுப்பப்பட்ட செய்திகளின் நம்பகமான பாதுகாப்பை உறுதி செய்கிறது. மற்றும் நிலையான பயன்முறையில் விரைவான பரிமாற்றம். சோதனை நோக்கங்களுக்காக, வேகம் மிகவும் முக்கியமானது.

ஒவ்வொரு வெளியீட்டாளரிலும், சந்தாதாரர் JMS தேர்வியில் பயன்படுத்தும் jms சொத்தை அமைத்துள்ளேன். ஒவ்வொரு சமர்ப்பிப்பிற்கும், பயனர் அளவுருக்கள் சோதனைத் திட்ட உறுப்பில் ஒரு சீரற்ற மதிப்பு உருவாக்கப்படும்:

வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

இதன் மூலம், சரியான செய்தி வாசிக்கப்பட்டதா என்பதை உறுதிப்படுத்திக் கொள்ளலாம்.

முன் கட்டமைக்கப்பட்ட JMS வெளியீட்டாளரின் இறுதி "வெற்று":

வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

JMS சந்தாதாரர்

  • அமைவு - ஒவ்வொரு மாதிரி. சரி, உங்களுக்கு புரிகிறது.
  • நேரம் முடிந்தது (மிஎஸ்) = 100000. 100 வினாடிகள் காத்திருந்தும் வரிசையில் கோரிக்கை வரவில்லை எனில், ஏதோ தவறாகிவிட்டது.
  • மாதிரிகளுக்கு இடையில் நிறுத்தவா? - உண்மை.

ஜேஎம்எஸ் தேர்வி - மிகவும் வசதியானது விஷயம். இறுதி JMS சந்தாதாரர்:

வரிசைகள் மற்றும் JMeter: வெளியீட்டாளர் மற்றும் சந்தாதாரருடன் பகிர்தல்

அனுப்பப்பட்ட செய்திகளில் சிரிலிக் எழுத்துக்களை எவ்வாறு கையாள்வது. JMeter இல், முன்னிருப்பாக, சரிபார்த்த பிறகு, அது வளைந்த நிலையில் காட்டப்படும். இதைத் தவிர்க்கவும், எப்போதும் எல்லா இடங்களிலும் சிறந்த மற்றும் சக்திவாய்ந்தவற்றை அனுபவிக்க, நீங்கள் செய்ய வேண்டியது:

  1. JMeter “லாஞ்சரில்” JVM வாதத்தைச் சேர்க்கவும்:
    -Dfile.encoding=UTF-8
  2. க்ரூவி வரியுடன் சந்தாதாரருக்கு JSR223 PostProcessor ஐச் சேர்க்கவும்:
    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);
}

மற்றும் ஜேமீட்டர் மீண்டும் கட்டப்பட்டது.

இரண்டு 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

கருத்தைச் சேர்