αα½ααααΈ α αΆα! αααααΆαααααααααααααααα»α
ααΎααααα»ααααααΎαα‘αΆααααα»ααα·αααααααααααΆαααααα»αα αα»ααα ααααααααααα½αα ααααααααααΎαααααα ααΆαααααααα ααΆααααααααααΌααααα»αααααΆαα αααααΆααααΆαααααΎααααα α’αααααααΌαααααΎααΆαααΆα αααΎααα ααΆαααα½αα αααααααΊααΆααΆαααΊα αΆααααααα·ααααααααα chiropractor α’αΆα αααααααΆαααΆαααα
ααα ααααΈααααΆα
αααααΈαααα»αααααΌαααααΆαααΉαααΆαααΊα αΆαααααααααΌααααααα ααΆααΆααα’ααααΆαα αΆααααααΎαααΆαα½α RFHUtil α ααΆαααΆααα ααα»αααααααα αα·ααα½αα±ααααααΆα α αααα αΎα α’αααααααΆαα Rus α
αα·αα’αΆα
ααααααΆααααα»αααααΈαααα ααα»ααααααΆαααΆαααα
α»αααΆααααΆαααααα»αααααΈααααΎααααΆαααααααα
ααΆαααααΎαααααααΆααααα½αααΊαα·αα’αΆα
αα
αα½α
ααααΆαα½αααΆα
ααΆαα½αααΉα JMeter α’αααΈααααααααΆαααΆαααΆααααααΆααααα½αα αααααΆααβααΈβααααΆααβααΆαβααααΌαβααβααΆαβααααΆααβααααΆα αα·αβαααΆαβααΉαβααΆ ααααΈβαααααΉαβααΆαβα αΆααβααααΎαβααβα‘αΎαβαααααΆααβααΆαβααααΎβαααααβααβααΈαααΆαα
αααα»αααααΎαααΆααααααααΌα JMS Publisher αα·α JMS Subscriber samplers α αα·αααΌα JMS Point-to-Point ααΌαααα αΆααααΌα ααΆααΆααααα½αααααΎααΆαα ααΆα§ααΆα ααα ααΆαα½α Subscriber αααα»α JMS Selector α’αααα’αΆα αααααΆααα’ααααα½α ααα»ααααααΆαα½αααΉα Point-to-Point α’ααααα·αα’αΆα (α¬αα·ααΈααΆαααααααααα·αα αααΆαααα)α
ααΆααααα αααααΌ
α’αααααααα»ααα JMS
- ααΆαααα‘αΎα - ααααΌααΈαα½ααα Apache
ααααΆα ααααΎαααααΎααααααααα·αααΎαα½α/αααααΆαααααααΌαααΆααααααΆααααΆααααα’αααα - αα»αααααα (ms) = 120000α αααα»αααααΈαααΆααα ααααΎααΆαααααααΉαααΆααααΈαα½ααααααΆααααΈ 2 ααΆααΈα
- ααααΎααααα
ααα
αΆααα·ααααα? - αα·αα αααα»αα αα»α IBM
α’αα»ααα ααααβααααβαααβααΆααΆβααΆαβααΌαβααΆαβαααααΆβαα»αβαααβα’αΆα βαα»αβα α·αααβααΆαβααβααΆαβαααβααΆαβαααααΌαβαααα»αβααααΉαααα·ααΆαααβααβααΆαβαααΆαααβααααΆααα αα·αααΆαααααΆααααααΌαααΏαααΆααα»ααα αααα»ααααααα·αααααα αααααΆαααααααααααΆααααα ααααΏαααΊααααΆααααΆαα
αα αααα»αααΆαααααα»αααααααΆαααΈαα½αα αααα»αααΆααααααααααααααααααα· jms αααα’αα·αα·ααααΉαααααΎαα αααα»α JMS Selector α αααααΆααααΆαααΆααααααΎααΈαα½αα αααααα αααααααααΌαααΆααααααΎααα αααα»αααΆαα»αααααΆαααΆααααααααΆαααΆααααααα’αααααααΎααααΆααα
αα·ααΈαααα’αααα’αΆα
ααααΆααααΆααΆαααααΉαααααΌαααααΌαααΆαα’αΆαα
"ααα" α α»ααααααααααα’αααααααα»ααα JMS αααααΆαααααααα ααΆααααααααααΆαα»αα
α’αααααΆα JMS
- ααΆαααα‘αΎα - ααααΌααΈαα½ααα α’ααα αΉαα’ααααααα αΎαα
- α’ααααα (ms) = 100000α ααααα·αααΎααααΎαα·αααααααααα»ααα½ααααααΆααααΈ 100 αα·ααΆααΈααααΆααααα αΆα αααααΆαα’αααΈαα½ααα»αααααααααΈα
- ααααααΆαααααΌ? - αα·αα
αααααα·ααΈααααΎαααΎα JMS - ααΆααααα½αααΆααα
αααααααααααΆαααΆαα½αα’αααααααα Cyrillic αα
αααα»αααΆααααααΆααααααΌαα αα
αααα»α JMeter ααΆαααααΆαααΎα αααααΆααααΈααΆαα’αΆααααααα»ααΆα ααΆααααΌαααΆααααα αΆααααΆαα
ααααα ααΎααααΈαααααΆααααα αΆααα αα·αααΈαααΆαααΆαα½αααΆαα’ααα
αΆααα αα·αααΆαα’αααΆα
ααΆαα·α
αα
αα·ααααααααΈαααααα α’αααααααΌαα
- ααααααα’αΆαα»ααααα JVM αα
JMeter βlauncherβα
-Dfile.encoding=UTF-8
- αααααα JSR223 PostProcessor αα
ααΆααα’αα·αα·αααααααΆααααααΆαα groovy:
prev.setDataEncoding("UTF-8")
ααααΎα’ααααα
αααααΎααααα·ααααα»αα αααααα·ααβαααααΆααβααΆαβααααΆααβααα α»αβααΆαβααααΎβαααααβαααβαααααβααααΈαα α¬αααααΆααααααΈαα ααααααα’αααααααΌαααΆαααααΎαααΆαα αα ααΆααα’αααΈαα½αααΌα α ααααΎαααΎααααααΎα αααααααΆα - Textarea α αΎαααΆαααα½ααααΆααααα»ααααα»αα’αααααα
αααααα―αααΆα
αααααΎαααΌαα αααα»αα ααΆααααααααΆααααααΆααΈαααΌααΆαα αααΎαα ααααΎαααΎααααααΎα αααααααΆα - ααΈα―αααΆα αα·αα ααα’α»ααααα αΆαααααΌααα ααΆααααΆααα αααα»αααΆα α―αααΆα - αααααα―αααΆαα
ααΆααααααα―αααΆααα ααΆαα’ααααα
αααααΎαα αααα»ααααα»αα ααΆααααααααΆααααααΆααΈαααΌααΆαα αααΎα + α’αΆα ααααΎαααα»α JMS Point-to-Point ααααα·αααΆααααααΎαααααΎααΈααΈαα
ααααααΆααα’αΆαααα
αααααΎααα·ααΆααααα»αα αααααα·ααβαααααΆααβααΆαβαα·αα·αααβααΎαβααΆαβαααααΌαβααααΎβαααβααΆαβααΆαβααααΉαβααααΌαβα
α»αβαααααβαα
βαα αααβααααΆαβααΆαβαααααΌα
βαααααααααΆα 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 αααααΆααα’αα·αα·αα - αααααααααααααααααΆαα½αααΉαα’ααααααααααααααα»ααα½αααααα’αααααα½α:
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