CINXE.COM
JMeterFAQ - Apache JMeter - Apache Software Foundation
<!DOCTYPE html> <html lang="en-GB" > <head> <title>JMeterFAQ - Apache JMeter - Apache Software Foundation</title> <meta http-equiv="X-UA-Compatible" content="IE=EDGE,chrome=IE7"> <meta charset="UTF-8"> <meta id="confluence-context-path" name="confluence-context-path" content="/confluence"> <meta id="confluence-base-url" name="confluence-base-url" content="https://cwiki.apache.org/confluence"> <meta id="atlassian-token" name="atlassian-token" content="2f22939d55fc556d34f012bb945ac475e77b00f6"> <meta id="confluence-space-key" name="confluence-space-key" content="JMETER"> <script type="text/javascript"> var contextPath = '/confluence'; </script> <meta name="confluence-request-time" content="1732437631637"> <meta name="ajs-use-keyboard-shortcuts" content="true"> <meta name="ajs-com.comalatech.checklists-stats-friendApps" content="sr-rep" /><meta name="ajs-com.comalatech.checklists-stats-comalatechToken" content="3ALIy+zRC0YTbAJC5aiFwT7BIgZPmjdWhzruoOlzFcfzJUgr6xmoBO7zDYiwFAxS5Zwe1paUiDntel3ahqN424k/1B9g3BUAFcEzmjjtsjQYxVvuQC5Gn3qyWuyf/N7nw3rh00+EsIJpdq8lg20me352CsuB963jge0mk//UWUHuHmm7LKgsf4FpIik7jE9pxBP2K8s1DTYSuK3VBITHx/L3jkRmmGG5pHERDzOX4/6fx1PwJTg92Vg34noStLka3qhcrTzvrirtCksdG8bPSLbgwnXYXWNMHitDjfGs4SlRkEkN/id+RztJ/xPL7T7EI5fA/O9cf34Uz9gA8OU4wQ==" /><meta name="ajs-com.comalatech.checklists-stats-pluginLicenseType" content="PAID" /><meta name="ajs-com.comalatech.checklists-stats-licenseType" content="OPEN_SOURCE" /><meta name="ajs-com.comalatech.checklists-stats-checklistExcerptMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-timestamp" content="1732413600031" /><meta name="ajs-com.comalatech.checklists-stats-checklistAttributeMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-dev-mode" content="false" /><meta name="ajs-com.comalatech.checklists-trace" content="false" /><meta name="ajs-com.comalatech.checklists-stats-checklistLogMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistWikiinputMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistLabelMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-licenseSize" content="10000" /><meta name="ajs-com.comalatech.checklists-stats-checklistWikiMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-instanceId" content="782e50b8e4252e986d61834beb7b94ab" /><meta name="ajs-com.comalatech.checklists-stats-checklistMetadataMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistPagelinkMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistSelectMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistMacroTotal" content="1" /><meta name="ajs-com.comalatech.checklists-stats-totalSpaces" content="444" /><meta name="ajs-com.comalatech.checklists-stats-app" content="chks" /><meta name="ajs-com.comalatech.checklists-stats-checklistInputMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-checklistIncludeMacroTotal" content="0" /><meta name="ajs-com.comalatech.checklists-stats-hostVersion" content="7.19.28" /><meta name="ajs-com.comalatech.checklists-stats-totalVersions" content="1010453" /><meta name="ajs-com.comalatech.checklists-stats-totalPages" content="251553" /><meta name="ajs-com.comalatech.checklists-stats-version" content="2.6.13" /><meta name="ajs-com.comalatech.checklists-stats-pluginLicenseSize" content="0" /> <meta name="ajs-is-confluence-admin" content="false"> <meta name="ajs-connection-timeout" content="10000"> <script type="text/x-template" title="gliffy-webpanel-footer"> <div class="gliffy-webpanel-footer"><span>This Confluence installation runs a Free Gliffy License - Evaluate the <a href="http://www.gliffy.com/products/confluence-plugin/">Gliffy Confluence Plugin</a> for your Wiki!</span></div> </script> <style>.ia-fixed-sidebar, .ia-splitter-left {width: 285px;}.theme-default .ia-splitter #main {margin-left: 285px;}.ia-fixed-sidebar {visibility: hidden;}</style> <meta name="ajs-discovered-plugin-features" content="$discoveredList"> <meta name="ajs-keyboardshortcut-hash" content="d431e910a3cbb36558de182580295323"> <meta name="ajs-page-title" content="JMeterFAQ"> <meta name="ajs-latest-published-page-title" content="JMeterFAQ"> <meta name="ajs-space-name" content="Apache JMeter"> <meta name="ajs-page-id" content="119548502"> <meta name="ajs-latest-page-id" content="119548502"> <meta name="ajs-content-type" content="page"> <meta name="ajs-parent-page-title" content="Home"> <meta name="ajs-parent-page-id" content="119547985"> <meta name="ajs-space-key" content="JMETER"> <meta name="ajs-max-number-editors" content="12"> <meta name="ajs-macro-placeholder-timeout" content="5000"> <meta name="ajs-jira-metadata-count" content="-1"> <meta name="ajs-from-page-title" content=""> <meta name="ajs-can-remove-page" content="false"> <meta name="ajs-can-remove-page-hierarchy" content="false"> <meta name="ajs-browse-page-tree-mode" content="view"> <meta name="ajs-shared-drafts" content="true"> <meta name="ajs-context-path" content="/confluence"> <meta name="ajs-base-url" content="https://cwiki.apache.org/confluence"> <meta name="ajs-version-number" content="7.19.28"> <meta name="ajs-build-number" content="8804"> <meta name="ajs-remote-user" content=""> <meta name="ajs-remote-user-key" content=""> <meta name="ajs-remote-user-has-licensed-access" content="false"> <meta name="ajs-remote-user-has-browse-users-permission" content="false"> <meta name="ajs-current-user-fullname" content=""> <meta name="ajs-current-user-avatar-url" content=""> <meta name="ajs-current-user-avatar-uri-reference" content="/confluence/images/icons/profilepics/anonymous.svg"> <meta name="ajs-static-resource-url-prefix" content="/confluence/s/k3pg1j/8804/noax5f/_"> <meta name="ajs-global-settings-attachment-max-size" content="20971520"> <meta name="ajs-global-settings-quick-search-enabled" content="true"> <meta name="ajs-user-locale" content="en_GB"> <meta name="ajs-user-timezone-offset" content="0"> <meta name="ajs-enabled-dark-features" content="site-wide.shared-drafts,site-wide.synchrony,migration-assistant.enable.assess-l1-cloud-tooling.feature,clc.quick.create,confluence.view.edit.transition,cql.search.screen,confluence-inline-comments-resolved,frontend.editor.v4,http.session.registrar,nps.survey.inline.dialog,confluence.efi.onboarding.new.templates,frontend.editor.v4.compatibility,atlassian.cdn.static.assets,pdf-preview,previews.sharing,previews.versions,file-annotations,confluence.efi.onboarding.rich.space.content,collaborative-audit-log,confluence.reindex.improvements,previews.conversion-service,editor.ajax.save,read.only.mode,graphql,previews.trigger-all-file-types,attachment.extracted.text.extractor,lucene.caching.filter,confluence.table.resizable,notification.batch,previews.sharing.pushstate,confluence-inline-comments-rich-editor,tc.tacca.dacca,site-wide.synchrony.opt-in,atlassian.webresource.twophase.js.i18n.disabled,confluence.denormalisedpermissions,file-annotations.likes,gatekeeper-ui-v2,v2.content.name.searcher,mobile.supported.version,confluence.editor.tinymce.tables,pulp,confluence-inline-comments,confluence-inline-comments-dangling-comment,quick-reload-inline-comments-flags,confluence.retention.rules"> <meta name="ajs-atl-token" content="2f22939d55fc556d34f012bb945ac475e77b00f6"> <meta name="ajs-confluence-flavour" content="VANILLA"> <meta name="ajs-user-date-pattern" content="dd MMM yyyy"> <meta name="ajs-access-mode" content="READ_WRITE"> <meta name="ajs-render-mode" content="READ_WRITE"> <meta name="ajs-date.format" content="MMM dd, yyyy"> <link rel="shortcut icon" href="/confluence/s/mdjd5z/8804/noax5f/1/_/favicon.ico"> <link rel="icon" type="image/x-icon" href="/confluence/s/mdjd5z/8804/noax5f/1/_/favicon.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/confluence/opensearch/osd.action" title="Apache Software Foundation"/> <meta name="ajs-create-issue-metadata-show-discovery" content="false"> <script> window.WRM=window.WRM||{};window.WRM._unparsedData=window.WRM._unparsedData||{};window.WRM._unparsedErrors=window.WRM._unparsedErrors||{}; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.entity-types"]="{\u0022singular\u0022:{\u0022refapp.charlie\u0022:\u0022Charlie\u0022,\u0022fecru.project\u0022:\u0022Crucible Project\u0022,\u0022fecru.repository\u0022:\u0022FishEye Repository\u0022,\u0022stash.project\u0022:\u0022Stash Project\u0022,\u0022generic.entity\u0022:\u0022Generic Project\u0022,\u0022confluence.space\u0022:\u0022Confluence Space\u0022,\u0022bamboo.project\u0022:\u0022Bamboo Project\u0022,\u0022jira.project\u0022:\u0022Jira Project\u0022},\u0022plural\u0022:{\u0022refapp.charlie\u0022:\u0022Charlies\u0022,\u0022fecru.project\u0022:\u0022Crucible Projects\u0022,\u0022fecru.repository\u0022:\u0022FishEye Repositories\u0022,\u0022stash.project\u0022:\u0022Stash Projects\u0022,\u0022generic.entity\u0022:\u0022Generic Projects\u0022,\u0022confluence.space\u0022:\u0022Confluence Spaces\u0022,\u0022bamboo.project\u0022:\u0022Bamboo Projects\u0022,\u0022jira.project\u0022:\u0022Jira Projects\u0022}}"; WRM._unparsedData["com.atlassian.analytics.analytics-client:programmatic-analytics-init.programmatic-analytics-data-provider"]="false"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-license-banner:confluence-license-banner-resources.license-details"]="{\u0022daysBeforeLicenseExpiry\u0022:0,\u0022daysBeforeMaintenanceExpiry\u0022:0,\u0022showLicenseExpiryBanner\u0022:false,\u0022showMaintenanceExpiryBanner\u0022:false,\u0022renewUrl\u0022:null,\u0022salesUrl\u0022:null}"; WRM._unparsedData["com.atlassian.plugins.atlassian-plugins-webresource-plugin:context-path.context-path"]="\u0022/confluence\u0022"; WRM._unparsedData["com.atlassian.analytics.analytics-client:policy-update-init.policy-update-data-provider"]="false"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.authentication-types"]="{\u0022com.atlassian.applinks.api.auth.types.BasicAuthenticationProvider\u0022:\u0022Basic Access\u0022,\u0022com.atlassian.applinks.api.auth.types.TrustedAppsAuthenticationProvider\u0022:\u0022Trusted Applications\u0022,\u0022com.atlassian.applinks.api.auth.types.CorsAuthenticationProvider\u0022:\u0022CORS\u0022,\u0022com.atlassian.applinks.api.auth.types.OAuthAuthenticationProvider\u0022:\u0022OAuth\u0022,\u0022com.atlassian.applinks.api.auth.types.TwoLeggedOAuthAuthenticationProvider\u0022:\u0022OAuth\u0022,\u0022com.atlassian.applinks.api.auth.types.TwoLeggedOAuthWithImpersonationAuthenticationProvider\u0022:\u0022OAuth\u0022}"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-search-ui-plugin:confluence-search-ui-plugin-resources.i18n-data"]="{\u0022search.ui.recent.link.text\u0022:\u0022View more recently visited\u0022,\u0022search.ui.search.results.empty\u0022:\u0022We couldn\u0027\u0027t find anything matching \u005C\u0022{0}\u005C\u0022.\u0022,\u0022search.ui.filter.clear.selected\u0022:\u0022Clear selected items\u0022,\u0022search.ui.content.name.search.items.panel.load.all.top.items.button.text\u0022:\u0022Show more app results...\u0022,\u0022search.ui.filter.contributor.button.text\u0022:\u0022Contributor\u0022,\u0022search.ui.filter.space.current.label\u0022:\u0022CURRENT\u0022,\u0022search.ui.clear.input.button.text\u0022:\u0022Clear text\u0022,\u0022search.ui.search.results.clear.button\u0022:\u0022clear your filters.\u0022,\u0022help.search.ui.link.title\u0022:\u0022Search tips\u0022,\u0022search.ui.container.close.text\u0022:\u0022Close\u0022,\u0022search.ui.filter.date.month.text\u0022:\u0022The past month\u0022,\u0022search.ui.infinite.scroll.button.text\u0022:\u0022More results\u0022,\u0022search.ui.filter.date.button.text\u0022:\u0022Date\u0022,\u0022search.ui.filter.date.week.text\u0022:\u0022The past week\u0022,\u0022search.ui.result.subtitle.calendar\u0022:\u0022Team calendar\u0022,\u0022search.ui.filter.date.heading\u0022:\u0022Last modified within\u0022,\u0022search.ui.filter.space.input.label\u0022:\u0022Find spaces...\u0022,\u0022search.ui.generic.error\u0022:\u0022Something went wrong. Refresh the page, or contact your admin if this keeps happening.\u0022,\u0022search.ui.recent.spaces\u0022:\u0022Recent Spaces\u0022,\u0022search.ui.result.subtitle.space\u0022:\u0022Space\u0022,\u0022search.ui.filter.space.category.input.label\u0022:\u0022Find space categories...\u0022,\u0022search.ui.filter.space.archive.label\u0022:\u0022Search archived spaces\u0022,\u0022search.ui.filter.label\u0022:\u0022filter\u0022,\u0022search.ui.filter.date.all.text\u0022:\u0022Any time\u0022,\u0022search.ui.filter.date.hour.text\u0022:\u0022The past day\u0022,\u0022search.ui.filters.heading\u0022:\u0022Filter by\u0022,\u0022search.ui.filter.label.input.label\u0022:\u0022Find labels...\u0022,\u0022search.ui.recent.items.anonymous\u0022:\u0022Start exploring. Your search results will appear here.\u0022,\u0022search.ui.input.label\u0022:\u0022Search\u0022,\u0022search.ui.input.aria.label\u0022:\u0022Search, when you type, your results will be displayed below.\u0022,\u0022search.ui.search.result\u0022:\u0022{0,choice,1#{0} search result|1\u003c{0} search results}\u0022,\u0022search.ui.filter.label.button.text\u0022:\u0022Label\u0022,\u0022search.ui.container.clear.ariaLabel\u0022:\u0022Clear\u0022,\u0022search.ui.input.alert\u0022:\u0022Hit enter to search\u0022,\u0022search.ui.filter.no.result.text\u0022:\u0022We can\u0027\u0027t find anything matching your search\u0022,\u0022search.ui.result.subtitle.user\u0022:\u0022User profile\u0022,\u0022search.ui.filter.contributor.input.label\u0022:\u0022Find people...\u0022,\u0022search.ui.filter.content.type.button.text\u0022:\u0022Type\u0022,\u0022search.ui.filter.date.year.text\u0022:\u0022The past year\u0022,\u0022search.ui.advanced.search.link.text\u0022:\u0022Advanced search\u0022,\u0022search.ui.filter.space.button.text\u0022:\u0022Space\u0022,\u0022search.ui.search.results.clear.line2\u0022:\u0022Try a different search term or\u0022,\u0022search.ui.filter.space.category.button.text\u0022:\u0022Space category\u0022,\u0022search.ui.search.results.clear.line1\u0022:\u0022We couldn\u0027\u0027t find anything matching your search.\u0022,\u0022search.ui.content.name.search.items.panel.load.all.top.items.admin.button.text\u0022:\u0022Show more settings and app results...\u0022,\u0022search.ui.recent.pages\u0022:\u0022Recently visited\u0022,\u0022search.ui.search.result.anonymous\u0022:\u0022{0,choice,1#{0} search result|1\u003c{0} search results}. Have an account? {1}Log in{2} to expand your search.\u0022,\u0022search.ui.recent.items.empty\u0022:\u0022Start exploring. Pages and spaces you\u0027\u0027ve visited recently will appear here.\u0022,\u0022search.ui.filter.space.init.heading\u0022:\u0022recent spaces\u0022}"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.applinks-types"]="{\u0022crowd\u0022:\u0022Crowd\u0022,\u0022confluence\u0022:\u0022Confluence\u0022,\u0022fecru\u0022:\u0022FishEye / Crucible\u0022,\u0022stash\u0022:\u0022Stash\u0022,\u0022jira\u0022:\u0022Jira\u0022,\u0022refapp\u0022:\u0022Reference Application\u0022,\u0022bamboo\u0022:\u0022Bamboo\u0022,\u0022generic\u0022:\u0022Generic Application\u0022}"; WRM._unparsedData["com.atlassian.confluence.plugins.synchrony-interop:synchrony-status-banner-loader.synchrony-status"]="false"; WRM._unparsedData["com.atlassian.applinks.applinks-plugin:applinks-common-exported.applinks-help-paths"]="{\u0022entries\u0022:{\u0022applinks.docs.root\u0022:\u0022https://confluence.atlassian.com/display/APPLINKS-082/\u0022,\u0022applinks.docs.diagnostics.troubleshoot.sslunmatched\u0022:\u0022SSL+and+application+link+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthsignatureinvalid\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthtimestamprefused\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.delete.entity.link\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.adding.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.administration.guide\u0022:\u0022Application+Links+Documentation\u0022,\u0022applinks.docs.oauth.security\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.troubleshoot.application.links\u0022:\u0022Troubleshoot+application+links\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unknownerror\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.trusted.apps\u0022:\u0022Configuring+Trusted+Applications+authentication+for+an+application+link\u0022,\u0022applinks.docs.diagnostics.troubleshoot.authlevelunsupported\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.ssluntrusted\u0022:\u0022SSL+and+application+link+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unknownhost\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.delete.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.adding.project.link\u0022:\u0022Configuring+Project+links+across+Applications\u0022,\u0022applinks.docs.link.applications\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.diagnostics.troubleshoot.oauthproblem\u0022:\u0022OAuth+troubleshooting+guide\u0022,\u0022applinks.docs.diagnostics.troubleshoot.migration\u0022:\u0022Update+application+links+to+use+OAuth\u0022,\u0022applinks.docs.relocate.application.link\u0022:\u0022Link+Atlassian+applications+to+work+together\u0022,\u0022applinks.docs.administering.entity.links\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.upgrade.application.link\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.diagnostics.troubleshoot.connectionrefused\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.oauth\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.insufficient.remote.permission\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.configuring.application.link.auth\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.diagnostics\u0022:\u0022Application+links+diagnostics\u0022,\u0022applinks.docs.configured.authentication.types\u0022:\u0022OAuth+security+for+application+links\u0022,\u0022applinks.docs.adding.entity.link\u0022:\u0022Create+links+between+projects\u0022,\u0022applinks.docs.diagnostics.troubleshoot.unexpectedresponse\u0022:\u0022Network+and+connectivity+troubleshooting+guide\u0022,\u0022applinks.docs.configuring.auth.basic\u0022:\u0022Configuring+Basic+HTTP+Authentication+for+an+Application+Link\u0022,\u0022applinks.docs.diagnostics.troubleshoot.authlevelmismatch\u0022:\u0022OAuth+troubleshooting+guide\u0022}}"; WRM._unparsedData["com.atlassian.confluence.plugins.confluence-feature-discovery-plugin:confluence-feature-discovery-plugin-resources.test-mode"]="false"; if(window.WRM._dataArrived)window.WRM._dataArrived();</script> <link rel="stylesheet" href="/confluence/s/6ae781c19260c87c2df2185688cf22d1-CDN/mdjd5z/8804/noax5f/35dbafbbc78d45870cb35c7d7200f6a7/_/download/contextbatch/css/_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer/batch.css" data-wrm-key="_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="context" media="all"> <link rel="stylesheet" href="/confluence/s/bbcc4b324a5a41fc0ad1bfb9c14f60b7-CDN/mdjd5z/8804/noax5f/3463efedda51c7056b1e351d39fff087/_/download/contextbatch/css/atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super/batch.css?gatekeeper-ui-v2=true&highlightactions=true&hostenabled=true" data-wrm-key="atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super" data-wrm-batch-type="context" media="all"> <link rel="stylesheet" href="/confluence/s/d41d8cd98f00b204e9800998ecf8427e-CDN/mdjd5z/8804/noax5f/3.9.4/_/download/batch/com.stiltsoft.confluence.handy.macros:handy-header-url-resources/com.stiltsoft.confluence.handy.macros:handy-header-url-resources.css" data-wrm-key="com.stiltsoft.confluence.handy.macros:handy-header-url-resources" data-wrm-batch-type="resource" media="all"> <script data-wrm-key="com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="resource" data-initially-rendered> !function(){"use strict";if("PerformanceObserver"in window){const e=[];window.__observedResources=e;const r=e=>"script"===e?"script":"css";new PerformanceObserver((n=>{n.getEntries().filter((({initiatorType:e,name:r})=>{const n="script"===e||((e,r)=>"link"===e&&"css"===new URL(r).pathname.split(".").pop())(e,r),i=new URL(location.href).origin===new URL(r).origin;return n&&i})).forEach((({name:n,transferSize:i,encodedBodySize:s,initiatorType:o})=>{e.push([i,s,n,r(o)])}))})).observe({type:"resource"})}}(); </script> <script src="/confluence/s/ae8653e40f51d1074a9abe1f6278d297-CDN/mdjd5z/8804/noax5f/35dbafbbc78d45870cb35c7d7200f6a7/_/download/contextbatch/js/_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer/batch.js?locale=en-GB" data-wrm-key="_super,-com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-perf-observer" data-wrm-batch-type="context" data-initially-rendered></script> <script src="/confluence/s/c601805369e014d46d54981ee744731c-CDN/mdjd5z/8804/noax5f/3463efedda51c7056b1e351d39fff087/_/download/contextbatch/js/atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super/batch.js?gatekeeper-ui-v2=true&highlightactions=true&hostenabled=true&locale=en-GB" data-wrm-key="atl.confluence.plugins.pagetree-desktop,main,viewcontent,atl.general,page,atl.comments,-_super" data-wrm-batch-type="context" data-initially-rendered></script> <script src="/confluence/s/254bc93046e75458230542bb3902a588-CDN/mdjd5z/8804/noax5f/3.9.4/_/download/batch/com.stiltsoft.confluence.handy.macros:handy-header-url-resources/com.stiltsoft.confluence.handy.macros:handy-header-url-resources.js?locale=en-GB" data-wrm-key="com.stiltsoft.confluence.handy.macros:handy-header-url-resources" data-wrm-batch-type="resource" data-initially-rendered></script> <script src="/confluence/s/d41d8cd98f00b204e9800998ecf8427e-T/mdjd5z/8804/noax5f/2.6.13/_/download/batch/com.comalatech.checklists:analyticsResources/com.comalatech.checklists:analyticsResources.js" data-wrm-key="com.comalatech.checklists:analyticsResources" data-wrm-batch-type="resource" data-initially-rendered></script> <script type="module">WRM.requireLazily(["wr!com.atlassian.plugins.atlassian-plugins-webresource-rest:data-collector-async"])</script> <meta name="ajs-site-title" content="Apache Software Foundation" /> <link rel="canonical" href="https://cwiki.apache.org/confluence/display/JMETER/JMeterFAQ"> <link rel="shortlink" href="https://cwiki.apache.org/confluence/x/ViogBw"> <meta name="wikilink" content="[JMETER:JMeterFAQ]"> <meta name="page-version" content="143"> <meta name="ajs-page-version" content="143"> </head> <body id="com-atlassian-confluence" class="theme-default aui-layout aui-theme-default"> <div id='stp-licenseStatus-banner'></div> <div id="page"> <div id="full-height-container"> <div id="header-precursor"> <div class="cell"> </div> </div> <header id="header" role="banner"> <a class="aui-skip-link" href="https://cwiki.apache.org/confluence/login.action?os_destination=%2Fdisplay%2FJMETER%2FJMeterFAQ">Log in</a> <a class="aui-skip-link" href="#nav-sidebar">Skip to sidebar</a> <a class="aui-skip-link" href="#main">Skip to main content</a> <nav class="aui-header aui-dropdown2-trigger-group" aria-label="Site"><div class="aui-header-inner"><div class="aui-header-before"><button class=" aui-dropdown2-trigger app-switcher-trigger aui-dropdown2-trigger-arrowless" aria-controls="app-switcher" aria-haspopup="true" role="button" data-aui-trigger href="#app-switcher"><span class="aui-icon aui-icon-small aui-iconfont-appswitcher">Linked Applications</span></button><div id="app-switcher" class="aui-dropdown2 aui-style-default" role="menu" hidden data-is-user-admin="false" data-is-switcher="true"><div class="app-switcher-loading">Loading…</div></div></div><div class="aui-header-primary"><span id="logo" class="aui-header-logo aui-header-logo-confluence"><a href="/confluence/" aria-label="Go to home page"><span class="aui-header-logo-device">Apache Software Foundation</span></a></span><ul class="aui-nav"> <li> <a id="space-directory-link" href="/confluence/spacedirectory/view.action" class=" aui-nav-imagelink" title="Spaces"> <span>Spaces</span> </a> </li> <li class="aui-buttons"> </li> </ul> </div><div class="aui-header-secondary"><ul class="aui-nav"> <li> <div id="search-ui" class="aui-quicksearch dont-default-focus header-quicksearch"><button id="quick-search-query-button" aria-label="Search" aria-haspopup= "dialog" aria-controls="search_drawer" ></button><input id="quick-search-query" aria-label="Search" placeholder="Search" type="text" aria-haspopup= "dialog" aria-controls="search_drawer" /><div id="quick-search-alert" role="alert">Hit enter to search</div><aui-spinner size="small"></aui-spinner></div> </li> <li> <a id="help-menu-link" class="aui-nav-link aui-dropdown2-trigger aui-dropdown2-trigger-arrowless" href="#" aria-haspopup="true" aria-owns="help-menu-link-content" title="Help"> <span class="aui-icon aui-icon-small aui-iconfont-question-filled">Help</span> </a> <nav id="help-menu-link-content" class="aui-dropdown2 aui-style-default"> <div class="aui-dropdown2-section"> <ul id="help-menu-link-leading" class="aui-list-truncate section-leading first"> <li> <a id="confluence-help-link" href="https://docs.atlassian.com/confluence/docs-719/" class=" " title="Visit the Confluence documentation home" target="_blank" > Online Help </a> </li> <li> <a id="keyboard-shortcuts-link" href="/confluence" class=" " title="View available keyboard shortcuts" > Keyboard Shortcuts </a> </li> <li> <a id="feed-builder-link" href="/confluence/dashboard/configurerssfeed.action" class=" " title="Create your custom RSS feed." > Feed Builder </a> </li> <li> <a id="whats-new-menu-link" href="https://docs.atlassian.com/confluence/docs-719/help.whats.new.iframe.link" class=" " title="" > What’s new </a> </li> <li> <a id="whats-new-menu-link" href="https://confluence.atlassian.com/display/DOC/Confluence+7.19+Release+Notes" class=" " title="" > What’s new </a> </li> <li> <a id="gadget-directory-link" href="/confluence" class=" user-item administration-link " title="Browse gadgets provided by Confluence" > Available Gadgets </a> </li> <li> <a id="confluence-about-link" href="/confluence/aboutconfluencepage.action" class=" " title="Get more information about Confluence" > About Confluence </a> </li> </ul> </div> </nav> </li> <li> </li> <li> </li> <li> <li> <a id="login-link" href="/confluence/login.action?os_destination=%2Fdisplay%2FJMETER%2FJMeterFAQ" class=" user-item login-link " title="" > Log in </a> </li> </li> </ul> </div></div><!-- .aui-header-inner--></nav><!-- .aui-header --> <br class="clear"> </header> <div class="ia-splitter"> <div class="ia-splitter-left"> <div class="ia-fixed-sidebar" role="complementary" aria-label=sidebar> <div class="acs-side-bar ia-scrollable-section"><div class="acs-side-bar-space-info tipsy-enabled" data-configure-tooltip="Edit space details"><div class="avatar"><div class="space-logo" data-key="JMETER" data-name="Apache JMeter" data-entity-type="confluence.space"><div class="avatar-img-container"><div class="avatar-img-wrapper"><a href="/confluence/display/JMETER/Home" title="Apache JMeter"><img class="avatar-img" src="/confluence/images/logo/default-space-logo.svg" alt="Apache JMeter"></a></div></div></div></div><div class="space-information-container"><div class="name"><a href="/confluence/display/JMETER/Home" title="Apache JMeter">Apache JMeter</a></div><div class="flyout-handle icon aui-icon aui-icon-small aui-iconfont-edit"></div></div></div><div class="acs-side-bar-content"><div class="acs-nav-wrapper"><div class="acs-nav" data-has-create-permission="false" data-quick-links-state="null" data-page-tree-state="null" data-nav-type="page-tree"><div class="acs-nav-sections"><div class="main-links-section "><ul class="acs-nav-list"><li class="acs-nav-item wiki current-item" aria-current="true" data-collector-key="spacebar-pages"><a class="acs-nav-item-link tipsy-enabled" href="/confluence/collector/pages.action?key=JMETER" data-collapsed-tooltip="Pages"><span class="icon"></span><span class="acs-nav-item-label">Pages</span></a></li><li class="acs-nav-item blog" data-collector-key="spacebar-blogs"><a class="acs-nav-item-link tipsy-enabled" href="/confluence/pages/viewrecentblogposts.action?key=JMETER" data-collapsed-tooltip="Blog"><span class="icon"></span><span class="acs-nav-item-label">Blog</span></a></li></ul></div><div class="quick-links-wrapper"></div></div></div></div><div class="ia-secondary-container tipsy-enabled" data-tree-type="page-tree"><div class="ia-secondary-header"><h2 class="ia-secondary-header-title page-tree"><span class="icon"></span><span class="label">Page tree</span></h2></div><div class="ia-secondary-content"> <div class="plugin_pagetree conf-macro output-inline" data-hasbody="false" data-macro-name="pagetree"> <div class="plugin_pagetree_children_list plugin_pagetree_children_list_noleftspace"> <div class="plugin_pagetree_children"> </div> </div> <fieldset class="hidden"> <input type="hidden" name="treeId" value="" /> <input type="hidden" name="treeRequestId" value="/confluence/plugins/pagetree/naturalchildren.action?decorator=none&excerpt=false&sort=position&reverse=false&disableLinks=false&expandCurrent=true&placement=sidebar" /> <input type="hidden" name="treePageId" value="119548502" /> <input type="hidden" name="noRoot" value="false" /> <input type="hidden" name="rootPageId" value="119547985" /> <input type="hidden" name="rootPage" value="" /> <input type="hidden" name="startDepth" value="0" /> <input type="hidden" name="spaceKey" value="JMETER" /> <input type="hidden" name="i18n-pagetree.loading" value="Loading..." /> <input type="hidden" name="i18n-pagetree.error.permission" value="Unable to load page tree. It seems that you do not have permission to view the root page." /> <input type="hidden" name="i18n-pagetree.eeror.general" value="There was a problem retrieving the page tree. Please check the server log file for more information." /> <input type="hidden" name="loginUrl" value="/confluence/login.action?os_destination=%2Fpages%2Fviewpage.action%3FspaceKey%3DJMETER%26title%3DJMeterFAQ&permissionViolation=true" /> <input type="hidden" name="mobile" value="false" /> <input type="hidden" name="placement" value="sidebar" /> <fieldset class="hidden"> <input type="hidden" name="ancestorId" value="119547985" /> </fieldset> </fieldset> </div> </div></div></div><div class="hidden"><a href="/confluence/collector/pages.action?key=JMETER" id="space-pages-link"></a><script type="text/x-template" title="logo-config-content"><h2>Space Details</h2><div class="personal-space-logo-hint">Your profile picture is used as the logo for your personal space. <a href="/confluence/users/profile/editmyprofilepicture.action" target="_blank">Change your profile picture</a>.</div></script></div></div><div class="space-tools-section"><div id="space-tools-menu-additional-items" class="hidden"><div data-label="Browse pages" data-class="" data-href="/confluence/pages/reorderpages.action?key=JMETER">Browse pages</div></div><button id="space-tools-menu-trigger" class=" aui-dropdown2-trigger aui-button aui-button-subtle tipsy-enabled aui-dropdown2-trigger-arrowless " aria-controls="space-tools-menu" aria-haspopup="true" role="button" data-aui-trigger><span class="aui-icon aui-icon-small aui-iconfont-configure">Configure</span><span class="aui-button-label">Space tools</span><span class="aui-icon "></span></button><div id="space-tools-menu" class="aui-dropdown2 aui-style-default space-tools-dropdown" role="menu" hidden data-aui-alignment="top left"></div><a href="#" role="button" class="expand-collapse-trigger aui-icon aui-icon-small aui-iconfont-chevron-double-left" aria-expanded="true"></a></div> </div> </div> <!-- \#header --> <main role="main" id="main" class=" aui-page-panel"> <div id="main-header"> <div id="navigation" class="content-navigation view" role="region" aria-label="Page tools"> <ul class="ajs-menu-bar"> <li class="normal ajs-menu-item"> <a id="action-menu-link" class="action aui-dropdown2-trigger-arrowless aui-button aui-button-subtle ajs-menu-title aui-dropdown2-trigger" href="#" aria-haspopup="true" aria-label="More options" aria-owns="action-menu" data-container="#navigation"> <span> <span class="aui-icon aui-icon-small aui-iconfont-more" aria-label="More options"></span> </span> </a> <div id="action-menu" class="aui-dropdown2 aui-style-default" aria-hidden="true"> <div class="aui-dropdown2-section"> <ul id="action-menu-primary" class="section-primary first"> <li> <a id="view-attachments-link" href="/confluence/pages/viewpageattachments.action?pageId=119548502" rel="nofollow" class="action-view-attachments" accessKey="t" title="View Attachments" > <span> A<u>t</u>tachments (0) </span> </a> </li> <li> <a id="action-view-history-link" href="/confluence/pages/viewpreviousversions.action?pageId=119548502" rel="nofollow" class="action-view-history" title="" > <span> Page History </span> </a> </li> </ul> </div> <div class="aui-dropdown2-section"> <ul id="action-menu-secondary" class="section-secondary"> <li> <a id="view-resolved-comments" href="/confluence" rel="nofollow" class="" title="" > <span> Resolved comments </span> </a> </li> <li> <a id="view-page-info-link" href="/confluence/pages/viewinfo.action?pageId=119548502" rel="nofollow" class="action-view-info" title="" > <span> Page Information </span> </a> </li> <li> <a id="view-in-hierarchy-link" href="/confluence/pages/reorderpages.action?key=JMETER&openId=119548502#selectedPageInHierarchy" rel="nofollow" class="" title="" > <span> View in Hierarchy </span> </a> </li> <li> <a id="action-view-source-link" href="/confluence/plugins/viewsource/viewpagesrc.action?pageId=119548502" rel="nofollow" class="action-view-source popup-link" title="" > <span> View Source </span> </a> </li> <li> <a id="delete-all-comments-link-link" href="/confluence/plugins/aptis/deleteAllComments/ask-user.action?pageId=119548502" rel="nofollow" class="" title="" > <span> Delete comments </span> </a> </li> <li> <a id="action-export-pdf-link" href="/confluence/spaces/flyingpdf/pdfpageexport.action?pageId=119548502" rel="nofollow" class="" title="" > <span> Export to PDF </span> </a> </li> <li> <a id="action-export-word-link" href="/confluence/exportword?pageId=119548502" rel="nofollow" class="action-export-word" title="" > <span> Export to Word </span> </a> </li> </ul> </div> <div class="aui-dropdown2-section"> <ul id="action-menu-modify" class="section-modify"> <li> <a id="treecopy-action" href="/confluence/plugins/tree-copy/preparing-copying.action?pageId=119548502" rel="nofollow" class="" title="" > <span> Copy Page Tree </span> </a> </li> </ul> </div> </div> </li> </ul> </div> <div id="title-heading" class="pagetitle with-breadcrumbs"> <div id="breadcrumb-section"> <nav aria-label="Breadcrumbs"> <ol id="breadcrumbs"> <li class="first" > <span class=""><a href="/confluence/collector/pages.action?key=JMETER">Pages</a></span> <li> <span class=""><a href="/confluence/display/JMETER/Home">Home</a></span> </ol> </nav> </div> <div id="page-metadata-banner"><ul class="banner"><li id="system-content-items" class="noprint"><a href="" title="Unrestricted" id="content-metadata-page-restrictions-hidden" class="hidden"></a></li><li class="page-metadata-item noprinthas-button" id="content-metadata-jira-wrapper"><a href="" title="" id="content-metadata-jira" class="aui-button aui-button-subtle content-metadata-jira tipsy-disabled hidden"><span>Jira links</span></a></li></ul></div> <h1 id="title-text" class="with-breadcrumbs"> <a href="/confluence/display/JMETER/JMeterFAQ">JMeterFAQ</a> </h1> </div> </div><!-- \#main-header --> <div id="sidebar-container"> </div><!-- \#sidebar-container --> <div id="content" class="page view"> <div id="action-messages"> </div> <script type="text/x-template" title="searchResultsGrid"> <table class="aui"> <thead> <tr class="header"> <th class="search-result-title">Page Title</th> <th class="search-result-space">Space</th> <th class="search-result-date">Updated</th> </tr> </thead> </table> </script> <script type="text/x-template" title="searchResultsGridCount"> <p class="search-result-count">{0}</p> </script> <script type="text/x-template" title="searchResultsGridRow"> <tr class="search-result"> <td class="search-result-title"><a href="{1}" class="content-type-{2}"><span>{0}</span></a></td> <td class="search-result-space"><a class="space" href="/confluence/display/{4}/" title="{3}">{3}</a></td> <td class="search-result-date"><span class="date" title="{6}">{5}</span></td> </tr> </script> <div class="page-metadata"> <ul> <li class="page-metadata-modification-info"> Created by <span class='author'> <a href=" /confluence/display/~infrabot " aria-label="created by ASF Infrabot" class="url fn" >ASF Infrabot</a></span>, last modified by <span class='editor'> <a href=" /confluence/display/~fschumacher " aria-label="modified by Felix Schumacher" class="url fn" >Felix Schumacher</a></span> on <a class='last-modified' aria-label='modified on May 01, 2020, select to show changes' title='Show changes' href='/confluence/pages/diffpagesbyversion.action?pageId=119548502&selectedPageVersions=142&selectedPageVersions=143'>May 01, 2020</a> </li> </ul> </div> <div id="main-content" class="wiki-content"> <p><strong>The JMeter FAQ</strong> </p><p><div class="toc-macro client-side-toc-macro conf-macro output-block" data-hasbody="false" data-headerelements="H1,H2,H3,H4,H5,H6,H7" data-macro-name="toc"> </div></p><h2 id="JMeterFAQ-Howtodoremotetestingthe'properway'?">How to do remote testing the 'proper way'?</h2><p><strong>Answer:</strong> Here are a few notes to help you on your way.</p><p>You have:</p><ol><li>Your application server. You shouldn't run anything on this machine that you wouldn't have running on it in your proposed or actual production environment (if you are running anything else, including JMeter, you will be adding load to the server and thus tainting your results).</li><li>One or more machines running jmeter-server (the <a href="/confluence/display/JMETER/JMeterEngine">JMeterEngine</a>). You want these machines to be reasonably close (network wise) to the application server. By "reasonably close" I mean on the same Ethernet segment or at least with no low speed links between them. The JMeter User Manual provides reasonable information about doing this.</li><li>A single machine running the JMeter GUI that you use to control the machines running the <a href="/confluence/display/JMETER/JMeterEngine">JMeterEngine</a>.</li></ol><p>While you are developing your scripts and for only moderate levels of user testing (assuming you are "close" to the application server) you do not need to involve any <a href="/confluence/display/JMETER/JMeterEngine">JMeterEngine</a> machines. <br/>The reason you have these are to:</p><ol><li>Eliminate the impact of slow network connections when you are not "close" to the application server.</li><li>Execute more test threads than your local machine is capable of handling.</li></ol><p>Note that if the GUI is running multiple remote servers, it can easily become a bottle-neck, especially if a lot of listeners are being used. Remove all unnecessary listeners before running stress tests.</p><p>Running JMeter in non-GUI (batch) mode is preferable, as this uses far fewer resources. The output log files can be merged after the test run and used to create overall test statistics. (CVS files can just be appended to each other; XML output files need a bit of editting to maintain well-formedness.)</p><p>If there are several nodes running the JMeter test plan, it is a good idea to try and ensure that their clocks are synchronised, as this makes it easier to analyse the data later.</p><h2 id="JMeterFAQ-HowtorunJMetertestplanprogramatically,suchasfromanAntscript?">How to run JMeter test plan programatically, such as from an Ant script?</h2><p><strong>Answer:</strong> Quick answer, go <a class="external-link" href="http://www.programmerplanet.org/projects/jmeter-ant-task/" rel="nofollow">here</a>. I have permission from the author of this ant task to add it to JMeter's distribution, which I will do as soon as I have the time. (It should now be in the extras folder).</p><h2 id="JMeterFAQ-HowcanIdostresstestingofEJBs?">How can I do stress testing of EJBs?</h2><p><strong>Answer:</strong> You can use the <a class="unresolved" href="#">UserManual Reference/JavaSampler</a> classes to write your own class that runs your EJB's, and then JMeter will take over the threading and reporting. This, however, is not ideal. Someone needs to write a good EJB Sampler implementation for JMeter (hint, hint).</p><h2 id="JMeterFAQ-WhydoHTTP3xxredirectsappearaserrors?IsthereawaytomakethemappearasHTTP200OK">Why do HTTP 3xx redirects appear as errors ? Is there a way to make them appear as HTTP 200 OK</h2><p><strong>Answer:</strong> Quick answer: They appear as an error because 302 != 200, at least in v 1.8.1.</p><p>Long answer: try using v1.9RC1, the code in <a class="external-link" href="http://cvs.apache.org/viewcvs.cgi/jakarta-jmeter/src/protocol/http/org/apache/jmeter/protocol/http/sampler/HTTPSampler.java?rev=1.40&content-type=text/vnd.viewcvs-markup" rel="nofollow">HTTPSampler</a> seems to take into account the result code for the redirect instead of the redirect result code.</p><h2 id="JMeterFAQ-HowdoIparameterizemyJMetertestcases?">How do I parameterize my JMeter test cases?</h2><p><strong>Answer:</strong> Parameters can be set at both the Test Plan and Thread Group levels.</p><p><br/></p><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p><p class="conf-macro output-block" data-hasbody="true" data-macro-name="unmigrated-wiki-markup">At the Test Plan level, parameters can be used as constants to minimize changes throughout the test plan when a server or port changes, for example. [N.B. functions are not currently supported at Test Plan level.]</p></p><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p /><p><br/></p><p>Within Thread Groups, the User Parameters Pre-Processor can be used to set different parameters for each simulated user.</p><p>Note: if only one user (i.e. User_1) is defined, the value will be used for all threads. Functions ARE supported here. See later FAQs for more information.</p><p>The following example parameterizes the pet category from the <a class="external-link" href="http://java.sun.com/blueprints/code/index.html#java_pet_store_demo/" rel="nofollow">Java Pet Store</a>.</p><ol><li>Install Petstore application on a local Tomcat server.</li><li>Start JMeter</li><li>Click the Add button to add the following user defined variables to the Test Plan node:<ol><li>server: localhost</li><li>port: 8080</li><li>protocol: http</li></ol></li><li>Add a Thread Group to the Test Plan setting:<ol><li>Number of Threads: 2</li><li>Clear the forever checkbox</li><li>Loop Count: 1</li></ol></li><li>Add Config Element > HTTP Cookie Manager to Thread Group</li><li>Add Pre Processors > User Parameters to Thread Group</li><li>Click Add User to add an additional user to the User Parameters</li><li>Click Add Variable and set name to category, User_1 to DOGS and User_2 to FISH</li><li>Add Sampler > HTTP Request to Thread Group with the following settings:<ol><li>Server Name or IP: ${server}</li><li>Port Number: ${port}</li><li>Protocol: ${protocol}</li><li>Path: /estore/control/category</li></ol></li><li>Click the Add button to add a parameter to the request:<ol><li>Name: category_id</li><li>Value: ${category}</li></ol></li><li>Add Listener > View Results Tree to Thread Group</li><li>Save</li><li>Run > Start</li></ol><p>When you view the results in the View Results Tree, you can see the ${category} value was replaced with the value from the User Parameters. Each thread will use the category from the User Parameter setting automatically. If there are more than two threads, they will reuse the values in these settings, so the third thread would use DOGS.</p><h2 id="JMeterFAQ-HowdoImakeparametersdynamic,reactingtotheuniqueserverresponsesofeachtestrun?">How do I make parameters dynamic, reacting to the unique server responses of each test run?</h2><p><strong>Answer:</strong> You can use the Regular Expression Post Processor to extract a value from a response, and then reuse this response in another request. Looking at the previous question in this FAQ, you could extract the product id from the result and use it in the following request:</p><ol><li>Load Test Plan created in previous FAQ question</li><li>Add Post Processor > Regular Expression Extractor to thread Group with following values:<ol><li>Reference Name: product</li><li>Regular Expression: <code>product_id=(\w*-\w*-\w*)</code> </li><li>Template: <code>$1$</code> </li><li>Match No.: <code>0</code> (Setting this parameter to 0 returns a random match)</li></ol></li><li>Copy the HTTP Request we created in the previous question and paste to the thread group after the previous HTTP Request</li><li>Change the following values:<ol><li>Path: <code>/estore/control/product</code> </li><li>Add Parameter and set name to <code>product_id</code> , value to <code>${product</code> }</li></ol></li><li>Save Test Plan</li><li>Run > Start</li></ol><p>When you view the results in the View Results Tree, you can see the ${product} value was replaced with the value extracted by the regular expression.</p><h2 id="JMeterFAQ-HowdoIpassparametersintomyTestscripts?Iwanttobeabletousethesamescripttotestwithdifferentnumbersofthreadsandloops,andIdon'twanttohavetochangethescripteachtime.">How do I pass parameters into my Test scripts? I want to be able to use the same script to test with different numbers of threads and loops, and I don't want to have to change the script each time.</h2><p>*Answer:*as explained above, you can use functions and variables just about anywhere in the test plan. So if you want to pass in a value a run-time, just use the __property() function, which reads the value of a JMeter property.</p><p>In order to define the property so JMeter can read it, define it on the command line as follows:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> jmeter -Jproperty_name=property_value </pre> </div></div><p>For example:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> jmeter -Jhost2=www.zzzyy.com -Jhost1=www.jmeter-rules.net </pre> </div></div><p>These values can then be read in the test plan using:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> ${__property(host1) </pre> </div></div><p>and</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> ${__property(host2)} </pre> </div></div><p>Note: Thread Groups are slightly different from other test elements, because their settings have to be determined before the test starts. This means that you cannot use variables defined in a User Parameters form. But the __property() function works in Thread Groups, and you can use variables defined on the Test Plan.</p><p>For example, you could define the <a class="unresolved" href="#">TestPlan</a> variable:</p><p><code>THREADS ${__P(threads,10)</code> }</p><p>and then use{{ ${THREADS}}} in the <a class="unresolved" href="#">ThreadGroup</a> test element.</p><p>Elsewhere, you can use function calls, or variable references to User Parameters (which in turn could be functions), or variable references to variables set up by functions earlier in the test. There's more than one way to do it.</p><p>Suppose you want to be able to vary the number of threads in a test plan. Choose a suitable property name, say group1.threads. Replace the thread count in the GUI (or the JMX, if you're feeling brave!) with the following function call:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> ${__property(group1.threads)} </pre> </div></div><p>Then, when starting JMeter, define the property on the command line:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> jmeter -Jgroup1.threads=12345 </pre> </div></div><p>It can be useful to put default settings into the jmeter property file, so you only need to supply differences on the command line.</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> # defaults in jmeter.properties group1.threads=10 group1.loops=100 group1.rampup=10 </pre> </div></div><p>Then just do jmeter -Jgroup1.loops=1000 for example.</p><p>Versions of JMeter after 1.9.1 have a new version of the __property() function which allows a default value to be supplied, in case the property is not found:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> ${__property(group2.threads,,defaultvalue)} </pre> </div></div><p>There is also a shorthand version called __P(), which you can use as follows:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> ${__P(group2.threads,100)} </pre> </div></div><p>if you omit the value, it defaults to 1</p><h2 id="JMeterFAQ-HowdoIuseexternaldatafilestodefinevariablesinmyTestscripts?">How do I use external data files to define variables in my Test scripts?</h2><p><strong>Answer:</strong> The <a class="external-link" href="http://jakarta.apache.org/jmeter/usermanual/component_reference.html#CSV_Data_Set_Config" rel="nofollow">CSV Data Set Config</a> element is the best way to do this, as it can create multiple variables from a single data file.</p><p><strong>Answer:</strong> Another way to do this is to create a User Parameters Pre-Processor in which you list all the values that you want to read from files. You can then use the variable names later in the script.</p><p>For example:</p><ol><li>Start JMeter</li><li>Add a Thread Group to the Test Plan<ol><li>set the appropriate number of threads and iterations</li></ol></li><li>Add Pre Processors > User Parameters to Thread Group</li><li>Click Add Variable<ol><li>Set Update once per iteration</li><li>Set the Name to the name of the variable (e.g. ACCOUNTID)<br/>1. Set the value (under User_1) to <code>${_StringFromFile(accounts.dat)</code>}</li></ol></li><li>Add Sampler > HTTP Request to Thread Group:</li><li>Click the Add button to add a parameter to the request:<ol><li>Name: account_id</li><li>Value: ${ACCOUNTID}</li></ol></li><li>Add Listener > View Results Tree to Thread Group</li><li>Save<br/>1. create the file accounts.dat containing one line per account id. If it is not in the bin directory, then modify the String{{`From}}`File parameter accordingly, e.g. {<code>${_StringFromFile(../testdata/accounts.dat)} or ${_StringFromFile(/home/user/testdata/accounts.dat)} or ${_StringFromFile(C:/work/data/accounts.dat)</code>}}<br/>1. Run > Start</li></ol><p>Each iteration, the ACCOUNTID variable will be set to the next line in the file, and the HTTP Request will use its value to set the account_id parameter.</p><p>When the end of the file is reached, <a href="/confluence/display/JMETER/StringFromFile">StringFromFile</a> starts reading again at the beginning.</p><p>N.B. If using such a script in client-server mode, make sure that any data files are copied to the appropriate place on the server host, as the files will be opened by the server process, not the client.</p><h2 id="JMeterFAQ-I'mhavingdifficultygettingJMetertoworkwithSSL(HTTPS).What'stheproblem?">I'm having difficulty getting JMeter to work with SSL (HTTPS). What's the problem?</h2><p><strong>Answer:</strong> Check out the documentation <a class="external-link" href="https://jmeter.apache.org/usermanual/get-started.html" rel="nofollow">item 1.2.4</a>.</p><blockquote><p>A lot of people struggle with this, either because of private certs or whatever - I'm looking for a page that details common trip-ups and solutions for them. – MikeStover</p></blockquote><p><br/></p><p><br/></p><h2 id="JMeterFAQ-I'mhavingdifficultybuildingJmeterfromNetBeansIDE.Itislookingforaorg.apache.log.Hierarchy,whichlogutilisitlookingfor?">I'm having difficulty building Jmeter from <a class="unresolved" href="#">NetBeans</a> IDE. It is looking for a org.apache.log.Hierarchy, which log util is it looking for?</h2><p><strong>Answer:</strong> Make sure to mount all of the jars in the lib folder.</p><h2 id="JMeterFAQ-HasanyoneoutthereusedJMeteraspartofjunittesting?I'dliketothinkthatbyusingassertionswithacustomJUnitlistenerJMetercouldberuninaspartoffunctionaltesting.">Has anyone out there used JMeter as part of junit testing? I'd like to think that by using assertions with a custom JUnit listener JMeter could be run in as part of functional testing.</h2><p><strong>Answer:</strong> It's a great idea to write some glue between JMeter and JUnit for just this purpose. It doesn't exist currently, though there is an Ant task for JMeter that you might find useful.</p><h2 id="JMeterFAQ-CanJMeterrecordHTTPSrequestsusingtherecordingproxy?">Can JMeter record HTTPS requests using the recording proxy?</h2><p><strong>Answer:</strong> Yes, in JMeter 2.4. JMeter now uses its own dummy certificate which the browser needs to be configured to accept.</p><h2 id="JMeterFAQ-HowcanIdisplaytheresponsetextmyassertationrunsagainst?">How can I display the response text my assertation runs against?</h2><p><strong>Answer:</strong> You can display your server's response text in the View Results Tree listener.</p><h2 id="JMeterFAQ-IsthereaJMXSchema/DTDavailable?">Is there a JMX Schema/DTD available?</h2><p><strong>Answer:</strong> No. Don't plan on having one either at this point. Changes would be too frequent to realistically keep up with.</p><h2 id="JMeterFAQ-WhathappenswithredirectswhenassertingHTTPresponses?">What happens with redirects when asserting HTTP responses?</h2><p><strong>Answer:</strong> Assertions aren't smart enough to do the right thing with redirected requests - currently the 302 response would be asserted against. You can get around this by recording your test plans and leaving "follow redirects" off.</p><p>Alternatively, the latest JMeter release (after 1.9.1) has an option to allow the redirects to be handled by the Java libary routines. Earlier versions of Java did not support redirects properly, but if you want to try, just define the following JMeter property:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> HTTPSampler.delegateRedirects=true </pre> </div></div><p>JMeter will then not see the redirects at all.</p><h2 id="JMeterFAQ-I'vesettheCLASSPATH,butJMeterisnotpickingupmyJars">I've set the CLASSPATH, but JMeter is not picking up my Jars</h2><p><strong>Answer:</strong> The CLASSPATH variable is ignored when using the -jar flag. For some further information on this, see: <a class="external-link" href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.html#userclass" rel="nofollow">How the Java launcher finds user classes </a></p><p>JMeter currently knows to look for jars/classes in two places only:</p><ul><li>lib/ext, where the <a class="unresolved" href="#">ApacheJMeter</a>_*.jar files live</li><li>lib, where the 3rd party jar files live</li></ul><p>Additional jars should normally be placed in the lib directory; however, if you have written an add-on for JMeter itself, that should be put in the lib/ext directory.</p><p>If you want your jar file to be available to all Java applications, it can be placed in the <a class="external-link" href="http://java.sun.com/j2se/1.4.2/docs/tooldocs/findingclasses.html#extclass" rel="nofollow">JVM extensions directory</a></p><p>Another possible solution is to take a copy of the jmeter startup script, and replace:</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> -jar ["ApacheJMeter"].jar </pre> </div></div><p>with</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre> org.apache.jmeter.NewDriver </pre> </div></div><p>after adding <a class="unresolved" href="#">ApacheJMeter</a>.jar to the classpath</p><h2 id="JMeterFAQ-WhatPatternmatching(regexen)doesJMetersupport?">What Pattern matching (regexen) does JMeter support?</h2><p><strong>Answer:</strong> JMeter includes the pattern matching software <a class="external-link" href="http://jakarta.apache.org/oro/" rel="nofollow">Apache Jakarta ORO</a>.</p><p>See <a href="/confluence/display/JMETER/RegularExpressions">RegularExpressions</a> for more details and examples</p><h2 id="JMeterFAQ-Iwanttouse“MonitorResults”ofJMeter">I want to use “Monitor Results” of JMeter</h2><p>Currently I am using WAS 5.0 Application Server . For “Monitor Results” , JMeter shows the example for TOMCAT 5.0 <a class="unresolved" href="#">WebServer</a>.</p><div class="confluence-information-macro confluence-information-macro-information conf-macro output-block" data-hasbody="true" data-macro-name="info"><p class="title conf-macro-render">Followings from JMeter doc</p><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"> </span><div class="confluence-information-macro-body"><p>Add the HTTP Request to the Thread Group element (Add → Sampler → HTTP Request). Then, select the HTTP Request element in the tree and edit the following properties):</p><p>Change the Name field to "Server Status". Enter the IP address or Hostname Enter the port number Set the Path field to "/manager/status" if you're using Tomcat. Add a request parameter named "XML" in uppercase. Give it a value of "true" in lowercase. Check "Use as Monitor" at the bottom of the sampler</p></div></div><p><br/></p><p>Please let me know how I can set “Monitor Results” of JMeter in WAS5.0.</p><p>To use the JMeter Monitor for IBM WAS5.0, you will need to port the status servlet from Tomcat5 to WAS. Your other option is to write your own status servlet and output the data in the correct format. Tomcat5 includes the schema for the status data. If you have any further question, feel free to email the jmeter-user mailing list.</p><h2 id="JMeterFAQ-JMeterkeepsgetting"OutofMemory"errors.WhatcanIdo?">JMeter keeps getting "Out of Memory" errors. What can I do?</h2><p>This is usually caused by including memory intensive listeners in your stress test. Listeners like "View Tree Results" are useful for debugging your test, but they are too memory intensive to remain in your test when you ramp up the number of simulated users and iterations. The best listeners to use for a long-term, high-load test are Aggregate Listener, Graph Listener, and Spline Listener.</p><p>In addition, you can instruct the JVM to use more memory by editing the jmeter/jmeter.bat files for linux/windows. Within these files, find a section that sets values for the Heap:<br/>set HEAP=-Xms256m -Xmx256m</p><p>Feel free to change these values. Xms indicates the starting RAM the jvm will take, and Xmx will be the maximum it is allowed (for the HEAP).</p><h2 id="JMeterFAQ-DoesJMeterprocessdynamicpages(e.g.Javascriptandapplets)">Does JMeter process dynamic pages (e.g. Javascript and applets)</h2><p>No. JMeter does not process Javascript or applets embedded in HTML pages.</p><p>JMeter can download the relevant resources (some embedded resources are downloaded automatically if the correct options are set), but it does not process the HTML and execute any Javascript functions.</p><p>If the page uses Javascript to build up a URL or submit a form, you can use the Proxy Recording facility to create the necessary sampler. If this is not possible, then manual inspection of the code may be needed to determine what the Javascript is doing.</p><h2 id="JMeterFAQ-Whataboutbackwardcompatibility?">What about backward compatibility ?</h2><p><strong>Answer:</strong> JMeter 2.1 uses a new format. But you can set values to 2.0 to save to old format.</p><p>You should take a look at <em>jmeter.properties</em> in your bin directory.</p><p>You can uncomment those lines (remove # character) and restart jmeter :</p><div class="preformatted panel conf-macro output-block" data-hasbody="true" data-macro-name="noformat" style="border-width: 1px;"><div class="preformattedContent panelContent"> <pre># Save test plans and test logs in 2.0 format #file_format=2.0 # Just test plans (jmx) #file_format.testplan=2.0 # Just test logs (jtl) #file_format.testlog=2.0 </pre> </div></div><p>You can also take a look at this <a class="external-link" href="http://marc.theaimsgroup.com/?l=jmeter-dev&m=113344943605787&w=2" rel="nofollow">mail archive</a> from dev list.</p><p>More informations about: <a href="/confluence/display/JMETER/JmxTestPlan">JmxTestPlan</a> or <a href="/confluence/display/JMETER/JtlTestLog">JtlTestLog</a></p><h2 id="JMeterFAQ-HowdoIensureeachhttprequestforjspiswithinonejsessionid?">How do I ensure each http request for jsp is within one jsessionid ?</h2><p>Just insert an HTTP Cookie Manager. This keeps track of all cookies for each thread within the thread group. Without http cookie manager, each request is a new session as cookies are not kept. jsessionid is only shown for the very first request, subsequent request will not see the jsessionid. to use a variable in jmeter is ${name of variable}.</p><p>This is very useful when dealing with jsp form logins, as the first request is to login to the system and subsequent request is to do load testing on the target page. This will prevent redirection back into login page.</p><h2 id="JMeterFAQ-HowdoIensuretheremotejmeterservercancommunicatewiththemasterclient?">How do I ensure the remote jmeter server can communicate with the master client?</h2><p>Sometimes java/rmi doesn't determine the correct IP address of your client. For example if you are communicating over a vpn under linux, the ppp interface is the IP that you want to use, but java may end up using the eth1 interface. If this is the case, you will see a connect exception in the jmeter-server log, which will mention an IP address different than the one you want it to use. You can force rmi to use a different IP address than the one it looks up by setting a system property: -Djava.rmi.server.hostname=192.168.5.6</p> </div> <div id="labels-section" class="pageSection group"> <div class="labels-section-content content-column" entityid="119548502" entitytype="page"> <div class="labels-content"> <ul class="label-list label-list-right "> <li class="no-labels-message"> No labels </li> </ul> </div> </div> </div> <div id="comments-section" class="pageSection group"> </div> </div> <div id="space-tools-web-items" class="hidden"> <div data-label="Overview" data-href="/confluence/spaces/viewspacesummary.action?key=JMETER">Overview</div> <div data-label="Content Tools" data-href="/confluence/pages/reorderpages.action?key=JMETER">Content Tools</div> <div data-label="Apps" data-href="/confluence/spaces/snippeterrors.action?key=JMETER">Apps</div> </div> </main><!-- \#main --> <div id="footer" role="contentinfo"> <section class="footer-body"> <p class="license license-opensource"> Powered by a free <b>Atlassian Confluence Open Source Project License</b> granted to Apache Software Foundation. <a href="https://www.atlassian.com/software/views/opensource-community-additional-license-offer">Evaluate Confluence today</a>.<br> </p> <ul id="poweredby"> <li class="noprint">Powered by <a href="https://www.atlassian.com/software/confluence" class="hover-footer-link" rel="nofollow">Atlassian Confluence</a> <span id='footer-build-information'>7.19.28</span></li> <li class="print-only">Printed by Atlassian Confluence 7.19.28</li> <li class="noprint"><a href="https://support.atlassian.com/confluence-server/" class="hover-footer-link" rel="nofollow">Report a bug</a></li> <li class="noprint"><a href="https://www.atlassian.com/company" class="hover-footer-link" rel="nofollow">Atlassian News</a></li> </ul> <div id="footer-logo"><a href="https://www.atlassian.com/" rel="nofollow">Atlassian</a></div> </section> </div> </div> </div><!-- \#full-height-container --> </div><!-- \#page --> <span style="display:none;" id="confluence-server-performance">{"serverDuration": 120, "requestCorrelationId": "b302481afcc228b5"}</span> </body> </html>