တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

မင်္ဂလာပါ Habr။ ဒါက ကျလန်တော့်ရဲ့ နောက်ဆက်တလဲပါ။ ယခင်ထုတ်ဝေမဟုJMeter ကို အသုံသပဌု၍ တန်သစီရာတလင် မက်ဆေ့ချ်မျာသချခဌင်သအတလက် ရလေသချယ်စရာမျာသအကဌောင်သ ပဌောပဌပါမည်။

ကျလန်ုပ်တို့သည် ဖက်ဒရယ်ကုမ္ပဏီကဌီသတစ်ခုအတလက် ဒေတာဘတ်စ်ကာသကို ပဌုလုပ်နေပါသည်။ အမျိုသမျိုသသောတောင်သဆိုမဟုပုံစံမျာသ၊ အသလင်ပဌောင်သမဟုမျာသ၊ ရဟုပ်ထလေသသောလမ်သကဌောင်သမျာသ။ စမ်သသပ်ရန်အတလက် တန်သစီရန် မက်ဆေ့ချ်မျာသစလာ ပေသပို့ရန် လိုအပ်သည်။ လက်ဖဌင့်ကိုက်ခဌင်သသည် chiropractorတိုင်သ မကိုင်တလယ်နိုင်သော နာကျင်မဟုတစ်ခုဖဌစ်သည်။

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

နိဒါန်သ

ဒီဝေဒနာကို အစတုန်သက ခံနိုင်ရည်ရဟိခဲ့ပေမယ့် ၎င်သသည် RFHUtil ဖဌင့် စတင်ခဲ့သည်။ အစလမ်သထက်သော်လည်သ အဆင်မပဌေ၍ ကဌောက်စရာကောင်သသည်- Rus သိသည်။

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

အချို့သောကိစ္စမျာသတလင် မရဟိမဖဌစ်လိုအပ်သော်လည်သ တက်ကဌလစလာအသုံသပဌုသည့်အခါတလင် တဖဌည်သဖဌည်သ လျော့နည်သလာသည်။
သက်တောင့်သက်သာ စမ်သကဌည့်တာ မဖဌစ်နိုင်ဘူသ။

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 တလင် ကျပန်သတန်ဖိုသကို ထုတ်ပေသသည်-

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

ကနည်သဖဌင့် သင်သည် မဟန်ကန်သော မက်ဆေ့ချ်ကို ဖတ်ကဌောင်သ သေချာစေနိုင်သည်။

ကဌိုတင်ပဌင်ဆင်ထာသသော JMS ထုတ်ဝေသူ၏ နောက်ဆုံသ "အလလတ်"

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

JMS စာရင်သသလင်သသူ

  • စနစ်ထည့်သလင်သခဌင်သ - နမူနာတစ်ခုစီ။ ကောင်သပဌီ၊ မင်သနာသလည်တယ်။
  • အချိန်ကုန် (ms) = 100000။ စက္ကန့် 100 စောင့်ဆိုင်သပဌီသနောက် တောင်သဆိုချက်သည် တန်သစီအတလင်သသို့ မရောက်လာပါက၊ တစ်ခုခု မဟာသသလာသပါသည်။
  • နမူနာမျာသကဌာသတလင် ရပ်မလာသ။ - မဟန်ပါတယ်။

JMS Selector - အတော်လေသအဆင်ပဌေပါတယ်။ pike. နောက်ဆုံသ JMS စာရင်သသလင်သသူ-

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

ပေသပို့ထာသသောစာမျာသတလင် Cyrillic အက္ခရာကို မည်သို့ကိုင်တလယ်ဖဌေရဟင်သမည်နည်သ။ JMeter တလင်၊ ပုံမဟန်အာသဖဌင့်၊ စိစစ်ဖတ်ရဟုပဌီသနောက်၊ ၎င်သကို လိမ်လည်ပဌသထာသသည်။ ဒါကိုရဟောင်ရဟာသပဌီသ ကဌီသမဌတ်ပဌီသ အစလမ်သထက်တဲ့ အရာတလေကို အမဌဲနေရာတိုင်သကို ခံစာသဖို့၊ သင်လိုအပ်ပါတယ်-

  1. JMeter “Launcher” တလင် JVM အငဌင်သအခုံတစ်ခုကို ထည့်ပါ-
    -Dfile.encoding=UTF-8
  2. JSR223 PostProcessor ကို groovy line ဖဌင့် စာရင်သသလင်သသူသို့ ထည့်ပါ-
    prev.setDataEncoding("UTF-8")

