{"id":17645680,"url":"https://github.com/mderevyankoaqa/jmeter-csv-listener-plugin","last_synced_at":"2025-07-28T05:06:06.099Z","repository":{"id":37417720,"uuid":"456463796","full_name":"mderevyankoaqa/jmeter-csv-listener-plugin","owner":"mderevyankoaqa","description":"The goal of the project is to save JMeter Sampler data to CSV like file with detailed information for the debugging purposes.","archived":false,"fork":false,"pushed_at":"2024-08-08T15:30:03.000Z","size":204,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-07T03:47:25.568Z","etag":null,"topics":["csv","jmeter","performance"],"latest_commit_sha":null,"homepage":"https://github.com/mderevyankoaqa/jmeter-csv-listener-plugin","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mderevyankoaqa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-07T10:46:02.000Z","updated_at":"2025-04-14T13:42:41.000Z","dependencies_parsed_at":"2024-10-23T14:00:42.214Z","dependency_job_id":null,"html_url":"https://github.com/mderevyankoaqa/jmeter-csv-listener-plugin","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mderevyankoaqa%2Fjmeter-csv-listener-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mderevyankoaqa%2Fjmeter-csv-listener-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mderevyankoaqa%2Fjmeter-csv-listener-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mderevyankoaqa%2Fjmeter-csv-listener-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mderevyankoaqa","download_url":"https://codeload.github.com/mderevyankoaqa/jmeter-csv-listener-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252810275,"owners_count":21807759,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","jmeter","performance"],"created_at":"2024-10-23T10:58:21.867Z","updated_at":"2025-05-07T03:47:41.324Z","avatar_url":"https://github.com/mderevyankoaqa.png","language":"Java","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=H8L62WL5HVD32","https://www.buymeacoffee.com/mvderevyanko"],"categories":[],"sub_categories":[],"readme":"# JMeter CSV listener plugin\n\n ![](img/logo.png) \n\n\n\u003cp align=\"left\"\u003e\n\u003cimg src=\"https://img.shields.io/github/license/mderevyankoaqa/jmeter-csv-listener-plugin?style=plastic\"\u003e\n\u003cimg src =\"https://img.shields.io/github/v/release/mderevyankoaqa/jmeter-csv-listener-plugin?style=plastic\"\u003e\n\u003cimg src=\"https://img.shields.io/maven-central/v/io.github.mderevyankoaqa/jmeter-plugins-csv-listener?style=plastic\"\u003e\n\u003cimg src=\"https://img.shields.io/github/downloads/mderevyankoaqa/jmeter-csv-listener-plugin/total?style=plastic\"\u003e\n\u003cimg src=\"https://img.shields.io/github/stars/mderevyankoaqa/jmeter-csv-listener-plugin?style=plastic\u0026color=gold\"\u003e\n\n\u003c/p\u003e\n\n\u003ch3\u003e \n\u003cdetails\u003e\n\u003csummary\u003eSupport my Ukrainian Family ❤️\n\u003c/summary\u003e\n \u003ca href=\"https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=H8L62WL5HVD32\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/stefan-niedermann/paypal-donate-button/master/paypal-donate-button.png\" alt=\"Donate with PayPal\" /\u003e\n\u003c/a\u003e\n\u003c/details\u003e\n\u003c/h3\u003e \n\n\u003ch3\u003e\n\u003cdetails\u003e\n\u003csummary\u003eLike what you see? 😍 \u003c/summary\u003e\n\u003cbr\u003e\n   \u003ca href=\"https://www.buymeacoffee.com/mvderevyanko\"\u003e\n      \u003cimg alt=\"Coffee2\" src=\"https://raw.githubusercontent.com/mderevyankoaqa/jmeter-elk/main/img/Coffee2.png\"  width=\"150\"\u003e\n\n\u003c/a\u003e\n\u003c/details\u003e\n\u003c/h3\u003e\n\n## Description\nThe goal of the project is to save data to CSV like file with detailed information for the debugging purposes. In the CSV file you can expect to see time of the event with the following.\n\nThe details of the request:\n* Name;\n* URL;\n* Headers;\n* Request data.\n\nThe details of the response:\n* Code;\n* Response time;\n* Headers;\t\n* Body;\n* Assertion message. \n\nClick [here](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/mderevyankoaqa/jmeter-csv-listener-plugin/tree/main/samplers/ExtraLogs.csv) to see an example of the result CSV file.\n  \nSo in the result of the test its possible to have the standard JMeter HTML report and CSV like file with failed or failed/successful requests details.\n\n## Compatibility\nThe supported versions:\n* Java 11 - make sure that you have it (its minimum version).\n* JMeter 5.6.3 only.\n\n## Maven Support\nPlease see the latest release here https://search.maven.org/artifact/io.github.mderevyankoaqa/jmeter-plugins-csv-listener.\n\n## CI/CD Support\nThe CI/CD can be done using [jmeter-maven-plugin](https://github.com/jmeter-maven-plugin/jmeter-maven-plugin)\nThe example of the adding plugin to the project with the jmeter-maven:\n\n          \u003cconfiguration\u003e\n                \u003cjmeterExtensions\u003e\n                  \u003cartifact\u003eio.github.mderevyankoaqa:jmeter-plugins-csv-listener:1.4\u003c/artifact\u003e\n                \u003c/jmeterExtensions\u003e\n            \u003c/configuration\u003e\nSome notes cab be found in the article [Adding jar's to the /lib/ext directory](https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Adding-Excluding-libraries-to-from-the-classpath).\n\n\n## Deployment\n* Put `jmeter-plugin-csv-listener-\u003cversion\u003e-all.jar` file from [Releases](https://github.com/mderevyankoaqa/jmeter-csv-listener-plugin/releases) to `~\u003cJmeterPath\u003c\\lib\\ext`;\n\n  Note: \"jar\" (recommended) or \"shadowJar\" gradle tasks can be used to create the package for the JMeter.\n  \n  ![](img/deploy1.png)\n\n* Run JMeter and select the test plan, Add-\u003e Listener -\u003e Backend Listener.\n\n  ![](img/deploy2.png)\n\n* Select from the dropdown item with the name '`io.github.mderevyankoaqa.csv.results.writer.CsvBackendListenerClient`'.\n\n  ![](img/deploy3.png)\n\n## Plugin configuration\n\n  ![](img/deploy4.png)\n\nLet’s explain the plugin fields:\n* `filePath` - the path to save the recorded data. \n  Notes: Can be set like this `${__P(errorLogsPath, ${__BeanShell(import org.apache.jmeter.services.FileServer; FileServer.getFileServer().getBaseDir();)}/ExtraLogs.csv)}` - allows JMeter generates the file near executed jmx.\n* `timeZoneId` - the time zone Id to save the time in the specific time zone, the default is UTC; the full list of the supported zones here - https://en.wikipedia.org/wiki/List_of_tz_database_time_zones, the column \"TZ database name\".\n* `timeFormat` - the format to save the event id.\n* `csvSeparator` - the separator between the words; the default is \"|\". Since the requests, and the responses may have chars like this \",\" or \";\" that way the not standard delimiter has been used.\n* `isRecordSubSamplers` - allows to save the JMeter sub samples if set to 'true'.\n* `isRecordSuccessfulResults` - allows to record the successful results. For example this option can be used to store the data from the functional tests. \n* `isUseRegexForSamplerList` - allows to use the regexps if set to 'true'.\n* `batchSize` - the max size of the batch with metrics, the default 2000 (2000 items of JMeter results).\n* `flushInterval` - its interval to save data on the disc, the default value is 10000 (10 seconds).\n\n## Sending metrics performance tuning\nThe plugin writes batch with JMeter results each 10 seconds (by default settings). In the logs you will see records like this:\n`INFO o.m.j.c.r.w.CsvBackendListenerClient: Data has been written successfully, batch with size is --\u003e 8, elapsed time is --\u003e 2 ms\n` (the elapsed time is the response time of the batch importing.) So you can control the flush interval depends on the load you have and adjust `influxDBFlushInterval` setting. Is not recommended having less 1 second.  \nMax batch protection -\u003e send data when batch max size is occurred. For example, when batch size is 2000 items (it's the default setting of `batchSize`) plugin writes that batch, even when flush interval was not occurred.\nUsing both options you can tune data writing and have optimal performance.\n\nMake sure you have enough ram to aggregate huge batch and optimal flush period.\n\n## Recommendations\nThere are capabilities to save all data (request/response) - when the option `isRecordSuccessfulResults` is set to `true` (the default value is `false`) - this combination can be used only for the functional tests.\nThe certain idea is to save only failed responses while the load test and then address to the development team the list with failures (in this case we need to set the option `isRecordSuccessfulResults` to `false`). So in the result of the test its possible to have the standard JMeter HTML report and CSV like file with failed requests.\nThe output can be used to save data to ELK stack as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmderevyankoaqa%2Fjmeter-csv-listener-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmderevyankoaqa%2Fjmeter-csv-listener-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmderevyankoaqa%2Fjmeter-csv-listener-plugin/lists"}