JMeter로 샘플링 만들기

10382 단어 JMeterJava

배경


GMail의 URL을 Jmeter로 직접 밟습니다.이런 도구를 만들고 있습니다.
저는 Mail Reader Sampler의 행동을 잘 몰라요.
imap는 참고자료로 해도 연결이 안 돼요.
pop3 연결.그런데 본문은 어떻게 추출합니까?이렇게
구체적으로 말하면

이런 느낌으로 끼워져 있어서 뒷처리의 정규 표현식 추출 등 이 본문을 취하는 방법을 모른다
(최하층의 첫 번째 저장물에 초점을 맞추는 방법을 모른다)
결과적으로 이전에 샘플링을 자제한 적이 있기 때문에 샘플링을 자제했다.
그럼
샘플링 자제 방법도 상당히 잊어버렸어요. 어차피 보도할 거예요.

버전


apache-jmeter : 5.2.1
JRE : 1.8

샘플러 코드


DemoSampler.java
package jmeter.extend.sampler;

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

public class DemoSampler extends AbstractJavaSamplerClient {

    // パラメータのキーを定義
    private static final String MAIL_ADDRESS = "mailAddress";
    private static final String PASSWORD = "password";

    /* (non-Javadoc)
     * デフォルトのパラメータを設定する
     */
    @Override
    public Arguments getDefaultParameters() {
        // デフォルトパラメータの設定
        Arguments defaultParameters = new Arguments();
        defaultParameters.addArgument(MAIL_ADDRESS, "[email protected]");
        defaultParameters.addArgument(PASSWORD, "input your password");
        return defaultParameters;
    }

    @Override
    public SampleResult runTest(JavaSamplerContext context) {
        SampleResult result = new SampleResult();
        try {
            // JMeterで入力されたパラメーターをもらう
            String mail = context.getParameter(MAIL_ADDRESS);
            String password = context.getParameter(PASSWORD);

            // 時間計測開始(1)
            result.sampleStart();

            // 計測したい任意の処理
            Thread.sleep(500);

            StringBuilder bulder = new StringBuilder();
            bulder.append("this is ResponseData\n");
            bulder.append("mail : ").append(mail).append("\n");
            bulder.append("password : ").append(password).append("\n");
            bulder.append("日本語文字列文字列\n");
            bulder.append("URL : https://github.com/");

            // 時間計測終了(2)
            // (2) - (1) の時間がJMeterのレスポンスタイムとして取得できる
            result.sampleEnd();

            // JMeterの取得結果を成功にする
            result.setSuccessful(true);
            // JMeterのレスポンスコードをOK(200)に設定する
            result.setResponseCodeOK();
            result.setRequestHeaders("this is RequestHeaders");
            result.setResponseData(bulder.toString(), "utf-8");

            //こいつはどこにも出ないっぽい
            result.setResponseMessage("this is ResponseMessage");

        } catch (Exception e) {
            // 時間計測終了(2)
            // (2) - (1) の時間がJMeterのレスポンスタイムとして取得できる
            result.sampleEnd();
            // JMeterの取得結果を失敗にする
            result.setSuccessful(false);
            // JMeterのレスポンスコードをOK(200)以外の数字に設定する
            result.setResponseCode("500");
            // JMeterで表示されるレスポンスデータの中身を詰める
            result.setResponseMessage("Error!! " + e.getMessage());
        }
        return result;
    }
}

필요한 라이브러리는 모두 jmeter의bin 아래에 있습니다.

JMeter의 import로


Eclipse의 export 기능 등을 통해 상기 패키지를jar로 설정
jmeter의libs/ext 산하에서 jmeter를 설정하고 다시 시작하기만 하면 됩니다.
하면, 만약, 만약...
그jar도 같은 폴더에 넣었어요.

실행 이미지



Java 요청을 사용합니다.
클래스 이름 목록에는 AbstractJavaSamplerClient를 상속하는 클래스가 포함됩니다.

result.setResponseData에 지정된 문자가 ResponseBody에 표시됩니다.

참고 자료


https://qiita.com/kiida/items/6af3e46e5bae14c38242
참고라기보다는 거의 표절이다.미안합니다.

추가


메일 리더 샘플러에서 제대로 받을 수 있어요!이런 사람이 있으면 꼭 알려주세요.

좋은 웹페이지 즐겨찾기