En ce moment, je fais beaucoup de traitement de données, sinon du big data. Le traitement de données volumineuses est limité dans le nombre de fois qu'elles peuvent être testées par jour
Je veux cet environnement même dans ma maison, je me suis demandé si je pouvais faire quelque chose avec jMeter. vient de le faire.
JMeter est une application d'envoi de requêtes multifonctionnelle et performante, Par défaut, il n'y a pas de "fonction qui convertit CSV en JSON".
Cependant, en exécutant le script lors de l'envoi de "** BeanPreProcesser **", Il existe une fonction qui peut être contrôlée de différentes manières.
Faites approximativement ceci. -Définir la variable de réception dans la requête HTTP
-Utilisez Bean PreProcessor pour créer une chaîne JSON et l'assigner à la variable de réception
・ Envoyer une requête HTTP avec jMeter
Tout d'abord, définissez normalement les paramètres de transmission des requêtes HTTP. Créez un gestionnaire d'en-tête HTTP, Définissez Content-Type sur ** application / json **
Tout d'abord, entrez normalement l'adresse cible dans le serveur ou le chemin cible.
Ensuite, mettez "** variable pour stocker le résultat du script **" dans la requête Cette fois, je l'ai nommé ** $ {post_data} **
Cliquez ensuite avec le bouton droit pour créer un BeanPreProcessor et créer une chaîne JSON.
BeanPreProcessor est écrit en Java, donc si vous y êtes habitué, il est facile à utiliser. Il semble que la sérialisation et la désérialisation JSON soient également possibles en chargeant la bibliothèque dans jMeter ヾ (.> ﹏ <.) ノ ✧ *.
Le contenu du traitement est comme vous pouvez le voir. Boucle à travers CSV ligne par ligne
request.json
"liste csv":[{
"Hogehoge":"CSV 1ère colonne"
"en quelque sorte":"CSV 2e colonne"
"foo":"CSV 3e colonne"
}
{
"Hogehoge":"CSV 1ère colonne"
"en quelque sorte":"CSV 2e colonne"
"foo":"CSV 3e colonne"
}]
...
Créez un JSON comme celui-ci!
BeanShellPreProcessor.java
//▼-----------Le traitement BeanPreProcessor a démarré-------------▼
log.info("BeanShell PreProcessor start");
StringBuilder requestBody = new StringBuilder();
//Faire un démarrage JSON
requestBody.append("{\r\n");
//Les sauts de ligne sont également reflétés correctement ヾ(¡>﹏<¡)Non ✧*。
//Commencer à créer un objet de liste
requestBody.append("\"requestCSV\":[\r\n");
//Lire le fichier CSV
BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\csvFileForBatche\\06YAMAGAcopied.CSV")));
String line;
//Boucle ligne par ligne
boolean secondLoopFlg = false;
while ((line = reader.readLine()) != null) {
//Divisez le CSV lu par des virgules
String[] params = line.split(",");
if(secondLoopFlg){
requestBody.append(",\r\n");
}
requestBody.append("{\r\n");
//Créer des paramètres CSV pour chaque élément
requestBody.append("\"countryPublicOrgCd\":\"").append(params[0]).append("\",\r\n");
requestBody.append("\"zipcodePare\":").append(params[1]).append(",\r\n");
requestBody.append("\"zipcode\":").append(params[2]).append(",\r\n");
requestBody.append("\"prefNameKana\":").append(params[3]).append(",\r\n");
requestBody.append("\"cityNameKana\":").append(params[4]).append(",\r\n");
requestBody.append("\"streetNameKana\":").append(params[5]).append(",\r\n");
requestBody.append("\"prefNameKanji\":").append(params[6]).append(",\r\n");
requestBody.append("\"cityNameKanji\":").append(params[7]).append(",\r\n");
requestBody.append("\"streetNameKanji\":").append(params[8]).append(",\r\n");
requestBody.append("\"var1\": \"").append(params[9]).append("\",\r\n");
requestBody.append("\"var2\": \"").append(params[10]).append("\",\r\n");
requestBody.append("\"var3\": \"").append(params[11]).append("\",\r\n");
requestBody.append("\"var4\": \"").append(params[12]).append("\",\r\n");
requestBody.append("\"var5\": \"").append(params[13]).append("\",\r\n");
requestBody.append("\"var6\": \"").append(params[14]).append("\"\r\n");
//Fermer l'objet
requestBody.append("}\r\n");
secondLoopFlg = true;
}
//Fermer l'objet JSON
requestBody.append("]\r\n");
requestBody.append("}\r\n");
//Fermer le fichier
reader.close();
//Affecter à une variable préparée par la requête
vars.put("post_data", requestBody.toString());
// ▲-----------Le traitement BeanPreProcessor a démarré-------------▲
log.info("BeanShell PreProcessor start");
J'enverrai effectivement une demande dans cet état
Nous avons pu envoyer du CSV à 30000 demandes b
référence Sending Complete JSON Data from the CSV file in one request in JMeter https://stackoverflow.com/questions/32628934/sending-complete-json-data-from-the-csv-file-in-one-request-in-jmeter
receiving json and deserializing as List of object at spring mvc controller https://stackoverflow.com/questions/23012841/receiving-json-and-deserializing-as-list-of-object-at-spring-mvc-controller
Recommended Posts