áááºá¹ááá¬áá« Habrá áá«á áá»áœááºáá±á¬á·áºáá²á· áá±á¬ááºáááºááœá²áá«á
áá»áœááºá¯ááºááá¯á·ááẠáááºááááºáá¯áá¹ááá®ááŒá®ážáá áºáá¯á¡ááœáẠáá±áá¬áááºá áºáá¬ážááᯠááŒá¯áá¯ááºáá±áá«áááºá á¡áá»áá¯ážáá»áá¯ážáá±á¬áá±á¬ááºážááá¯ááŸá¯áá¯á¶á á¶áá»á¬ážá á¡ááœááºááŒá±á¬ááºážááŸá¯áá»á¬ážá ááŸá¯ááºááœá±ážáá±á¬áááºážááŒá±á¬ááºážáá»á¬ážá á ááºážáááºáááºá¡ááœáẠáááºážá á®ááẠáááºáá±á·áá»áºáá»á¬ážá áœá¬ áá±ážááá¯á·ááẠááá¯á¡ááºáááºá áááºááŒáá·áºááá¯ááºááŒááºážááẠchiropractorááá¯ááºáž áááá¯ááºááœááºááá¯ááºáá±á¬ áá¬áá»ááºááŸá¯áá áºáá¯ááŒá áºáááºá
áááá«ááºáž
áá®áá±ááá¬ááᯠá¡á áá¯ááºážá áá¶ááá¯ááºáááºááŸááá²á·áá±ááá·áº áááºážááẠRFHUtil ááŒáá·áº á áááºáá²á·áááºá á¡á áœááºážáááºáá±á¬áºáááºáž á¡áááºáááŒá±á ááŒá±á¬ááºá áá¬áá±á¬ááºážáááº- Rus áááááºá
á¡áá»áá¯á·áá±á¬ááá
á¹á
áá»á¬ážááœáẠáááŸááááŒá
áºááá¯á¡ááºáá±á¬áºáááºáž áááºááŒáœá
áœá¬á¡áá¯á¶ážááŒá¯ááá·áºá¡áá«ááœáẠáááŒááºážááŒááºáž áá»á±á¬á·áááºážáá¬áááºá
áááºáá±á¬áá·áºáááºáᬠá
ááºážááŒáá·áºáᬠáááŒá
áºááá¯ááºáá°ážá
JMeter ááŒáá·áº á¡áá¬á¡á¬ážáá¯á¶ážááẠááá¯ááá¯ááœááºáá°áá¬áááºá áááá¡ááá·áºááᯠáá»áœááºážáá»ááºááŒá®áž á¡áá±á·á¡áá»áá·áºááá¬ááŒá®ážáá±á¬áẠáá»á±á¬áºááœáŸááºáá±á¬á ááºážáááºááŸá¯á¡ááœáẠáá»áŸá±á¬áºááá·áºáá»ááºáá»á¬áž áááºážáááºáá¬áááºá
áá»áœááºá¯ááºááẠJMS Publisher ááŸáá·áº JMS á á¬áááºážááœááºážáá° ááá°áá¬áá»á¬ážááᯠáááºááŒáœá áœá¬ á¡áá¯á¶ážááŒá¯áá«áááºá JMS Point-to-Point ááŸáá·áºááá°áá²á á€á¡ááœá²ááẠá¡áá¯á¶ážááŒá¯á ááá¯á¡áááºááŒá±áá¯á¶ááááºá á¥ááá¬á¡á¬ážááŒáá·áºá JMS Selector ááœáẠá á¬áááºážááœááºážáá°ááŒáá·áº ááááºážááŸááºáá áºáá¯ááᯠáááºáááºááŸááºááá¯ááºáá±á¬áºáááºáž Point-to-Point ááŒáá·áº áááºááááá¯ááºáá« (ááá¯á·ááá¯áẠá€áááºážáááºážááẠá¡ááœááºáááºááŸá¬ážááŒááºážáááŸááá«)á
ááá°áá¬áá»á¬áž ááŒááºáááºááŒááºážá
JMS áá¯ááºáá±áá°
- á
áá
áºááá·áºááœááºážááŒááºáž - ááá°áá¬áá
áºáá¯á
á®á Apache
á¡ááŒá¶ááŒá¯ááẠááááºážááŸááºáá»á¬ážááŸáá áºááá·áº áááºážá á®ááŒááºáž/á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááºááŸááºáá«á á€ááœá±ážáá»ááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯áá«á - áááºáááºážáá¯áẠ(ms) = 120000á áá¡á±á¬ááºááŒááºáá«áá á ááºážáááºááŸá¯ áá±á¬ááºážááá¯áá»ááºáá»á¬ážááẠ2 áááá áºá¡ááŒá¬ááœáẠáááºážá á®ááŒááºážá០áá»á±á¬ááºááœá¬ážáá«áááºá
- áááŒá²áá±á¬ ááá¯á·áá±á¬ááºááŸá¯áá¯ááºááᯠáá¯á¶ážááá¬ážá - ááŸááºáá«áááºá IBM
áá±á¬ááºážááá¯áá»ááºáá»á¬áž á¡ááá¯áá« persistent mode ááẠáá¯ááºáááẠáá»áá¯á·ááœááºážááœá¬ážááá·áºá¡áá«ááœáẠáá±ážááá¯á·áá¬ážáá±á¬ áááºáá±á·áá»áºáá»á¬ážááᯠáá¯á¶ááŒááºá áááºáá»ááá±á¬ ááááºážááááºážááŸá¯ááᯠáá±áá»á¬á á±áááºá áááŒá²áá±á¬áá¯ááºááœáẠááá¯ááá¯ááŒááºáááºá áœá¬ áá²ááŸááºáá«á á ááºážáááºááŒááºážá¡ááœááºá ááŒááºááŸá¯ááºážááẠááá¯áá¡áá±ážááŒá®ážáááºá
áá¯ááºáá±áá°ááá¯ááºážááœáẠáá»áœááºá¯ááºááẠá á¬áááºážááœááºážáá°ááẠJMS ááœá±ážáá»ááºááŸá¯ááœáẠá¡áá¯á¶ážááŒá¯ááá·áº jms ááá¯ááºááá¯ááºááŸá¯ááᯠáááºááŸááºáá²á·áááºá áááºááœááºážááŸá¯áá áºáá¯á á®á¡ááœááºá User Parameters test plan element ááœáẠáá»áááºážáááºááá¯ážááᯠáá¯ááºáá±ážáááº-
á€áááºážááŒáá·áº áááºááẠááŸááºáááºáá±á¬ áááºáá±á·áá»áºááᯠáááºááŒá±á¬ááºáž áá±áá»á¬á
á±ááá¯ááºáááºá
ááŒáá¯áááºááŒááºáááºáá¬ážáá±á¬ JMS áá¯ááºáá±áá°á áá±á¬ááºáá¯á¶áž "á¡ááœááº"
JMS á á¬áááºážááœááºážáá°
- á áá áºááá·áºááœááºážááŒááºáž - ááá°áá¬áá áºáá¯á á®á áá±á¬ááºážááŒá®á áááºážáá¬ážáááºáááºá
- á¡áá»áááºáá¯áẠ(ms) = 100000á á áá¹ááá·áº 100 á á±á¬áá·áºááá¯ááºážááŒá®ážáá±á¬áẠáá±á¬ááºážááá¯áá»ááºááẠáááºážá á®á¡ááœááºážááá¯á· ááá±á¬ááºáá¬áá«áá áá áºáá¯áᯠááŸá¬ážááœá¬ážáá«áááºá
- ááá°áá¬áá»á¬ážááŒá¬ážááœáẠáááºááá¬ážá - ááŸááºáá«áááºá
JMS Selector - á¡áá±á¬áºáá±ážá¡áááºááŒá±áá«áááºá
áá±ážááá¯á·áá¬ážáá±á¬á
á¬áá»á¬ážááœáẠCyrillic á¡áá¹ááá¬ááᯠáááºááá¯á·ááá¯ááºááœááºááŒá±ááŸááºážáááºáááºážá JMeter ááœááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á
áá
á
áºáááºááŸá¯ááŒá®ážáá±á¬ááºá áááºážááᯠááááºáááºááŒááá¬ážáááºá áá«ááá¯ááŸá±á¬ááºááŸá¬ážááŒá®áž ááŒá®ážááŒááºááŒá®áž á¡á
áœááºážáááºáá²á· á¡áá¬ááœá±ááᯠá¡ááŒá²áá±áá¬ááá¯ááºážááᯠáá¶á
á¬ážááá¯á·á áááºááá¯á¡ááºáá«áááº-
- JMeter âLauncherâ ááœáẠJVM á¡ááŒááºážá¡áá¯á¶áá
áºáá¯ááᯠááá·áºáá«-
-Dfile.encoding=UTF-8
- JSR223 PostProcessor ááᯠgroovy line ááŒáá·áº á
á¬áááºážááœááºážáá°ááá¯á· ááá·áºáá«-
prev.setDataEncoding("UTF-8")
á á¬ááá¯ááá¯á·áá«á
á¡áá»ááºážáá¯á¶ážááœá±ážáá»ááºááŸá¯á á¡áá áºáá±ážáá¬ážáá¬ážáá±á¬ á ááºážáááºááŸá¯áá»á¬ážááᯠá¡ááŸá¬ážááŸá¬ááŒááºááŒááºážá¡ááœáẠááá·áºáá»á±á¬áºáááºá ááá¯á·ááá¯áẠá¡áá±ážá¡ááœáŸá¬ážáá áºáá¯áá¯ááᯠáá±ážááá¯á·ááẠááá¯á¡ááºááá·áºá¡áá« ááá á¹á áááºáá»á¬ážá¡ááœááºá ááœá±ážá áá¬ááᯠááœá±ážáá«á áááºáá±á·áá»áºá¡áááºážá¡ááŒá Ạ- Textarea ááŒá®ážáá»áŸáẠá á¬áááá¯ááºáááºááᯠá á¬áá¬ážááá±á¬ááºáá áºáá¯ááœáẠáá¬ážááá¯ááºáá«-
ááá¯ááºááœáŸá²ááŒá±á¬ááºážááŒááºáž
á¡áá¯á¶ážá¡áá»á¬ážáá¯á¶ážááœá±ážáá»ááºááŸá¯á á¡ááŒá±á¡áá±á¡áá»á¬ážá á¯á¡ááœáẠááá·áºáá»á±á¬áºáááºá ááœá±ážá áá¬ááᯠááœá±ážáá«á áááºáá±á·áá»áºá¡áááºážá¡ááŒá Ạ- ááá¯ááºá០ááŒá®ážáá»áŸáẠáááºáááºááŸá áááºáá±á·ááºá»ááá¯á· áááºážááŒá±á¬ááºážááᯠááœáŸááºááŒáá«á ááá¯áẠ- ááá¯ááºá¡áááº-
ááá¯ááºáá áºáá¯ááᯠá á¬áá¬ážá¡ááœááºááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒááºážá
á¡áá»á¬ážáá¯á¶ážá áœááºá á¯á¶ááœá±ážáá»ááºááŸá¯á á¡ááŒá±á¡áá±á¡áá»á¬ážá á¯á¡ááœáẠááá·áºáá»á±á¬áºááẠ+ áá¯ááááá±ážááá¯á·áááºááœá±ážáá»ááºá áá¬áááŸááá±á¬ JMS Point-to-Point ááœáẠáá¯á¶ážááá¯ááºáááº-
byte array ááá¯ááŒááºááœá¬ážáááº
á¡áááºáá²áá¯á¶ážááœá±ážáá»ááºááŸá¯á áá¯á¶áá»ááºááŒááºážá SMS ááŸáá·áº ááŸá±á¬áá·áºááŸááºááŒááºážáááŸááá² byte á០áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠááŸááºáááºá
áœá¬ áá±ážááá¯á·ááŒááºážá¡á¬áž á
á
áºáá±ážáááºá¡ááœáẠááá·áºáá»á±á¬áºáááºá áá°áááºáž JMeter ááœáẠáááºážááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºáááºááá¯ááºáá«á
áá«ááŒá±á¬áá·áº áá±á«ááºážáá¯ááºááœá²ááááºá
áááºážáááºážááŒáá·áº á¡á
á¬ážááá¯ážáá²á·áááºá 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 Samplers ááŸá áºáá¯ááá·áºááá¯á·áá²áá»ááºáá±á¬á·áááºá áááá¡áá»ááºááŸá¬ áá»áááºážááá¯ááºáá»á¬ážáá«áááºáá±á¬ 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 ááŸá ááá¯ááºááá¯á· áááºážááŒá±á¬ááºážááᯠááá·áºááẠááá±á·áá«ááŸáá·áºá
á
á¬áááºážááœááºážáá°á¡ááœáẠJSR223 Assertion ááá¯áááºáž á
á
áºáá±ážáá« - áááºáá¶áá°ááááºážá
á®ááá¯á·áá±á¬ááºááŸááá¬áá±á¬ á¡áááºážá¡ááŒá
áºááá¯ááºáá»á¬ážááŸáá·áº ááŸáá¯ááºážááŸááºááŒáá·áºáá«-
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;
}
áá±á¬ááºáá»ááº
á á®áááºážáá»á¬ážááá¯á· áááºáá±á·áá»áºááá¯á·ááẠáááºážáááºážáá±ážáá¯ááᯠáá±á¬áºááŒáá²á·ááŒá®ážá áááºááœá±á·ááœáẠáá»áœááºá¯ááºáá±á·á ááºá¡áá¯á¶ážááŒá¯áááºá áá®á¡áá»ááºá¡áááºááœá±á áááºážááááᯠááá¯ááœááºáá°á á±áááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá áááºáááºá áá áºáááºá áœááºážááœáẠáááºážá á®áá±ááá·áº áá²ááŸááºááŸá¯áá áºáá¯ááᯠá ááºážáááºááŒááºážááŸáá·áº á¡ááŒá¬ážáá áºáááºááœáẠáá±áá¬áá±á·á Ạááá¯á·ááá¯áẠááá¯ááºá áá áºáá áºáá¯á¡ááŒá±á¬ááºáž ááœá±ážááœá±ážááẠá á®á ááºáá¬ážáá«áááºá
áááºáá¡áá»áááºááá¯ááá¯á áá¯ááºáá«á áááºáá¡á¬áá¯á¶á áá¯ááºááŸá¯á¡ááœááºáá»á±ážáá°ážáááºáá«áááºá
source: www.habr.com