blazemeter / citrixplugin Goto Github PK
View Code? Open in Web Editor NEWA repository for the Citrix Plugin for JMeter
License: Apache License 2.0
A repository for the Citrix Plugin for JMeter
License: Apache License 2.0
The System Security Notice notification banner in our server prevents the logon to run automatically which causes the script to fail. This banner is shown before the Citrix User session login.
Script Flow :
ERROR Details :
2021-01-05 12:31:43,295 [StandardJMeterEngine id:43] INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2021-01-05 12:31:43,295 [Search 1-1 id:46] INFO o.a.j.t.JMeterThread: Thread started: Search 1-1
2021-01-05 12:31:43,295 [Search 1-1 id:46] INFO c.b.j.c.s.StartApplicationSampler: Search 1-1 on sampler 00 Citrix Application Launcher ensures OCR is initialized
2021-01-05 12:31:43,295 [Search 1-1 id:46] INFO c.b.j.c.s.StartApplicationSampler: OCR initialized in 0 millis
2021-01-05 12:31:43,295 [Search 1-1 id:46] INFO o.a.j.s.FileServer: Stored: /Data/SkyPriceData.csv
2021-01-05 12:31:44,920 [ComThread for Search 1-1 id:47] INFO c.b.j.c.c.w.WinCitrixClient: Sess: des_dim=nullxnull, des_depth=nullbpp, dim=1024x768, depth=24bpp, Scr: dim=2546x1357, depth=32bpp
2021-01-05 12:32:44,414 [Search 1-1 id:46] ERROR c.b.j.c.s.CitrixBaseSampler: com.blazemeter.jmeter.citrix.sampler.SamplerRunException: Timed out waiting for Logon:Unable to handle Citrix client action. See log file for more informations.
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:166)
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.sample(CitrixBaseSampler.java:269)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:635)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.lang.Thread.run(Unknown Source)
Caused by: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for Logon
at com.blazemeter.jmeter.citrix.client.windows.WinCitrixClient.startSession(WinCitrixClient.java:279)
at com.blazemeter.jmeter.citrix.client.AbstractCitrixClient.start(AbstractCitrixClient.java:375)
at com.blazemeter.jmeter.citrix.sampler.StartApplicationSampler.doClientAction(StartApplicationSampler.java:97)
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:162)
... 6 more
com.blazemeter.jmeter.citrix.sampler.SamplerRunException: Timed out waiting for Logon:Unable to handle Citrix client action. See log file for more informations.
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:166) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.sample(CitrixBaseSampler.java:269) [citrix-jmeter-0.7.0.jar:?]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:635) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
Caused by: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for Logon
at com.blazemeter.jmeter.citrix.client.windows.WinCitrixClient.startSession(WinCitrixClient.java:279) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.client.AbstractCitrixClient.start(AbstractCitrixClient.java:375) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.StartApplicationSampler.doClientAction(StartApplicationSampler.java:97) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:162) ~[citrix-jmeter-0.7.0.jar:?]
... 6 more
2021-01-05 12:32:44,414 [Search 1-1 id:46] INFO o.a.j.t.JMeterThread: Stop Test Now detected by thread: Search 1-1
@3dgiordano provided a pre-release version of the plugin before containing a fix for this but I was hoping it can be integrated on newer releases :)
Issue happens if you quit JMeter while recording
Class CitrixClient.java has a method:
int getForegroundWindowID();
That ID (a negative short int?) is useless.
Proposal: new method
String getForegroundWindowCaption();
As a user, I want to have an extractor working on Citrix sample results to
Some of the users fail to initialize when number of users in the test is set to more than 10.
I can consistently initialize all users and complete the tests when using 1, 5 and 10 users.
The following did not resolve the issue :
Error Details
ERROR c.b.j.c.s.CitrixBaseSampler: com.blazemeter.jmeter.citrix.sampler.SamplerRunException: Timed out waiting for Active App:Unable to handle Citrix client action. See log file for more informations.
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:166)
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.sample(CitrixBaseSampler.java:269)
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:635)
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
at java.lang.Thread.run(Unknown Source)
Caused by: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for Active App
at com.blazemeter.jmeter.citrix.client.windows.WinCitrixClient.startSession(WinCitrixClient.java:279)
at com.blazemeter.jmeter.citrix.client.AbstractCitrixClient.start(AbstractCitrixClient.java:375)
at com.blazemeter.jmeter.citrix.sampler.StartApplicationSampler.doClientAction(StartApplicationSampler.java:97)
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:162)
... 6 more
com.blazemeter.jmeter.citrix.sampler.SamplerRunException: Timed out waiting for Active App:Unable to handle Citrix client action. See log file for more informations.
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:166) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.sample(CitrixBaseSampler.java:269) [citrix-jmeter-0.7.0.jar:?]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:635) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_251]
Caused by: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for Active App
at com.blazemeter.jmeter.citrix.client.windows.WinCitrixClient.startSession(WinCitrixClient.java:279) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.client.AbstractCitrixClient.start(AbstractCitrixClient.java:375) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.StartApplicationSampler.doClientAction(StartApplicationSampler.java:97) ~[citrix-jmeter-0.7.0.jar:?]
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.handleClientAction(CitrixBaseSampler.java:162) ~[citrix-jmeter-0.7.0.jar:?]
... 6 more
Hi I am using Citrix recorder. when I run script it works as expected but when i start recording using Citrix Recorder and download ICA, It initiate after 1 minute and there is a gap of more than one min in each https call.
I am getting issue, Citrix timed out waiting for connection whereas ICA is download and Application is launched successfully as shown below in log and images
ICA Downloaded Successfully.
Citrix Recorder/Citrix Receiver Launched Successful
Log Error
2020-12-03 02:17:21,156 INFO o.a.j.u.SSLManager: KeyStore created OK
2020-12-03 02:17:21,156 WARN o.a.j.u.SSLManager: Keystore file not found, loading empty keystore
2020-12-03 02:17:41,317 INFO o.a.j.t.JMeterThread: Thread is done: ICA-Download-By-Citrix-Recorder 2-1
2020-12-03 02:17:41,317 INFO o.a.j.t.JMeterThread: Thread finished: ICA-Download-By-Citrix-Recorder 2-1
2020-12-03 02:17:41,323 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2020-12-03 02:17:41,464 INFO c.b.j.c.r.CitrixRecorder: ICA file successfully downloaded in : D:\DownloadICA\4503600b-76fe-4e1e-8b0d-51babe3d3dd1.ica
2020-12-03 02:17:56,620 ERROR c.b.j.c.c.w.WinCitrixClient: Reason: 11
2020-12-03 02:17:56,656 ERROR c.b.j.c.r.g.CitrixRecorderGUI: Error occured starting citrix application com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for OnConnect
java.util.concurrent.ExecutionException: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for OnConnect
at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_251]
at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_251]
at javax.swing.SwingWorker.get(Unknown Source) ~[?:1.8.0_251]
at com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI$StartRecording.done(CitrixRecorderGUI.java:1108) [citrix-jmeter-0.6.0.jar:?]
at javax.swing.SwingWorker$5.run(Unknown Source) [?:1.8.0_251]
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source) [?:1.8.0_251]
at sun.swing.AccumulativeRunnable.run(Unknown Source) [?:1.8.0_251]
at javax.swing.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source) [?:1.8.0_251]
at javax.swing.Timer.fireActionPerformed(Unknown Source) [?:1.8.0_251]
at javax.swing.Timer$DoPostEvent.run(Unknown Source) [?:1.8.0_251]
at java.awt.event.InvocationEvent.dispatch(Unknown Source) [?:1.8.0_251]
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) [?:1.8.0_251]
at java.awt.EventQueue.access$500(Unknown Source) [?:1.8.0_251]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_251]
at java.awt.EventQueue$3.run(Unknown Source) [?:1.8.0_251]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_251]
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source) [?:1.8.0_251]
at java.awt.EventQueue.dispatchEvent(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [?:1.8.0_251]
at java.awt.EventDispatchThread.run(Unknown Source) [?:1.8.0_251]
Caused by: com.blazemeter.jmeter.citrix.client.CitrixClientException: Timed out waiting for OnConnect
at com.blazemeter.jmeter.citrix.client.windows.WinCitrixClient.startSession(WinCitrixClient.java:274) ~[citrix-jmeter-0.6.0.jar:?]
at com.blazemeter.jmeter.citrix.client.AbstractCitrixClient.start(AbstractCitrixClient.java:346) ~[citrix-jmeter-0.6.0.jar:?]
at com.blazemeter.jmeter.citrix.recorder.CitrixRecorder.startRecord(CitrixRecorder.java:183) ~[citrix-jmeter-0.6.0.jar:?]
at com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI$StartRecording.doInBackground(CitrixRecorderGUI.java:1095) ~[citrix-jmeter-0.6.0.jar:?]
at com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI$StartRecording.doInBackground(CitrixRecorderGUI.java:1074) ~[citrix-jmeter-0.6.0.jar:?]
at javax.swing.SwingWorker$1.call(Unknown Source) ~[?:1.8.0_251]
at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_251]
at javax.swing.SwingWorker.run(Unknown Source) ~[?:1.8.0_251]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[?:1.8.0_251]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[?:1.8.0_251]
at java.lang.Thread.run(Unknown Source) ~[?:1.8.0_251]
2020-12-03 02:18:00,704 INFO c.b.j.c.c.w.WinCitrixClient: Sess: des_dim=1920x1080, des_depth=nullbpp, dim=1920x1016, depth=24bpp, Scr: dim=1920x1080, depth=32bpp
Hi,
I encounter sometime errors during the execution of the scenario.
To diagnose it, I use the View Results Tree and the Citrix Interaction.
When I see it at first glance, it seems correct (the zone to search the OCR text and the value looks the same). But when I look more precisely, there is a small difference (I will create a bug for this problem in the OCR engine).
Actually, it would be really nice to display on the left of the Citrix Interaction the value that was expected and the value that was effectively recognized (either ocr or hash) so that we could simply see the difference.
If both text (expected and actual) are one under the other, we could see the difference at a glance.
Hi,
I do not know if it is a a problem in citrix plugin or jmeter globaly but I case, I send it to you :
If I modify a value of a Citrix Interaction (the X or Y value of the End Clause) and clic immediately on the save button, my modification is lost (it is the same with ctrl+s). If I just leave the field to put the focus elsewhere, the save is correct...
Hi,
I am first time trying BlazeMeter CitrixPlugin to performance test my Desktop based application published through Citrix. I am having trouble downloading ICA file. Please find attached doc with detailed information.
Thanks in advance for your help.
I am using following details.
Details: I am using following details to connect to Citrix
Providing following credentials
Getting following errors
Let me know what i am missing . All above details are working as expected for me manually using browser.
I have also noticed that following information is missing in Download ICA image.
Server Port, Server IP/Name & port.
Also, I need to Launch App from Citrix Portal which is desktop application and need to implement performance testing on this.
Also, If I use HTTPS Recording template using JMeter, scripts work fine but using Blazemetter template i am getting following issues mentioned above in images attached,
When using WINDOW_CLOSED check, a NullPointerException might happen if sequence of event received a Window destroyed event while WINDOW_CLOSED is checking.
Affects 0.3.0 as mentioned in release notes.
Already fixed in upcoming version.
Hi,
I am trying to record a text input i.e. Password string. and password is "P@&&w0rd" in this case, i have noticed that it do not treat as as text but as a sequence. suppose i have to login using multiple accounts, then in this case the sequence will be hard-coded. Can you suggest me how to deal with this?
Add a new element that allows to extract text from a screenshot.
This is required to be able to build real-life test scripts.
Having a Test plan that contains Citrix Interaction Sampler Do CTRL+F Enter some data Hit search
A stacktrace appears in logs:
2019-01-08 13:44:21,297 ERROR o.a.j.g.a.SearchTreeDialog: Error occurred searching for word:ICA File in node:18 inputFileName java.lang.NullPointerException: null at org.apache.jmeter.testelement.property.ObjectProperty.getStringValue(ObjectProperty.java:104) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.testelement.AbstractTestElement.getSearchableTokens(AbstractTestElement.java:642) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.gui.action.SearchTreeDialog.searchInTree(SearchTreeDialog.java:364) [ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.gui.action.SearchTreeDialog.doSearch(SearchTreeDialog.java:332) [ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.gui.action.SearchTreeDialog.actionPerformed(SearchTreeDialog.java:242) [ApacheJMeter_core.jar:5.0 r1840935] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) [?:1.8.0_191] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) [?:1.8.0_191] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) [?:1.8.0_191] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) [?:1.8.0_191] at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) [?:1.8.0_191] at java.awt.Component.processMouseEvent(Component.java:6539) [?:1.8.0_191] at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) [?:1.8.0_191] at java.awt.Component.processEvent(Component.java:6304) [?:1.8.0_191] at java.awt.Container.processEvent(Container.java:2239) [?:1.8.0_191] at java.awt.Component.dispatchEventImpl(Component.java:4889) [?:1.8.0_191] at java.awt.Container.dispatchEventImpl(Container.java:2297) [?:1.8.0_191] at java.awt.Component.dispatchEvent(Component.java:4711) [?:1.8.0_191] at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904) [?:1.8.0_191] at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535) [?:1.8.0_191] at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476) [?:1.8.0_191] at java.awt.Container.dispatchEventImpl(Container.java:2283) [?:1.8.0_191] at java.awt.Window.dispatchEventImpl(Window.java:2746) [?:1.8.0_191] at java.awt.Component.dispatchEvent(Component.java:4711) [?:1.8.0_191] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) [?:1.8.0_191] at java.awt.EventQueue.access$500(EventQueue.java:97) [?:1.8.0_191] at java.awt.EventQueue$3.run(EventQueue.java:709) [?:1.8.0_191] at java.awt.EventQueue$3.run(EventQueue.java:703) [?:1.8.0_191] at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_191] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_191] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84) [?:1.8.0_191] at java.awt.EventQueue$4.run(EventQueue.java:733) [?:1.8.0_191] at java.awt.EventQueue$4.run(EventQueue.java:731) [?:1.8.0_191] at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_191] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_191] at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [?:1.8.0_191] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [?:1.8.0_191]
This Affects 0.3.0
Clearing field Timeout on End Clause of samplers lead to reset of clause (no more clause) when we switch to another GUI element.
Already fixed in upcoming 0.4.0
I'm trying to record some actions of a Notepad application from Citrix StoreFront.
Everything works fine for a single vuser. The Notepad is launched, all my keystrokes and mouse clicks are replayed seamlessly. However, when I set the number of threads to 2 and run the test in jmeter non-gui mode, I notice that two notepads launch but the actions pass in only one thread.
Does that mean I need to use two machines/LGs to test with 2 threads? Doesn't this plugin support a headless mode? Did I miss any key configuration?
If you duplicate a Citrix Interaction that contains many key sequences (for exemple like pressing scroll up many times), the original and duplicated citrix interactions are clearly differents but the keysequences are the same.
Actually if you modify the keysequence of the original citrix interaction, it impacts the cloned citrix interaction...
I suspect it is some sort of clone of java objects that have the same reference for the key sequence list...
Hi,
I have done some work with the citrix plugin and find it is a good bit of software, quite useful for citrix workload testing.
I have a case I can not simply handle with the current functions of the citrix plugin. My case is to clic on a small icon in a screen whose content is web based. With absolute coordinate, not problem. But in my case, the coordinate of the icon to clic is not always the same depending on the length of text just before the icon. So I can not determine an absolute coordinate that works in every case.
The solution could be a Citrix XY coordinate Extractor that has as input :
What do you think of this ?
Could you please add this to the citrix plugin ? It would be amazing.
Regards,
Using Mozilla Firefox application, do a recording with 1 Application Launcher and then a text input.
Replay, the Application Launcher fails ignoring the configured timeout and in logs we see:
Unable to recognize text in area java.awt.Rectangle[x=61,y=-10,width=55,height=24]: Unable to recognize text in area java.awt.Rectangle[x=61,y=-10,width=55,height=24]: Exceeding image area java.awt.Rectangle[x=0,y=0,width=640,height=480]. 2019-01-29 23:56:32,865 DEBUG c.b.j.c.c.s.c.PollingStrategy: Test #1 fail context: com.blazemeter.jmeter.citrix.clause.ClauseComputationException: Unable to recognize text in area java.awt.Rectangle[x=61,y=-10,width=55,height=24]: Unable to recognize text in area java.awt.Rectangle[x=61,y=-10,width=55,height=24]: Exceeding image area java.awt.Rectangle[x=0,y=0,width=640,height=480]. at ....
Hi,
I have many numbers to recognize (they are variables in my scenario) and it regularly falls in error through OCR recognition.
Here is an exemple in image :
The OCR do not recognize the correct number of zeros :
30739070800013 is the expected value.
3073907080013 is the recognized value.
Another one :
30761630000017 expected
3076163000017 recognized
Another one :
30243218200012 expected
0243218200012 recognized
Hope this helps you to improve the OCR engine.
Tested with both versions 0.3.0 and 0.4.3.
Scenario: trying out the Plugin against a Citrix published application that has a Windows warning on login to say "All login attempts are audited" or something of that sort.
Template is changed to accommodate fetching of the ICA file. The samplers leading up to Citrix Application Launcher step are successful and the Citrix window opens. It then hangs on the Warning window without allowing interaction in the Citrix window, while nothing changes in JMeter (cannot click on "Application Started" button). After timeout period, Citrix window closes, and JMeter test will not allow force stop of test. Need to force stop JMeter to continue.
Attempted resolution: Tried adding in Citrix interaction element to click or press enter before validating with Application Started. Since it was the Citrix Application Launcher element that's hanging, we tried to run the Citrix Interaction sampler in a parallel controller, so that the application could be started and the interaction could take place, but that didn't work.
See the JMeter Log attached, in case it is of any help.
When successful following checks return before screen is rendered:
This makes them unusable without adding artificial think time.
Currently plugin works only on JVM 32 Bits.
This enhancement is to allow supporting JVM 64 bits.
Hello Eric (Using github as I don't have your mail),
1/ Bad news , I don't reproduce the bugs you showed me at the end of conf call:
So I'll need user.properties, jmeter.log and the content of popup that appears on start as discussed.
Attach them to this issue and edit title.
2/ Good news is that I reproduce the other issue with negative coordinates.
For information:
Hi,
Thanks for this plugin. I have installed and configured Versions: 0.5.5 from jmeter plugin. I tried to build this code but somehow found issues when installing in JMeter.
The Downloaded Versions: 0.5.5 is installed successfully. But ICA is not downloading properly. It would be great if you can provide step by step documentation for this plugin.
Jmeter [5.4.3] with Citrix. Can any of you help how to find the active window name ?
We are able to validate window using window exists but in this case we are giving the window name and checking it.
Is there a assertion or any other method to get the active window name ?
As discussed yesterday, you see in logs:
Unable to compute clause value at test #13: Unable to hash area java.awt.Rectangle[x=-645,y=-309,width=68,height=26]:
Een Appl Under Test sometimes has asynchronous windows, for example: an error dialog for example witch apear without any perticulair user interaction.
You cant "catch" these windows, a Citrix Interaction block met End Clause is useless, there is no predefined user interaction
Hi, when the thread/user encounters an error, is there a way to automatically generate a screen capture on the user's current state ?
Exception:
2019-01-09 10:56:25,642 WARN o.a.j.g.u.MenuFactory: Could not instantiate class: com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_191] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_191] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_191] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_191] at org.apache.jmeter.gui.util.MenuFactory.getGUIComponent(MenuFactory.java:174) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.util.MenuFactory.initializeMenus(MenuFactory.java:141) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.util.MenuFactory.<clinit>(MenuFactory.java:106) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.control.gui.TestPlanGui.createPopupMenu(TestPlanGui.java:92) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.tree.JMeterTreeNode.createPopupMenu(JMeterTreeNode.java:185) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.action.EditCommand.doAction(EditCommand.java:46) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.action.ActionRouter.performAction(ActionRouter.java:88) ~[ApacheJMeter_core.jar:r1850815] at org.apache.jmeter.gui.action.ActionRouter.lambda$actionPerformed$0(ActionRouter.java:70) ~[ApacheJMeter_core.jar:r1850815] at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) [?:1.8.0_191] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) [?:1.8.0_191] at java.awt.EventQueue.access$500(EventQueue.java:97) [?:1.8.0_191] at java.awt.EventQueue$3.run(EventQueue.java:709) [?:1.8.0_191] at java.awt.EventQueue$3.run(EventQueue.java:703) [?:1.8.0_191] at java.security.AccessController.doPrivileged(Native Method) [?:1.8.0_191] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74) [?:1.8.0_191] at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:1.8.0_191] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [?:1.8.0_191] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [?:1.8.0_191] Caused by: java.lang.NumberFormatException: For input string: "r1850815" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) ~[?:1.8.0_191] at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122) ~[?:1.8.0_191] at java.lang.Float.parseFloat(Float.java:451) ~[?:1.8.0_191] at com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI.setupTemplate(CitrixRecorderGUI.java:187) ~[citrix-jmeter-0.3.0.jar:?] at com.blazemeter.jmeter.citrix.recorder.gui.CitrixRecorderGUI.<init>(CitrixRecorderGUI.java:179) ~[citrix-jmeter-0.3.0.jar:?] ... 26 more
Already fixed in next delivery
Hi Team,
It is to request your support regarding using this plugin in non-gui mode.
Scenario: When trying to run this in non-gui mode. Test run gets stuck at 'Citrix Application Launcher'. Works fine in GUI mode.
Please if anybody could assist regarding this issue urgently.
Can reach out to me at [email protected]
Thanks
Pritpal Singh
It seems there is no way of handling application login prompt that appears before main application window is loaded.
While recording, once Citrix app is launched, there is a login prompt displayed for the main application. At this point "Application Started" button in the recorder is still disabled. Entering user credentials manually and clicking Login button will result in main application being loaded. Only then "Application Started" button becomes enabled. However, there is no way of handling this login prompt window during replay. When attempting to use "Citrix Interaction" after "Request ICA File" step, it results in error "No running Citrix client found.". Please advise.
Citrix Interaction End Clause 'Window Gets Foreground' is to late with quick windows. (see logging below)
The plugin sees de window with caption 'Voer bewegingscode in', but it still gets an timeout on "Window Gets Foreground" End Clause. The end clause works but is it is not garenteed it is still active/ on the foreground.
`2022-09-15 10:19:37,301 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController
2022-09-15 10:19:37,301 DEBUG o.a.j.t.p.AbstractProperty: merging in class org.apache.jmeter.testelement.property.CollectionProperty
2022-09-15 10:19:37,301 DEBUG c.b.j.c.s.CitrixBaseSampler: Use Client from CitrixSessionHolder
2022-09-15 10:19:37,316 DEBUG c.b.j.c.s.CitrixBaseSampler: On sampler Klik verrekijker, Citrix client is running: true whereas policy is REQUIRED
2022-09-15 10:19:37,316 DEBUG c.b.j.c.c.AbstractCitrixClient: Adds a listener, Total: 1
2022-09-15 10:19:37,316 DEBUG c.b.j.c.s.CitrixBaseSampler: On sampler Klik verrekijker starts listening Citrix client before sampling operations
2022-09-15 10:19:37,316 DEBUG c.b.j.c.s.InteractionSampler: Thread Group 1-1 on sampler Klik verrekijker samples click at pos X=1240, Y=575 (rel=false) with butt=[LEFT] and modifiers=[]
2022-09-15 10:19:37,316 TRACE c.b.j.c.c.AbstractCitrixClient: Relays mouse button query with bUp=false, position=java.awt.Point[x=1240,y=575], origPosition=null, btns=[LEFT] and modifiers=[] to 1 listeners
2022-09-15 10:19:37,316 TRACE c.b.j.c.c.AbstractCitrixClient: Relays mouse button query with bUp=true, position=java.awt.Point[x=1240,y=575], origPosition=null, btns=[LEFT] and modifiers=[] to 1 listeners
2022-09-15 10:19:37,316 TRACE c.b.j.c.s.InteractionSampler: Thread Group 1-1 MOUSE_CLICK waits 996ms before next mouse click
2022-09-15 10:19:37,412 DEBUG c.b.j.c.c.w.e.SessionAdapter: onWindowForeground: windowID=66586
2022-09-15 10:19:37,413 DEBUG c.b.j.c.c.w.WinCitrixClient: Potential foreground window: 66586
2022-09-15 10:19:37,419 DEBUG c.b.j.c.c.w.e.SessionAdapter: onWindowCreate: window=[ID=66586, caption=Voer bewegingscode in, style=0x96c80000, extendedStyle=0x100101]
2022-09-15 10:19:37,428 DEBUG c.b.j.c.c.w.WinCitrixClient: Sets window info:[caption=Voer bewegingscode in, area=java.awt.Rectangle[x=527,y=407,width=229,height=131]] to window 66586
2022-09-15 10:19:37,428 DEBUG c.b.j.c.c.w.WinCitrixClient: Confirm window 66586 as foreground.
2022-09-15 10:19:37,428 DEBUG c.b.j.c.c.w.WinCitrixClient: Switches foreground to window 66586 with caption 'Voer bewegingscode in'
2022-09-15 10:19:37,428 DEBUG c.b.j.c.c.AbstractCitrixClient: Relays FOREGROUND window event to 1 listeners
2022-09-15 10:19:37,495 DEBUG o.a.j.v.ViewResultsFullVisualizer: Expanded: [[Root]]
2022-09-15 10:19:37,495 DEBUG o.a.j.v.ViewResultsFullVisualizer: Elements: [Root]
2022-09-15 10:19:37,905 DEBUG c.b.j.c.c.w.e.WindowAdapter: onLargeIconChange for window 66586: largeIconHash=d0ad781b4f866144e79f2c67d1274ba6
2022-09-15 10:19:37,906 DEBUG c.b.j.c.c.w.e.WindowAdapter: onSmallIconChange for window 66586: smallIconHash=2e741538f5592da24fe834cefc630916
2022-09-15 10:19:38,315 DEBUG c.b.j.c.c.AbstractCitrixClient: Removes a listener, Total: 0
2022-09-15 10:19:38,315 DEBUG c.b.j.c.s.CitrixBaseSampler: Stops listening Citrix client after sampling operations
2022-09-15 10:19:38,315 DEBUG c.b.j.c.s.CitrixBaseSampler: On sampler Klik verrekijker waits for end clause using WINDOW_FOREGROUND strategy
2022-09-15 10:19:38,315 DEBUG c.b.j.c.c.ClauseHelper: Builds predicate for clause WINDOW_FOREGROUND with expected value='Voer bewegingscode in'
2022-09-15 10:19:38,315 DEBUG c.b.j.c.c.AbstractCitrixClient: Adds a listener, Total: 1
2022-09-15 10:19:38,315 DEBUG c.b.j.c.c.s.c.ListeningStrategy: Starts listening Citrix windows events at 1663229978315 with timeout=10000
2022-09-15 10:19:48,327 DEBUG c.b.j.c.c.AbstractCitrixClient: Removes a listener, Total: 0
2022-09-15 10:19:48,327 DEBUG c.b.j.c.c.s.c.ListeningStrategy: Stops listening Citrix windows events at 1663229988327 with expired=true
2022-09-15 10:19:48,327 DEBUG c.b.j.c.s.CitrixBaseSampler: On sampler Klik verrekijker didn't get snapshot using strategy WINDOW_FOREGROUND
2022-09-15 10:19:48,342 DEBUG c.b.j.c.c.w.WinCitrixClient: Screenshot saved in ..
2022-09-15 10:19:48,358 DEBUG c.b.j.c.c.w.WinCitrixClient: Deletes screenshot ..
2022-09-15 10:19:48,358 DEBUG c.b.j.c.s.CitrixBaseSampler: On sampler Klik verrekijker created a default snapshot WINDOW_FOREGROUND
2022-09-15 10:19:48,412 ERROR c.b.j.c.s.CitrixBaseSampler: Sample error CLAUSE_TIMEOUT
com.blazemeter.jmeter.citrix.sampler.SamplerRunException: Check of end clause has failed.
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.checkClause(CitrixBaseSampler.java:244) ~[citrix-jmeter-0.7.6.jar:?]
at com.blazemeter.jmeter.citrix.sampler.CitrixBaseSampler.sample(CitrixBaseSampler.java:274) ~[citrix-jmeter-0.7.6.jar:?]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651) ~[ApacheJMeter_core.jar:5.5]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570) ~[ApacheJMeter_core.jar:5.5]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) ~[ApacheJMeter_core.jar:5.5]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) ~[ApacheJMeter_core.jar:5.5]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Preparing class org.apache.jmeter.extractor.JSR223PostProcessor
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Setting scriptLanguage=groovy
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Setting parameters=
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Setting filename=
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Setting cacheKey=true
2022-09-15 10:19:48,412 DEBUG o.a.j.t.TestBeanHelper: Setting script=import com.blazemeter.jmeter.citrix.sampler.CitrixSessionHolder;
import com.blazemeter.jmeter.citrix.client.CitrixClient;
import com.blazemeter.jmeter.citrix.client.WindowInfo;
import com.blazemeter.jmeter.citrix.client.handler.CitrixClientHandler;
String windowTitle = "";
log.info("@@@@@@@@@@@@@@@@@@@@@@@@@ Window titels @@@@@@@@@@@@@@@@@@@@@@@@@");
CitrixClient client = CitrixSessionHolder.getClient();
if (client != null) {
log.info(sprintf("@@@@@@@@@@@@@@@@@@@@@@@@@: %s", "client != null"));
log.info(sprintf("@@@@@ Klik verrekijker"));
client.getWindowInfos().forEach((window) -> {
String title = window.getCaption();
log.info(sprintf("@@@@@ Window: %s", title));
});
}
return true
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@@@@@@@@@@@@@@@@@@@@@ Window titels @@@@@@@@@@@@@@@@@@@@@@@@@
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@@@@@@@@@@@@@@@@@@@@@: client != null
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Klik verrekijker
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: ICA Seamless Host Agent
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: C:\Windows\system32\cmd.exe
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: DONNA Planbord -- 20220905-SD-20220911 : 20220905-SD-20220911
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window:
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: Voer bewegingscode in
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: Windows sign-in
2022-09-15 10:19:48,427 INFO o.a.j.e.J.JSR223 PostProcessor1: @@@@@ Window: UsrLogon.cmd
2022-09-15 10:19:48,427 DEBUG o.a.j.c.GenericController: Calling next on: class org.apache.jmeter.control.GenericController
`
Running existing script, JMeter logs attempted save folder and subsequent error in creating that folder:
2019-01-11 11:18:17,302 INFO c.b.j.c.l.CitrixIcaFileSaver: ICA File Saver checking ICA save folder D:\devData\apache-jmeter-5.0\ica_files 2019-01-11 11:18:17,303 INFO c.b.j.c.l.CitrixIcaFileSaver: ICA File Saver will create ICA save folder D:\devData\apache-jmeter-5.0\ica_files as it does not exist, creating 2019-01-11 11:18:17,307 ERROR o.a.j.JMeter: Uncaught exception: org.apache.jorphan.util.JMeterStopTestException: Element ICA File Saver failed to created ICA save folder D:\devData\apache-jmeter-5.0\ica_files at com.blazemeter.jmeter.citrix.listener.CitrixIcaFileSaver.testStarted(CitrixIcaFileSaver.java:178) ~[citrix-jmeter-0.3.0.jar:?] at com.blazemeter.jmeter.citrix.listener.CitrixIcaFileSaver.testStarted(CitrixIcaFileSaver.java:166) ~[citrix-jmeter-0.3.0.jar:?] at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:215) ~[ApacheJMeter_core.jar:5.0 r1840935] at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:384) ~[ApacheJMeter_core.jar:5.0 r1840935] at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
As per documentation, JMeter property is set in the user.properties file as:
bzm.citrix.ica_files_folder=C:\<jmeter home folder>\ica_files
but this doesn't change the behavior after JMeter restart.
Full jmeter.log
Even if the downloaded .ica file used for connection has the option TWIMode=On, which should open a seamless connection, the connection is opened Windowed Mode (I can see in the background the Windows Server the published app is running on)
If I open the same downloaded file manually, the connection is seamless.
Post Processor: Citrix OCR Extractor exists and works wel
Proposal: Post Processor: Citrix HASH Extractor
Proposal: Post Processor: Citrix Active Window Caption Extractor
Hi,
My Script was working as expected. Earlier icon was without + Sign i.e.
Last day i believe due to some change in the Citrix, My application on Citrix has name +Sign Prefix to app name
Due to this change, i am facing this issue and a message box to contact administrator.
My machine has installed following Citrix Reciever
Would be great if you can tell me what cause this connection fail issue.
Thanks
Enviroment Details:
Windows Server 2012 R2
Jmeter 5.4
citrix-plugin 0.7.3.
AdpoptJDK 11.0.10 (32-bit)
Citrix Workspace 1912
I can run Citrix Plugin Test Plans via the GUI and CLI, but when I try to run the test plan on a remote server, I get the following error:
Error in rconfigure() method java.rmi.MarshalException: error marshalling arguments; nested exception is:
java.io.NotSerializableException: com.blazemeter.jmeter.citrix.client.windows.WinCitrixClientFactory
I tried different version of JDK, and previous versions of JMeter but the error still occurs when I try to run the test plan on remote. Even a new Citrix Test Plan with only a manually added Citrix Element Launcher has the error.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.