diff --git a/PRE_REQUISITES.md b/PRE_REQUISITES.md index 5b6d951..1fb22de 100644 --- a/PRE_REQUISITES.md +++ b/PRE_REQUISITES.md @@ -2,8 +2,17 @@ ## 1. Apache JMeter pre-requisites +### Java version * Install a **JDK 8 Windows x86** (not 64 bits !) in last minor update from [here](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) -* Install Apache JMeter from [here](https://jmeter.apache.org/download_jmeter.cgi). Last version is advised (>=5.1) +* Install Apache JMeter from [here](https://jmeter.apache.org/download_jmeter.cgi). Last version is advised (5.2.1) + +### Microsoft Visual C++ Redistributable for Visual Studio 2019 + +* Install **Microsoft Visual C++ Redistributable for Visual Studio 2019** available from here: + +## 1. Apache JMeter pre-requisites + +- https://support.microsoft.com/fr-fr/help/2977003/the-latest-supported-visual-c-downloads ## 2. Citrix pre-requisites @@ -21,7 +30,7 @@ If you encounter any errors, please check below points manually. * Once Citrix Receiver is installed, register ICA Client COM Object, run **as administrator** : - regsvr32 C:\Program Files (x86)\Citrix\ICA Client\wfica.ocx + regsvr32 /s "C:\Program Files (x86)\Citrix\ICA Client\wfica.ocx" * Add registry keys : @@ -97,8 +106,6 @@ Here is the list of configurable properties, **non bold** properties should be | bzm.citrix.client_factory.socket_timeout_ms | JMeterProperty that defines the socket timeout of Receiver in Milliseconds | 5000 (in millis) | | | | bzm.citrix.clause_check_interval | Interval for the timing of clause checks | 1000 (in millis) | -| bzm.citrix.clause_check_interval | Interval for the timing of clause checks | 1000 (in millis) | -| bzm.citrix.clause_check_interval | Interval for the timing of clause checks | 1000 (in millis) | | bzm.citrix.clause_check_timeout | Default time period (in ms) during which a clause must be validated | 3000 (in millis) | | bzm.citrix.clause_check_max_results | Maximum number of check results kept in the responseMessage | 20 | | bzm.citrix.logon_timeout | JMeterProperty that defines the maximum time to receive a Citrix session event of type LOGON when Citrix application starts | 20000 (in millis) | @@ -172,7 +179,6 @@ Plugin requires: - Citrix Receiver 4.12 (versions below this version have bugs, plugin does not work correctly) - Citrix Workspace 19.11 - #### Disable the desktop toolbar The Citrix administrator should disable the desktop toolbar. There are several ways to do this: @@ -209,13 +215,13 @@ You can also check that the ica file contains: #### Ensure consistency between machines If you intend to replay the script on another machine which will be the case for Blazemeter, make sure that the following items are consistent between the record and Blazemeter replay machines: -- Window Size (resolution), +- Window Size (screen resolution), - Window Colors and color depth, - System Font, - ClearType, - and the other Default Options settings for the Citrix client. -**These settings affect the hash values**, and **inconsistencies may cause sampling to fail**. +**These settings affect the hash values and screen coordinates (for OCR or HASH), and inconsistencies will cause sampling to fail**. To view the Citrix client settings, right-click an item from the Citrix program group and select Application Set Settings or Custom Connection Settings. (Note that the remote session on the Citrix server inherits the ClearType settings of the local machine.) diff --git a/citrix-client-win/pom.xml b/citrix-client-win/pom.xml index bfca8a7..aaefe51 100644 --- a/citrix-client-win/pom.xml +++ b/citrix-client-win/pom.xml @@ -7,7 +7,7 @@ com.blazemeter.jmeter citrix-parent - 0.5.4 + 0.5.5 citrix-client-win diff --git a/citrix-common/pom.xml b/citrix-common/pom.xml index 55e3031..8c4dc54 100644 --- a/citrix-common/pom.xml +++ b/citrix-common/pom.xml @@ -7,7 +7,7 @@ com.blazemeter.jmeter citrix-parent - 0.5.4 + 0.5.5 citrix-common diff --git a/citrix-jmeter/pom.xml b/citrix-jmeter/pom.xml index 2e1deb1..e86fea8 100644 --- a/citrix-jmeter/pom.xml +++ b/citrix-jmeter/pom.xml @@ -8,7 +8,7 @@ com.blazemeter.jmeter citrix-parent - 0.5.4 + 0.5.5 citrix-jmeter diff --git a/citrix-jmeter/src/main/java/com/blazemeter/jmeter/citrix/installer/CitrixInstaller.java b/citrix-jmeter/src/main/java/com/blazemeter/jmeter/citrix/installer/CitrixInstaller.java index d1e51dd..5c61983 100644 --- a/citrix-jmeter/src/main/java/com/blazemeter/jmeter/citrix/installer/CitrixInstaller.java +++ b/citrix-jmeter/src/main/java/com/blazemeter/jmeter/citrix/installer/CitrixInstaller.java @@ -54,7 +54,7 @@ private enum ARCHITECTURE { private static final String ADD_DWORD = "REG ADD \"%s\" /v \"%s\" /t REG_DWORD /d \"%s\""; - private static final String REGISTER_OCX = "regsvr32 C:\\Program Files (x86)\\Citrix\\ICA Client\\wfica.ocx"; + private static final String REGISTER_OCX = "regsvr32 /s \"C:\\Program Files (x86)\\Citrix\\ICA Client\\wfica.ocx\""; private static final String SAVESERVICE_EXCERPT = "/com/blazemeter/jmeter/citrix/installer/saveservice-excerpt.properties"; @@ -104,6 +104,7 @@ private static void updateSaveService() throws IOException { try ( InputStream inputStream = CitrixInstaller.class.getResourceAsStream(SAVESERVICE_EXCERPT)) { excerpt = IOUtils.toString(inputStream, StandardCharsets.ISO_8859_1); + excerpt = excerpt.replaceAll("\n", "\r\n"); LOGGER.info("{} contains {}", SAVESERVICE_EXCERPT, excerpt); } File saveServiceFile = new File(jmeterBinDir, "saveservice.properties"); @@ -286,6 +287,7 @@ private static boolean createRegKey(String path, String key, String expectedValu private static boolean runCommand(String cmd, List infoMsgs, List errors) throws IOException, InterruptedException { + LOGGER.info("Running commande line:"+cmd); Process process = Runtime.getRuntime().exec(cmd); // any output? StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream()); diff --git a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/installer/saveservice-excerpt.properties b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/installer/saveservice-excerpt.properties index 07a8bdc..dc10dbc 100644 --- a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/installer/saveservice-excerpt.properties +++ b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/installer/saveservice-excerpt.properties @@ -1,2 +1,5 @@ + + # Add the following line at the end of JMeter saveservice.properties file + _com.blazemeter.jmeter.citrix.sampler.CitrixSampleResultConverter=collection \ No newline at end of file diff --git a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/bzmCitrixTemplateWithParameters.xml b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/bzmCitrixTemplateWithParameters.xml index 72f76b2..9bb5325 100644 --- a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/bzmCitrixTemplateWithParameters.xml +++ b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/bzmCitrixTemplateWithParameters.xml @@ -17,7 +17,11 @@ ]]> + + + + diff --git a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplate.jmx b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplate.jmx index 038ba8a..8fa348e 100644 --- a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplate.jmx +++ b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplate.jmx @@ -13,11 +13,31 @@ + + citrix_use_https + + = + + + citrix_portal_scheme + + = + citrix_portal_host = + + citrix_portal_port + + = + + + citrix_portal_context_path + + = + citrix_app_name @@ -41,20 +61,6 @@ - - - - - - - - - - 6 - 500 - 60000 - - true @@ -122,150 +128,230 @@ - + + DO NOT MODIFY + false false + + + + X-Citrix-IsUsingHTTPS + ${citrix_use_https} + + + + + + + + + ${citrix_portal_host} + ${citrix_portal_port} + ${citrix_portal_scheme} + + + 6 + 500 + 60000 + + false false - - - - - ${citrix_portal_host} - 443 - https - - / - GET - true - false - true - false - - - - Detected the start of a redirect chain - + + ${__jexl3("${citrix_portal_context_path}" == "",)} + false + true + - - - - Accept-Language - en-US,en;q=0.5 - - - Upgrade-Insecure-Requests - 1 - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - - - - false - citrixContext - body onLoad='location="(.*?)";' - $1$ - nv_citrixContext - 1 - - + + + + + + + + + / + GET + true + false + true + false + + + + Detected the start of a redirect chain + + + + + + Accept-Language + en-US,en;q=0.5 + + + Upgrade-Insecure-Requests + 1 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + + + + false + citrixContext + body onLoad='location="(.*?)";' + $1$ + nv_citrixContext + 1 + + + + + + + + + + + + ${citrixContext}/ + GET + true + false + true + false + + + + Detected the start of a redirect chain + + + + + + Referer + ${citrix_portal_scheme}://${citrix_portal_host}/cgi/setclient?wica + + + Accept-Language + en-US,en;q=0.5 + + + Upgrade-Insecure-Requests + 1 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + + + + false + citrixContext + This document may be found<a HREF= (.*?)/> + $1$ + nv_citrixContext + 1 + children + + + + + ReceiverSmall.ico + + + Assertion.response_data + false + 16 + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/ - GET - true - false - true - false - - - - Detected the start of a redirect chain - + + ${__jexl3("${citrix_portal_context_path}" != "",)} + false + true + - - - - Referer - https://${citrix_portal_host}/cgi/setclient?wica - - - Accept-Language - en-US,en;q=0.5 - - - Upgrade-Insecure-Requests - 1 - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - - - - false - citrixContext - This document may be found<a HREF= (.*?)/> - $1$ - nv_citrixContext - 1 - children - - - - - ReceiverSmall.ico - - - Assertion.response_data - false - 16 - + + 1 + 0 + 0 + + + + + citrixContext + + + + ${citrix_portal_context_path} + + + false + + + + + + 1 + 0 + 0 + + + + groovy + + + true + if (vars["citrix_portal_port"] == "") { + vars.put("citrix_base_url", vars["citrix_portal_scheme"] + "://" + vars["citrix_portal_host"] + vars["citrixContext"]); + +} else { + vars.put("citrix_base_url", vars["citrix_portal_scheme"] + "://" + vars["citrix_portal_host"] + + ":" + vars["citrix_portal_port"] + vars["citrixContext"]); +} + + - ${citrix_portal_host} - 443 - https + + + ${citrixContext}/Home/Configuration POST @@ -282,7 +368,7 @@ Referer - https://${citrix_portal_host}${citrixContext}/ + ${citrix_base_url} Accept-Language @@ -292,10 +378,6 @@ X-Requested-With XMLHttpRequest - - X-Citrix-IsUsingHTTPS - Yes - Accept-Encoding gzip, deflate, br @@ -337,9 +419,9 @@ - ${citrix_portal_host} - 443 - https + + + ${citrixContext}/uiareas/PluginAssistant/DownloadNative.htm GET @@ -356,7 +438,7 @@ Referer - https://${citrix_portal_host}${citrixContext}/ + ${citrix_base_url} Accept-Language @@ -393,700 +475,701 @@ - - false - false - + + ${__jexl3("${citrixContext}" != "nv_citrixContext",)} + false + true + - - - - - false - format - json - = - true - - - false - resourceDetails - Default - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Resources/List - POST - true - false - true - false - - - - + + false + false + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - unauthorized - - - Assertion.response_data - false - 16 - - + + + + + false + format + json + = + true + + + false + resourceDetails + Default + = + true + + + + + + + UTF-8 + ${citrixContext}/Resources/List + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + unauthorized + + + Assertion.response_data + false + 16 + + + + + + + + + + + + ${citrixContext}/Authentication/GetAuthMethods + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/xml, text/xml, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + name="ExplicitForms" + + + Assertion.response_data + false + 16 + + + + + + + + + + + + ${citrixContext}/ExplicitAuth/Login + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + X-Citrix-AM-LabelTypes + none, plain, heading, information, warning, error, confirmation, image + + + Accept + application/xml, text/xml, */*; q=0.01 + + + X-Citrix-AM-CredentialTypes + none, username, domain, password, newpassword, passcode, savecredentials, textcredential + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + <AuthenticateResponse + + + Assertion.response_data + false + 16 + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/Authentication/GetAuthMethods - POST - true - false - true - false - - - - + + false + false + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/xml, text/xml, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - name="ExplicitForms" - - - Assertion.response_data - false - 16 - - + + + + + false + username + ${citrix_login} + = + true + + + true + password + ${citrix_password} + = + true + + + false + saveCredentials + false + = + true + + + true + loginBtn + Log On + = + true + + + false + StateContext + + = + true + + + + + + + UTF-8 + ${citrixContext}/ExplicitAuth/LoginAttempt + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + X-Citrix-AM-LabelTypes + none, plain, heading, information, warning, error, confirmation, image + + + Accept + application/xml, text/xml, */*; q=0.01 + + + X-Citrix-AM-CredentialTypes + none, username, domain, password, newpassword, passcode, savecredentials, textcredential + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + <Result>success</Result> + + + Assertion.response_data + false + 16 + + + + + + + + false + format + json + = + true + + + false + resourceDetails + Default + = + true + + + + + + + UTF-8 + ${citrixContext}/Resources/List + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + appUrl + $.resources[?(@.name =~ /${citrix_app_name}/)].launchurl + 1 + nv_appUrl + + + + + nv_appUrl + + + Assertion.response_data + false + 20 + variable + appUrl + + + + + + + + + + + + ${citrixContext}/Authentication/GetUserName + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/plain, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + ${citrix_login} + + Unexpected user + Assertion.response_data + false + 20 + variable + appUrl + + + + + + + + false + resourceTypes + Citrix.MPS.Application + = + true + + + + + + + UTF-8 + ${citrixContext}/Sessions/ListAvailable + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + ${citrix_login} + + Unexpected user + Assertion.response_data + false + 20 + variable + appUrl + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/ExplicitAuth/Login - POST - true - false - true - false - - - - + + ${__jexl3("${appUrl}" != "nv_appUrl",)} + false + true + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - X-Citrix-AM-LabelTypes - none, plain, heading, information, warning, error, confirmation, image - - - Accept - application/xml, text/xml, */*; q=0.01 - - - X-Citrix-AM-CredentialTypes - none, username, domain, password, newpassword, passcode, savecredentials, textcredential - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - <AuthenticateResponse - - - Assertion.response_data - false - 16 - - - - - - false - false - - - - - - - false - username - ${citrix_login} - = - true - - - true - password - ${citrix_password} - = - true - - - false - saveCredentials - false - = - true - - - true - loginBtn - Log On - = - true - - - false - StateContext - - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/ExplicitAuth/LoginAttempt - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - X-Citrix-AM-LabelTypes - none, plain, heading, information, warning, error, confirmation, image - - - Accept - application/xml, text/xml, */*; q=0.01 - - - X-Citrix-AM-CredentialTypes - none, username, domain, password, newpassword, passcode, savecredentials, textcredential - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - <Result>success</Result> - - - Assertion.response_data - false - 16 - - - - - - - - false - format - json - = - true - - - false - resourceDetails - Default - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Resources/List - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - appUrl - $.resources[?(@.name =~ /${citrix_app_name}/)].launchurl - 1 - nv_appUrl - - - - false - true - true - false - - - - - nv_appUrl - - - Assertion.response_data - false - 20 - variable - appUrl - - - - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/Authentication/GetUserName - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/plain, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - ${citrix_login} - - Unexpected user - Assertion.response_data - false - 20 - variable - appUrl - - - - - - - - false - resourceTypes - Citrix.MPS.Application - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Sessions/ListAvailable - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - ${citrix_login} - - Unexpected user - Assertion.response_data - false - 20 - variable - appUrl - + + false + false + + + + + + + + + + + ${citrixContext}/${appUrl} + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + */* + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + citrix_ica_file + ${__P(bzm.citrix.ica_files_folder,ica_files)} + + + + + Content-Type: application/x-ica; + + + Assertion.response_headers + false + 16 + + + + + [WFClient] + + + Assertion.response_data + false + 16 + + + + + + + ${__jexl3("${appUrl}" == "nv_appUrl",)} + false + true + + + + false + true + false + - - false - false - + + ${__jexl3("${citrixContext}" == "nv_citrixContext",)} + false + true + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/${appUrl} - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - */* - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - citrix_ica_file - ${__P(bzm.citrix.ica_files_folder,ica_files)} - - - - - Content-Type: application/x-ica; - - - Assertion.response_headers - false - 16 - - - - - [WFClient] - - - Assertion.response_data - false - 16 - - - + + false + true + false + + diff --git a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplateWithParameters.jmx b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplateWithParameters.jmx index 33e4a2f..3e708a2 100644 --- a/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplateWithParameters.jmx +++ b/citrix-jmeter/src/main/resources/com/blazemeter/jmeter/citrix/template/citrixRecordingTemplateWithParameters.jmx @@ -13,11 +13,31 @@ + + citrix_use_https + [=citrixUsingHttps] + = + + + citrix_portal_scheme + [=citrixPortalScheme] + = + citrix_portal_host [=citrixPortalHost] = + + citrix_portal_port + [=citrixPortalPort] + = + + + citrix_portal_context_path + [=citrixPortalContextPath] + = + citrix_app_name [=citrixApplicationName] @@ -41,20 +61,6 @@ - - - - - - - - - - 6 - 500 - 60000 - - true @@ -122,150 +128,230 @@ - + + DO NOT MODIFY + false false + + + + X-Citrix-IsUsingHTTPS + ${citrix_use_https} + + + + + + + + + ${citrix_portal_host} + ${citrix_portal_port} + ${citrix_portal_scheme} + + + 6 + 500 + 60000 + + false false - - - - - ${citrix_portal_host} - 443 - https - - / - GET - true - false - true - false - - - - Detected the start of a redirect chain - + + ${__jexl3("${citrix_portal_context_path}" == "",)} + false + true + - - - - Accept-Language - en-US,en;q=0.5 - - - Upgrade-Insecure-Requests - 1 - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - - - - false - citrixContext - body onLoad='location="(.*?)";' - $1$ - nv_citrixContext - 1 - - + + + + + + + + + / + GET + true + false + true + false + + + + Detected the start of a redirect chain + + + + + + Accept-Language + en-US,en;q=0.5 + + + Upgrade-Insecure-Requests + 1 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + + + + false + citrixContext + body onLoad='location="(.*?)";' + $1$ + nv_citrixContext + 1 + + + + + + + + + + + + ${citrixContext}/ + GET + true + false + true + false + + + + Detected the start of a redirect chain + + + + + + Referer + ${citrix_portal_scheme}://${citrix_portal_host}/cgi/setclient?wica + + + Accept-Language + en-US,en;q=0.5 + + + Upgrade-Insecure-Requests + 1 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + Accept + text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 + + + + + + false + citrixContext + This document may be found<a HREF= (.*?)/> + $1$ + nv_citrixContext + 1 + children + + + + + ReceiverSmall.ico + + + Assertion.response_data + false + 16 + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/ - GET - true - false - true - false - - - - Detected the start of a redirect chain - + + ${__jexl3("${citrix_portal_context_path}" != "",)} + false + true + - - - - Referer - https://${citrix_portal_host}/cgi/setclient?wica - - - Accept-Language - en-US,en;q=0.5 - - - Upgrade-Insecure-Requests - 1 - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - Accept - text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 - - - - - - false - citrixContext - This document may be found<a HREF= (.*?)/> - $1$ - nv_citrixContext - 1 - children - - - - - ReceiverSmall.ico - - - Assertion.response_data - false - 16 - + + 1 + 0 + 0 + + + + + citrixContext + + + + ${citrix_portal_context_path} + + + false + + + + + + 1 + 0 + 0 + + + + groovy + + + true + if (vars["citrix_portal_port"] == "") { + vars.put("citrix_base_url", vars["citrix_portal_scheme"] + "://" + vars["citrix_portal_host"] + vars["citrixContext"]); + +} else { + vars.put("citrix_base_url", vars["citrix_portal_scheme"] + "://" + vars["citrix_portal_host"] + + ":" + vars["citrix_portal_port"] + vars["citrixContext"]); +} + + - ${citrix_portal_host} - 443 - https + + + ${citrixContext}/Home/Configuration POST @@ -282,7 +368,7 @@ Referer - https://${citrix_portal_host}${citrixContext}/ + ${citrix_base_url} Accept-Language @@ -292,10 +378,6 @@ X-Requested-With XMLHttpRequest - - X-Citrix-IsUsingHTTPS - Yes - Accept-Encoding gzip, deflate, br @@ -337,9 +419,9 @@ - ${citrix_portal_host} - 443 - https + + + ${citrixContext}/uiareas/PluginAssistant/DownloadNative.htm GET @@ -356,7 +438,7 @@ Referer - https://${citrix_portal_host}${citrixContext}/ + ${citrix_base_url} Accept-Language @@ -393,700 +475,701 @@ - - false - false - + + ${__jexl3("${citrixContext}" != "nv_citrixContext",)} + false + true + - - - - - false - format - json - = - true - - - false - resourceDetails - Default - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Resources/List - POST - true - false - true - false - - - - + + false + false + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - unauthorized - - - Assertion.response_data - false - 16 - - + + + + + false + format + json + = + true + + + false + resourceDetails + Default + = + true + + + + + + + UTF-8 + ${citrixContext}/Resources/List + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + unauthorized + + + Assertion.response_data + false + 16 + + + + + + + + + + + + ${citrixContext}/Authentication/GetAuthMethods + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/xml, text/xml, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + name="ExplicitForms" + + + Assertion.response_data + false + 16 + + + + + + + + + + + + ${citrixContext}/ExplicitAuth/Login + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + X-Citrix-AM-LabelTypes + none, plain, heading, information, warning, error, confirmation, image + + + Accept + application/xml, text/xml, */*; q=0.01 + + + X-Citrix-AM-CredentialTypes + none, username, domain, password, newpassword, passcode, savecredentials, textcredential + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + <AuthenticateResponse + + + Assertion.response_data + false + 16 + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/Authentication/GetAuthMethods - POST - true - false - true - false - - - - + + false + false + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/xml, text/xml, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - name="ExplicitForms" - - - Assertion.response_data - false - 16 - - + + + + + false + username + ${citrix_login} + = + true + + + true + password + ${citrix_password} + = + true + + + false + saveCredentials + false + = + true + + + true + loginBtn + Log On + = + true + + + false + StateContext + + = + true + + + + + + + UTF-8 + ${citrixContext}/ExplicitAuth/LoginAttempt + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + X-Citrix-AM-LabelTypes + none, plain, heading, information, warning, error, confirmation, image + + + Accept + application/xml, text/xml, */*; q=0.01 + + + X-Citrix-AM-CredentialTypes + none, username, domain, password, newpassword, passcode, savecredentials, textcredential + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + <Result>success</Result> + + + Assertion.response_data + false + 16 + + + + + + + + false + format + json + = + true + + + false + resourceDetails + Default + = + true + + + + + + + UTF-8 + ${citrixContext}/Resources/List + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + appUrl + $.resources[?(@.name =~ /${citrix_app_name}/)].launchurl + 1 + nv_appUrl + + + + + nv_appUrl + + + Assertion.response_data + false + 20 + variable + appUrl + + + + + + + + + + + + ${citrixContext}/Authentication/GetUserName + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + text/plain, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + ${citrix_login} + + Unexpected user + Assertion.response_data + false + 20 + variable + appUrl + + + + + + + + false + resourceTypes + Citrix.MPS.Application + = + true + + + + + + + UTF-8 + ${citrixContext}/Sessions/ListAvailable + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + application/json, text/javascript, */*; q=0.01 + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Content-Type + application/x-www-form-urlencoded; charset=UTF-8 + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + + ${citrix_login} + + Unexpected user + Assertion.response_data + false + 20 + variable + appUrl + + + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/ExplicitAuth/Login - POST - true - false - true - false - - - - + + ${__jexl3("${appUrl}" != "nv_appUrl",)} + false + true + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - X-Citrix-AM-LabelTypes - none, plain, heading, information, warning, error, confirmation, image - - - Accept - application/xml, text/xml, */*; q=0.01 - - - X-Citrix-AM-CredentialTypes - none, username, domain, password, newpassword, passcode, savecredentials, textcredential - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - <AuthenticateResponse - - - Assertion.response_data - false - 16 - - + + false + false + + + + + + + + + + + ${citrixContext}/${appUrl} + POST + true + false + true + false + + + + + + + + + Referer + ${citrix_base_url} + + + Accept-Language + en-US,en;q=0.5 + + + Accept + */* + + + Csrf-Token + ${CsrfToken} + + + X-Requested-With + XMLHttpRequest + + + Accept-Encoding + gzip, deflate, br + + + User-Agent + Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 + + + + + + citrix_ica_file + ${__P(bzm.citrix.ica_files_folder,ica_files)} + + + + + Content-Type: application/x-ica; + + + Assertion.response_headers + false + 16 + + + + + [WFClient] + + + Assertion.response_data + false + 16 + + + + - - - false - false - - - - - - - false - username - ${citrix_login} - = - true - - - true - password - ${citrix_password} - = - true - - - false - saveCredentials - false - = - true - - - true - loginBtn - Log On - = - true - - - false - StateContext - - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/ExplicitAuth/LoginAttempt - POST - true - false - true - false - - - - + + ${__jexl3("${appUrl}" == "nv_appUrl",)} + false + true + - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - X-Citrix-AM-LabelTypes - none, plain, heading, information, warning, error, confirmation, image - - - Accept - application/xml, text/xml, */*; q=0.01 - - - X-Citrix-AM-CredentialTypes - none, username, domain, password, newpassword, passcode, savecredentials, textcredential - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - <Result>success</Result> - - - Assertion.response_data - false - 16 - - - - - - - - false - format - json - = - true - - - false - resourceDetails - Default - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Resources/List - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - appUrl - $.resources[?(@.name =~ /${citrix_app_name}/)].launchurl - 1 - nv_appUrl - - - + false true - true false - - - - - nv_appUrl - - - Assertion.response_data - false - 20 - variable - appUrl - - - - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/Authentication/GetUserName - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - text/plain, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - ${citrix_login} - - Unexpected user - Assertion.response_data - false - 20 - variable - appUrl - - - - - - - - false - resourceTypes - Citrix.MPS.Application - = - true - - - - ${citrix_portal_host} - 443 - https - UTF-8 - ${citrixContext}/Sessions/ListAvailable - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - application/json, text/javascript, */*; q=0.01 - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - Content-Type - application/x-www-form-urlencoded; charset=UTF-8 - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - - ${citrix_login} - - Unexpected user - Assertion.response_data - false - 20 - variable - appUrl - + - - false - false - + + ${__jexl3("${citrixContext}" == "nv_citrixContext",)} + false + true + - - - - - ${citrix_portal_host} - 443 - https - - ${citrixContext}/${appUrl} - POST - true - false - true - false - - - - - - - - - Referer - https://${citrix_portal_host}${citrixContext}/ - - - Accept-Language - en-US,en;q=0.5 - - - Accept - */* - - - Csrf-Token - ${CsrfToken} - - - X-Requested-With - XMLHttpRequest - - - X-Citrix-IsUsingHTTPS - Yes - - - Accept-Encoding - gzip, deflate, br - - - User-Agent - Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0 - - - - - - citrix_ica_file - ${__P(bzm.citrix.ica_files_folder,ica_files)} - - - - - Content-Type: application/x-ica; - - - Assertion.response_headers - false - 16 - - - - - [WFClient] - - - Assertion.response_data - false - 16 - - - + + false + true + false + + diff --git a/pom.xml b/pom.xml index 434f108..42dd91a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.blazemeter.jmeter citrix-parent - 0.5.4 + 0.5.5 pom Citrix Plugin for Apache JMeter