Im Moment mache ich eine große Menge an Datenverarbeitung, wenn nicht Big Data. Die Verarbeitung großer Datenmengen ist in der Häufigkeit begrenzt, mit der sie pro Tag getestet werden können
Ich möchte diese Umgebung auch in meinem Haus. Ich habe mich gefragt, ob ich mit jMeter etwas anfangen kann. habe es gerade geschafft.
JMeter ist eine multifunktionale und leistungsstarke App zum Senden von Anfragen. Standardmäßig gibt es keine "Funktion, die CSV in JSON konvertiert".
Wenn Sie jedoch das Skript ausführen, wenn Sie "** BeanPreProcesser **" senden, Es gibt eine Funktion, die auf verschiedene Arten gesteuert werden kann.
Mach das ungefähr.
Legen Sie die empfangende Variable in der HTTP-Anforderung fest
Verwenden Sie Bean PreProcessor, um eine JSON-Zeichenfolge zu erstellen und der empfangenden Variablen zuzuweisen
・ HTTP-Anfrage mit jMeter senden
Stellen Sie zunächst die Einstellungen für die HTTP-Anforderungsübertragung normal ein. Erstellen Sie einen HTTP-Header-Manager. Setzen Sie den Inhaltstyp auf ** application / json **
Geben Sie normalerweise zuerst die Zieladresse auf dem Zielserver oder -pfad ein.
Fügen Sie dann "** Variable zum Speichern des Ergebnisses des Skripts **" in die Anforderung ein Diesmal habe ich es ** $ {post_data} ** genannt
Klicken Sie dann mit der rechten Maustaste, um einen BeanPreProcessor und eine JSON-Zeichenfolge zu erstellen.
BeanPreProcessor ist in Java geschrieben. Wenn Sie daran gewöhnt sind, ist es einfach zu bedienen. Es scheint, dass JSON-Serialisierung und -Deserialisierung auch durch Laden der Bibliothek in jMeter ヾ (.> ﹏ <.) ノ ✧ * möglich sind.
Der Verarbeitungsinhalt ist wie Sie sehen können. Durchlaufen Sie CSV Zeile für Zeile
request.json
"CSV-Liste":[{
"Hogehoge":"CSV 1. Spalte"
"irgendwie":"CSV 2. Spalte"
"foo":"CSV 3. Spalte"
}
{
"Hogehoge":"CSV 1. Spalte"
"irgendwie":"CSV 2. Spalte"
"foo":"CSV 3. Spalte"
}]
...
Machen Sie einen JSON wie diesen!
BeanShellPreProcessor.java
//▼-----------Die BeanPreProcessor-Verarbeitung wurde gestartet-------------▼
log.info("BeanShell PreProcessor start");
StringBuilder requestBody = new StringBuilder();
//Starten Sie JSON
requestBody.append("{\r\n");
//Zeilenumbrüche werden auch richtig wiedergegeben ヾ(¡>﹏<¡)Nein ✧*。
//Erstellen Sie ein Listenobjekt
requestBody.append("\"requestCSV\":[\r\n");
//CSV-Datei lesen
BufferedReader reader = new BufferedReader(new FileReader(new File("C:\\csvFileForBatche\\06YAMAGAcopied.CSV")));
String line;
//Schleife Zeile für Zeile
boolean secondLoopFlg = false;
while ((line = reader.readLine()) != null) {
//Teilen Sie die gelesene CSV durch Kommas
String[] params = line.split(",");
if(secondLoopFlg){
requestBody.append(",\r\n");
}
requestBody.append("{\r\n");
//Erstellen Sie CSV-Parameter für jedes Element
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");
//Objekt schließen
requestBody.append("}\r\n");
secondLoopFlg = true;
}
//Schließen Sie das JSON-Objekt
requestBody.append("]\r\n");
requestBody.append("}\r\n");
//Datei schließen
reader.close();
//Weisen Sie einer von der Anforderung vorbereiteten Variablen zu
vars.put("post_data", requestBody.toString());
// ▲-----------Die BeanPreProcessor-Verarbeitung wurde gestartet-------------▲
log.info("BeanShell PreProcessor start");
Ich werde tatsächlich eine Anfrage in diesem Zustand senden
Wir konnten CSV an 30.000 Anfragen senden. B.
Referenz 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