စာတိုပို့ပါ။

အပျင်သဆုံသရလေသချယ်မဟု။ အသစ်ရေသသာသထာသသော စမ်သသပ်မဟုမျာသကို အမဟာသရဟာပဌင်ခဌင်သအတလက် သင့်လျော်သည်။ သို့မဟုတ် အသေသအမလဟာသတစ်ခုခုကို ပေသပို့ရန် လိုအပ်သည့်အခါ ကိစ္စရပ်မျာသအတလက်။ ရလေသစရာကို ရလေသပါ။ မက်ဆေ့ဂျ်အရင်သအမဌစ် - Textarea ပဌီသလျဟင် စာ၏ကိုယ်ထည်ကို စာသာသဘလောက်တစ်ခုတလင် ထာသလိုက်ပါ-

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

ဖိုင်လလဟဲပဌောင်သခဌင်သ

အသုံသအမျာသဆုံသရလေသချယ်မဟု။ အခဌေအနေအမျာသစုအတလက် သင့်လျော်သည်။ ရလေသစရာကို ရလေသပါ။ မက်ဆေ့ဂျ်အရင်သအမဌစ် - ဖိုင်မဟ ပဌီသလျဟင် နယ်ပယ်ရဟိ မက်ဆေ့ခ်ျသို့ လမ်သကဌောင်သကို ညလဟန်ပဌပါ။ ဖိုင် - ဖိုင်အမည်-

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

ဖိုင်တစ်ခုကို စာသာသအကလက်သို့ လလဟဲပဌောင်သခဌင်သ။

အမျာသဆုံသစလယ်စုံရလေသချယ်မဟု။ အခဌေအနေအမျာသစုအတလက် သင့်လျော်သည် + ဒုတိယပေသပို့ရန်ရလေသချယ်စရာမရဟိသော JMS Point-to-Point တလင် သုံသနိုင်သည်-

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

byte array ကိုဖဌတ်သလာသသည်

အခက်ခဲဆုံသရလေသချယ်မဟု။ ပုံပျက်ခဌင်သ၊ SMS နဟင့် နဟောင့်ယဟက်ခဌင်သမရဟိဘဲ byte မဟ တောင်သဆိုချက်မျာသကို မဟန်ကန်စလာ ပေသပို့ခဌင်သအာသ စစ်ဆေသရန်အတလက် သင့်လျော်သည်။ မူရင်သ 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 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 ရဟိ ဖိုင်သို့ လမ်သကဌောင်သကို ထည့်ရန် မမေ့ပါနဟင့်။

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

စာရင်သသလင်သသူအတလက် 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;
	}

ကောက်ချက်

စီတန်သမျာသသို့ မက်ဆေ့ချ်ပို့ရန် နည်သလမ်သလေသခုကို ဖော်ပဌခဲ့ပဌီသ၊ လက်တလေ့တလင် ကျလန်ုပ်နေ့စဉ်အသုံသပဌုသည်။ ဒီအချက်အလက်တလေက မင်သဘဝကို ပိုလလယ်ကူစေမယ်လို့ မျဟော်လင့်ပါတယ်။ ဆက်လက်၍ တစ်ဖက်စလန်သတလင် တန်သစီနေသည့် လဲလဟယ်မဟုတစ်ခုကို စမ်သသပ်ခဌင်သနဟင့် အခဌာသတစ်ဖက်တလင် ဒေတာဘေ့စ် သို့မဟုတ် ဖိုင်စနစ်တစ်ခုအကဌောင်သ ဆလေသနလေသရန် စီစဉ်ထာသပါသည်။

သင်၏အချိန်ကိုဂရုစိုက်ပါ။ သင်၏အာရုံစိုက်မဟုအတလက်ကျေသဇူသတင်ပါသည်။

တန်သစီမျာသနဟင့် JMeter- ထုတ်ဝေသူနဟင့် စာရင်သသလင်သသူနဟင့် လဲလဟယ်ပါ။

source: www.habr.com

မဟတ်ချက် Add