ืืขืื, ืืืืจ! ืืึธืก ืืื ืึท ืกืืงืืืึทื ืฆื ืืืึทื
ืืืจ ืืึทืื ืึท ืืึทืื ืืืืึธืืืก ืคึฟืึทืจ ืึท ืืจืืืก ืคืขืืขืจืืืข ืคืืจืืข. ืคืึทืจืฉืืื ืืขืื ืคึฟืึธืจืืึทืืืจืื ืืขื, ืืจืึทื ืกืคืขืจืืืืฉืึทื ื, ืื ืืจืึทืงืึทื ืจืืืื ื. ืคึฟืึทืจ ืืขืกืืื ื, ืืืจ ืืึทืจืคึฟื ืฆื ืฉืืงื ืึท ืคึผืืึทืฅ ืคืื ืึทืจืืืงืืขื ืฆื ืื ืจืื. ืืึทื ืืืึทืื ืืื ืึท ืืืืืืืง ืึทื ื ืื ืืขืืขืจ ืืฉืืจืึธืคึผืจืึทืงืืึธืจ ืงืขื ืขื ืฉืขืคึผื.
ืืงืืื
ืืึธืืฉ ืืื ืืื ืฆื ืืืืื ืึทืจืืืฃ ืืื ืืขื ืืืืืืืง ืืื ืขืจืฉืืขืจ. ืขืก ืึทืืข ืื ืืขืืืืื ืืื RFHUtil. ืฉืืึทืจืง, ืึธืืขืจ ืืืืขืืืืคึผืขืจื ืืื ืกืงืขืจื: ื ื, ืืืจ ืืืืกื ืจืืก.
ืื ืืืกืคึผืขื ืกืึทืืึทื ืืื ืขืืืขืืข ืงืึทืกืขืก, ืึธืืขืจ ืกืืขืืึทืื ืืืงืืืื ืื ื ืืื ืคืึทื ืคืื ืึทืงืืืื ื ืืฆื.
ืืึทืงืืืขื ืืขืกืืื ื ืืื ืืืืืขืืืขื ืืื ืืื.
ืืื JMeter ืึทืืฅ ืืื ืืขืืืืจื ืืจืื ืืขืจ. ื ืึธื ืืขืจ ืขืจืฉืืขืจ ืืื ืข ืคืื โโืืึทืกืืขืจืื ื ืืื ืืขืืื ื ืืขืืืืื ื ืฆื ืืื, ืืึธืคืขื ืื ื ืื ืืขืืืืื ืฆื ืคืึทืจืืึธื ืคึฟืึทืจ ืืืืงืืขื ืืขืกืืื ื.
ืืื ืึทืงืืืืืื ื ืืฆื ืื JMS Publisher ืืื JMS Subscriber ืกืึทืืคึผืึทืื. ื ืื ืขื ืืขื JMS ืคืื ื-ืฆื-ืคืื ื, ืืขื ืคึผืึธืจ ืกืืื ืืขืจ ืืึทืงืืืขื ืฆื ื ืืฆื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืื ืึทืืึธื ืขื ื ืืื JMS ืกืขืืขืงืืึธืจ ืืืจ ืงืขื ืขื ืกืคึผืขืฆืืคืืฆืืจื ืึท ืืืึทืืขืืืืืง, ืึธืืขืจ ืืื ืคืื ื-ืฆื-ืคืื ื ืืืจ ืงืขื ืขื ื ืืฉื (ืึธืืขืจ ืืขื ืืืคึฟื ืืื ื ืืฉื ืืืืขืจ ืงืืึธืจ ืืื ืืขืจ ืืึธื).
ืคึผืจืืคึผืขืจืื ื ืกืึทืืคึผืึทืื
JMS Publisher
- ืกืขืืึทืคึผ - ืืขืืขืจ ืืืกืืขืจ. ืึทืคึผืึทืืฉื
ืจืขืงืึทืืขื ืื ื ืืฆื ืืขื ืึธืคึผืฆืืข ืืืื ืงืืื / ืืขืืขืก ืืขื ืขื ืกืคึผืขืกืืคืืขื ืืืจื ืืืขืจืืึทืืึทืื. - ืขืงืกืคึผืขืจืืืฉืึทื (ืืก) = 120000. ืืื ืคืึทื ืคืื ืืืจืืคืึทื, ืคึผืจืืืืจื ืจืืงืืืขืก ืืืขื ืคืึทืจืฉืืืื ืื ืคืื ืืขืจ ืจืื ื ืึธื 2 ืืื ืื.
- ื ืืฆื ื ืื-ืคึผืขืจืกืืกืืขื ื ืขืงืกืคึผืจืขืก ืืึธืืข? โ ืืืช. ืืื
ืงืืืืื ืึทื ืคึผืขืจืกืืกืืขื ื ืืึธืืข ืื ืฉืืจื ืคืึทืจืืึธืืืขื ืคึผืจืขืืขืจืืืืืฉืึทื ืคืื ืืจืึทื ืกืืืืืขื ืึทืจืืืงืืขื ืืื ืื ืืขืฉืขืขื ืืฉ ืคืื ืึท ืคึผืืืฆืขืืืืง ืืืจืืคืึทื. ืืื ืคืึทืกืืขืจ ืืืขืงืกื ืืื ื ืื-ืคึผืขืจืกืืกืืขื ื ืืึธืืข. ืคึฟืึทืจ ืืขืกืืื ื ืฆืืืขืงื, ืืืืงืืึทื ืืื ืืขืจ ืืืืืืืง.
ืืื ืืขืืขืจ ืึทืจืืืกืืขืืขืจ ืืื ืฉืืขืื ืึท ืืืฉืืก ืคืึทืจืืึธื ืึทื ืืขืจ ืึทืืึธื ืขื ื ืืืขื ื ืืฆื ืืื ืื JMS ืกืขืืขืงืืึธืจ. ืคึฟืึทืจ ืืขืืขืจ ืกืึทืืืืฉืึทื, ืึท ืืจืึทืค ืืืขืจื ืืื ืืืฉืขื ืขืจืืืืึทื ืืื ืื ืืึทื ืืฆืขืจ ืคึผืึทืจืึทืืขืืขืจืก ืคึผืจืืืืจื ืคึผืืึทื ืขืืขืืขื ื:
ืืขื ืืืขื ืืืจ ืงืขื ืขื ืืืื ืืืืขืจ ืึทื ืื ืจืืืืืง ืึธื ืืึธื ืืื ืืืืขื ืขื.
ืื ืืขืฆื "ืืืืืืง" ืคืื ืึท ืคืึทืจ-ืงืึทื ืคืืืืขืจื JMS Publisher:
JMS ืึทืืึธื ืขื ื
- ืกืขืืึทืคึผ - ืืขืืขืจ ืืืกืืขืจ. ื ื, ืืืจ ืคึฟืึทืจืฉืืืื.
- ืืืืืึทืื (ืืก) = 100000. ืืืื ืื ืืขืื ืืื ื ืืฉื ืึธื ืงืืืขื ืืื ืื ืจืื ื ืึธื 100 ืกืขืงืื ืืขืก ืคืื ืืืืจืื, ืขืคึผืขืก ืืื ืคืึทืืฉ.
- ืืึทืืื ืฆืืืืฉื ืกืึทืืคึผืึทืื? โ ืืืช.
ืืืฉืืก ืกืขืืขืงืืึธืจ - ืืึทื ืฅ ืืึทืงืืืขื
ืืื ืฆื ืืึทื ืืืขื ืืื ืื ืกืืจืืืืืง ืืืคืืืขื ืืื ืืจืึทื ืกืืืืืขื ืึทืจืืืงืืขื. ืืื JMeter, ืืืจื ืคืขืืืงืืึทื, ื ืึธื ืคึผืจืืคืจืืืื ื, ืขืก ืืื ืืขืืืืื ืงืจืื. ืฆื ืืืกืืืืื ืืขื ืืื ืืขื ืืกื ืื ืืจืืืก ืืื ืฉืืึทืจืง ืฉืืขื ืืืง ืืื ืืืืขืืื, ืืืจ ืืึทืจืคึฟื ืฆื:
- ืืืื ืึท JVM ืึทืจืืืืขื ื ืฆื ืื JMeter "ืืึทืื ืืฉืขืจ":
-Dfile.encoding=UTF-8
- ืืืื JSR223 ืคึผืึธืกืืคึผืจืึธืกืขืกืกืึธืจ ืฆื ืึทืืึธื ืขื ื ืืื ืืจืืืื ืฉืืจื:
prev.setDataEncoding("UTF-8")
ืฉืืงื ืืขืงืกื
ืื ืืขืจืกื ืืืืืืืง ืึธืคึผืฆืืข. ืคึผืึทืกืืง ืคึฟืึทืจ ืืืืึทืืื ื ืคืจืขืฉืื ืืขืฉืจืืื ืืขืกืฅ. ืึธืืขืจ ืคึฟืึทืจ ืงืึทืกืขืก ืืืขื ืืืจ ืืึทืจืคึฟื ืฆื ืฉืืงื ืืืึท ืืื ืืกืืขืจ ืขืคึผืขืก ืงืืืื. ืืืืกืงืืืึทืื ืึธืคึผืฆืืข ืึธื ืืึธื ืืงืืจ - ืืขืงืกืืึทืจืขืึท ืืื ืฉืืขืื ืื ืืืฃ ืคืื ืื ืึธื ืืึธื ืืื ืึท ืืขืงืกื ืืืึธืง:
ืืขืงืข ืึทืจืืืขืจืคืืจื
ืื ืืขืจืกื ืคึผืจืึธืกื ืึธืคึผืฆืืข. ืคึผืึทืกืืง ืคึฟืึทืจ ืจืืึฟ ืกืื ืขืจืืึธืื. ืืืืกืงืืืึทืื ืึธืคึผืฆืืข ืึธื ืืึธื ืืงืืจ - ืคึฟืื ืืขืงืข ืืื ืึธื ืืืืึทืื ืืขื ืืจื ืฆื ืืขืจ ืึธื ืืึธื ืืื ืืขื ืคืขืื ืืขืงืข - ืืขืงืข ื ืึธืืขื:
ืืจืึทื ืกืคืขืจืื ื ืึท ืืขืงืข ืฆื ืึท ืืขืงืกื ืคืขืื
ืื ืืขืจืกื ืืืขืจืกืึทืืึทื ืึธืคึผืฆืืข. ืคึผืึทืกืืง ืคึฟืึทืจ ืจืืึฟ ืกืื ืขืจืืึธืื + ืงืขื ืขื ืืืื ืืขืืืืื ื ืืื JMS ืคืื ื-ืฆื-ืคืื ื ืืื ืขืก ืืื ืงืืื ืฆืืืืื ืฉืืงื ืึธืคึผืฆืืข:
ืคืึธืจื ืึท ืืืื ืืขื ืืข
ืื ืืขืจืกื ืฉืืืขืจ ืึธืคึผืฆืืข. ืคึผืึทืกืืง ืคึฟืึทืจ ืงืึธื ืืจืึธืืืจืื ื ืื ืื ืคืึทืืึทืืื ืคึผืื ืืืขื ืืจืึทื ืกืืืกืืข ืคืื โโืจืืงืืืขืก ืึทืจืึธืคึผ ืฆื ืื ืืืืข, ืึธื ืืืกืืึธืจืฉืึทื, SMS ืืื ืคึผืขืจืืขืจืืืืฉืึทื. ืืืจ ืืืขื ื ืืฉื ืงืขื ืขื ืฆื ืืึธื ืืึธืก ืืื ืื ืคืขืืืงืืึทื 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();
ืืื ืืึธื ื ืื ืคืึทืจืืขืกื ืฆื ืืืืื ืืขื ืืจื ืฆื ืืขืจ ืืขืงืข ืืื Publisher:
ืืื ืืืื ืึท ืืฉืขืง ืืื 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;
}
ืกืึธืฃ
ืืื ืืืกืงืจืืืื ืคืืจ ืืืขืื ืฆื ืฉืืงื ืึทืจืืืงืืขื ืฆื ืงืืื, ืืืึธืก ืืื ื ืืฆื ืืขืืขืจ ืืึธื ืืื ืคืืจ. ืืื ืืึธืคึฟื ืึทื ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืื ืืืื ืืขืื ืืจืื ืืขืจ. ืืื ืงืึทื ืืื ืืืืืฉืึทื, ืืื ืคึผืืึทื ืฆื ืจืขืื ืืืขืื ืืืื ืืขืจืคืึทืจืื ื ืคืื ืืขืกืืื ื ืึท ืืืขืงืกื ืืื ืขืก ืืื ืึท ืจืื ืืื ืืืื ืกืืฃ ืืื ืึท ืืึทืืึทืืืืก ืึธืืขืจ ืืขืงืข ืกืืกืืขื ืืื ืื ืื ืืขืจืข.
ืืื ืืืื ืฆืืื. ืืื ืืึทื ืงืขื ืคึฟืึทืจ ืืืื ืืคืืขืจืงืืึทืืงืืึทื.
ืืงืืจ: www.habr.com