λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

μ•ˆλ…•, ν•˜λΈŒλ₯΄! 이건 λ‚΄ ν›„μ†νŽΈμ΄μ•Ό 이전 κ°„ν–‰λ¬Ό, JMeterλ₯Ό μ‚¬μš©ν•˜μ—¬ λŒ€κΈ°μ—΄μ— λ©”μ‹œμ§€λ₯Ό λ°°μΉ˜ν•˜λŠ” μ˜΅μ…˜μ— λŒ€ν•΄ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” λŒ€κ·œλͺ¨ μ—°λ°© νšŒμ‚¬λ₯Ό μœ„ν•œ 데이터 λ²„μŠ€λ₯Ό λ§Œλ“€κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ μš”μ²­ ν˜•μ‹, λ³€ν™˜, λ³΅μž‘ν•œ λΌμš°νŒ…. ν…ŒμŠ€νŠΈν•˜λ €λ©΄ λŒ€κΈ°μ—΄μ— λ§Žμ€ λ©”μ‹œμ§€λ₯Ό 보내야 ν•©λ‹ˆλ‹€. μˆ˜λ™μ μœΌλ‘œλŠ” λͺ¨λ“  척좔지압사가 감당할 수 μ—†λŠ” κ³ ν†΅μž…λ‹ˆλ‹€.

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

μ†Œκ°œ

μ²˜μŒμ—λŠ” 이 고톡을 μ°Έμ•„μ•Ό ν–ˆμ§€λ§Œ. λͺ¨λ“  것은 RFHUtilμ—μ„œ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°•λ ₯ν•˜μ§€λ§Œ μ–΄μƒ‰ν•˜κ³  λ¬΄μ„­μŠ΅λ‹ˆλ‹€. κΈ€μŽ„, 당신은 Rusλ₯Ό μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

μ–΄λ–€ κ²½μš°μ—λŠ” ν•„μˆ˜ λΆˆκ°€κ²°ν•˜μ§€λ§Œ 적극적으둜 μ‚¬μš©ν•˜λŠ” 경우 κΎΈμ€€νžˆ κ°μ†Œν•©λ‹ˆλ‹€.
νŽΈλ¦¬ν•œ ν…ŒμŠ€νŠΈλŠ” λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

JMeterλ₯Ό μ‚¬μš©ν•˜λ©΄ λͺ¨λ“  것이 더 μ‰¬μ›Œμ‘ŒμŠ΅λ‹ˆλ‹€. 첫 번째 λ§ˆμŠ€ν„°λ§ 단계와 μ΅μˆ™ν•΄μ§„ 후에 ν–‰λ³΅ν•œ ν…ŒμŠ€νŠΈμ— λŒ€ν•œ 희망이 생기기 μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” JMS κ²Œμ‹œμž 및 JMS κ΅¬λ…μž μƒ˜ν”ŒλŸ¬λ₯Ό 적극적으둜 μ‚¬μš©ν•©λ‹ˆλ‹€. JMS Point-to-Point와 달리 이 μŒμ€ μ‚¬μš©ν•˜κΈ° 더 νŽΈλ¦¬ν•΄ λ³΄μ˜€μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, JMS Selector의 Subscriberλ₯Ό μ‚¬μš©ν•˜λ©΄ λ³€μˆ˜λ₯Ό μ§€μ •ν•  수 μžˆμ§€λ§Œ Point-to-Pointμ—μ„œλŠ” κ·Έλ ‡κ²Œ ν•  수 μ—†μŠ΅λ‹ˆλ‹€(λ˜λŠ” 이 방법은 κ·Έλ‹€μ§€ λͺ…ν™•ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€).

μƒ˜ν”ŒλŸ¬ μ€€λΉ„

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 PostProcessorλ₯Ό μΆ”κ°€ν•©λ‹ˆλ‹€.
    prev.setDataEncoding("UTF-8")

문자λ₯Ό 보내닀

