[JAVA] Créez votre propre échantillonneur avec JMeter

Contexte

Étape au hasard sur l'URL qui vient à GMail avec Jmeter. Je fabrique un outil appelé. Je ne comprends pas le comportement de MailReaderSampler ... imap ne fonctionne pas selon la référence. pop3 est connecté. Mais comment extraire le texte? Quelque chose comme ca. En particulier, image.png

Je suis imbriqué comme ça, et je ne sais pas comment prendre ce texte en post-traitement d'extraction d'expressions régulières. (Je ne sais pas comment me concentrer sur le premier résultat dans la couche inférieure)

Après tout, j'avais l'habitude de créer mon propre échantillonneur, alors faites votre propre échantillonneur. En cela.

J'ai oublié comment faire mon propre échantillonneur, alors j'ai quand même écrit un article.

version

apache-jmeter : 5.2.1 JRE : 1.8

Code d'échantillonneur

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 {

	//Définir les clés de paramètres
	private static final String MAIL_ADDRESS = "mailAddress";
	private static final String PASSWORD = "password";

	/* (non-Javadoc)
	 *Définir les paramètres par défaut
	 */
	@Override
	public Arguments getDefaultParameters() {
		//Définition des paramètres par défaut
		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 {
			//Obtenez les paramètres saisis dans JMeter
			String mail = context.getParameter(MAIL_ADDRESS);
			String password = context.getParameter(PASSWORD);

			//Mesure de l'heure de début(1)
			result.sampleStart();

			//Traitement arbitraire que vous souhaitez mesurer
			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("Chaîne de caractères japonais Chaîne de caractères\n");
			bulder.append("URL : https://github.com/");

			//Mesure du temps terminée(2)
			// (2) - (1)Le temps peut être obtenu comme temps de réponse de JMeter
			result.sampleEnd();

			//Acquisition réussie de JMeter
			result.setSuccessful(true);
			//Code de réponse OK JMeter(200)Mis à
			result.setResponseCodeOK();
			result.setRequestHeaders("this is RequestHeaders");
			result.setResponseData(bulder.toString(), "utf-8");

			//Ce mec ne semble apparaître nulle part
			result.setResponseMessage("this is ResponseMessage");

		} catch (Exception e) {
			//Mesure du temps terminée(2)
			// (2) - (1)Le temps peut être obtenu comme temps de réponse de JMeter
			result.sampleEnd();
			//Le résultat de l'acquisition JMeter échoue
			result.setSuccessful(false);
			//Code de réponse OK JMeter(200)Définir sur un nombre autre que
			result.setResponseCode("500");
			//Remplissez le contenu des données de réponse affichées par JMeter
			result.setResponseMessage("Error!! " + e.getMessage());
		}
		return result;
	}
}

Toutes les bibliothèques requises se trouvent sous le bac de jmeter.

Importer dans JMeter

Transformez le package ci-dessus en un bocal avec la fonction d'exportation d'Eclipse, etc. Placez-le simplement sous libs / ext de jmeter et redémarrez jmeter. Si votre code dépend d'un autre bocal que celui fourni avec jmeterlib depuis le début, Placez également ce pot dans le même dossier.

Image d'exécution

image.png

Utilisez les requêtes Java. Les classes qui héritent de AbstractJavaSamplerClient sont répertoriées dans la liste des noms de classe.

image.png

Le caractère spécifié dans result.setResponseData est affiché dans ResponseBody.

référence

https://qiita.com/kiida/items/6af3e46e5bae14c38242 C'est presque un pakuri rond pour référence. Je suis désolé.

PS

Vous pouvez l'obtenir normalement à partir de MailReaderSampler! S'il vous plaît laissez-moi savoir si vous avez des questions.

Recommended Posts

Créez votre propre échantillonneur avec JMeter
Faites votre propre pomodoro
Créez votre propre plugin Elasticsearch
Créez votre propre FW de persistance (Java)
Créez votre propre validateur avec Bean Validation
Ajoutez vos propres éléments d'authentification avec Spring Security
Créez votre propre utilitaire avec Thymeleaf avec Spring Boot
Appelez votre propre classe créée sous lib avec Rails
Test de charge avec JMeter
Appelez votre propre méthode avec PreAuthorize dans Spring Security
Enregistrez votre propre image Docker dans ECR à l'aide de l'AWS CLI
Créez votre propre serveur simple avec Java et comprenez HTTP
Java: démarrez WAS avec Docker et déployez votre propre application
Utilisez votre propre classe dans le répertoire lib avec Rails6
Les microservices avec DevOps apportent des modifications
Créez vos propres annotations Java
Affinez votre requête avec EXPLAIN
Créez votre propre clavier QMK dans Docker. Volume unique à Windows
Comment créer votre propre contrôleur correspondant à / error avec Spring Boot
Utilisez Heroku × Rails pour rediriger vers votre propre domaine avec rack-rewrite