κ°€μž₯ 게으λ₯Έ μ˜΅μ…˜. μƒˆλ‘œ μž‘μ„±λœ ν…ŒμŠ€νŠΈλ₯Ό λ””λ²„κΉ…ν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€. λ˜λŠ” μ΅œμ†Œν•œ μž‘μ€ 것을 보내야 ν•˜λŠ” 경우. μ˜΅μ…˜μ„ μ„ νƒν•˜μ„Έμš” λ©”μ‹œμ§€ μ†ŒμŠ€ - ν…μŠ€νŠΈ μ˜μ—­ λ©”μ‹œμ§€ 본문을 ν…μŠ€νŠΈ 블둝에 λ°°μΉ˜ν•©λ‹ˆλ‹€.

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

파일 전솑

κ°€μž₯ 일반적인 μ˜΅μ…˜μž…λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ μ‹œλ‚˜λ¦¬μ˜€μ— μ ν•©ν•©λ‹ˆλ‹€. μ˜΅μ…˜μ„ μ„ νƒν•˜μ„Έμš” λ©”μ‹œμ§€ μ†ŒμŠ€ - νŒŒμΌμ—μ„œ ν•„λ“œμ— λ©”μ‹œμ§€ 경둜λ₯Ό ν‘œμ‹œν•©λ‹ˆλ‹€. 파일 - 파일 이름:

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

νŒŒμΌμ„ ν…μŠ€νŠΈ ν•„λ“œλ‘œ μ „μ†‘ν•˜κΈ°

κ°€μž₯ λ‹€μ–‘ν•œ μ˜΅μ…˜. λŒ€λΆ€λΆ„μ˜ μ‹œλ‚˜λ¦¬μ˜€μ— 적합 + 두 번째 전솑 μ˜΅μ…˜μ΄ μ—†λŠ” JMS 지점 κ°„μ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

λ°”μ΄νŠΈ λ°°μ—΄ 전달

κ°€μž₯ μ–΄λ €μš΄ μ˜΅μ…˜. μ™œκ³‘, SMS 및 κ΅λž€ 없이 μš”μ²­μ˜ λ°”μ΄νŠΈκΉŒμ§€ μ •ν™•ν•˜κ³  μ •ν™•ν•œ 전솑을 ν™•μΈν•˜λŠ” 데 μ ν•©ν•©λ‹ˆλ‹€. κΈ°λ³Έ JMeterμ—μ„œλŠ” 이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. 여기에 λ‚˜λŠ” 이것에 λŒ€ν•΄ ν™•μ‹€νžˆ λ“€μ—ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ‹€μš΄λ‘œλ“œλ₯Ό ν•΄μ•Ό ν–ˆμ–΄μš” 좜처 μˆ˜μ •ν•˜κ³  μ•”ν˜Έ JMS κ°€μž…μž.

λ©”μ„œλ“œμ—μ„œ λŒ€μ²΄λ¨ extractContent(..) μ„ :

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

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

그리고 Publisherμ—μ„œ 파일 경둜λ₯Ό μΆ”κ°€ν•˜λŠ” 것을 μžŠμ§€ λ§ˆμ„Έμš”.

λŒ€κΈ°μ—΄ 및 JMeter: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

λ˜ν•œ JSR223 Assertion for Subscriber에 λŒ€ν•œ 확인도 μžˆμŠ΅λ‹ˆλ‹€. μ†ŒμŠ€ λ°”μ΄νŠΈλ₯Ό μˆ˜μ‹ μžμ˜ λŒ€κΈ°μ—΄μ— λ„μ°©ν•˜λŠ” λ°”μ΄νŠΈμ™€ λΉ„κ΅ν•©λ‹ˆλ‹€.

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: κ²Œμ‹œμž 및 κ΅¬λ…μžμ™€ 곡유

좜처 : habr.com

DDoS 보호, VPS VDS μ„œλ²„κ°€ μžˆλŠ” μ‚¬μ΄νŠΈλ₯Ό μœ„ν•œ μ•ˆμ •μ μΈ ν˜ΈμŠ€νŒ… κ΅¬μž… πŸ”₯ DDoS 곡격 λ°©μ§€ κΈ°λŠ₯이 νƒ‘μž¬λœ μ•ˆμ •μ μΈ μ›Ήμ‚¬μ΄νŠΈ ν˜ΈμŠ€νŒ…, VPS 및 VDS μ„œλ²„λ₯Ό κ΅¬λ§€ν•˜μ„Έμš” | ProHoster