Hi i have a case where a partner is using a Progress openedge windows application against an Appserver.
They need to perform some bench to load several transaction to be able to give some vision about sizing when the number of users increases.
For now i suggested to use our Progress OpenEdge PASOe server (based on Apache Tomcat) to ba able to have a HTTP connection from the windows based application to the Application server.
I would like to know if we can use this configuration with teststudio to :
- track some traffic between the client and the Apache Tomcat server
- review the traffic and change some aspects
- run load testing using such informations to simulate a number of user running some similar transactions
Do we have any experience using Teststudio outside a context of a web application ?
5 Answers, 1 is accepted
Thank you for contacting us with details for the requirements you want to find a solution for.
Based on the shared information I hope we can propose a possible way to automate the load testing to simulate that http connection between the Windows based application to the Application server. Please find my suggestions below:
1. Test Studio load testing can capture any http traffic generated on the machine. For the particular scenario, you will need to choose to capture a new session and a device as a traffic source in the Capture traffic wizard.
Additional notes on this topic:
- it is recommended to exit any other applications on the machine, which may generate http traffic - that way you the captured requests will be only these you need from the target application.
- alternatively, you can capture the traffic using Fiddler - it is a free Telerik product, which captures http traffic and its core functionality is actually implemented within Test Studio for the load testing scenarios capturing. The Fiddler trace can be easily imported as a user profile in the load test.
- once you have the traffic captured, you may need to filter the profile, delete some unnecessary requests, etc.
- depending on the generated traffic on the target machine, you may prefer capturing the traffic with Fiddler, as it allows you to easier filter the captured requests.
2. Once you have the required traffic, probably you need to data drive the requests in order to change the user, for example. Test Studio load testing detects some dynamic parameters in the captured traffic and we call these dynamic targets. These, which were automatically detected are directly listed in the Dynamic targets view.
- there could be some parameters in the http traffic capture, which are not determined as dynamic, but still you may need them. For such scenarios we have implemented the custom dynamic targets - you can choose parameters from the body, headers or cookies of a response and pass that to any of the following in the capture requests.
- once a dynamic target is added and enabled to be used, it can be data driven if there is a data source attached to the test.
3. With the above described adjustments, you should now have a load test prepared to run and simulate the amount of virtual users you have selected when setting up the test.
I hope the shared details will be useful for you to get started with this project. Of course, if you have any further questions or need additional assistance, please, do not hesitate to get back to me.
Thank you in advance for your time and cooperation.
Thanks for the reply...
In my case the capture does not work . my application is Winform based but connects through HTTP with a specific port to a Apache Tomcat server.
Is there something to mention about a specific port to listen on ?
I tested similar scenario on my end and it seems that the Test Studio built-in traffic capture feature does not detect the http traffic generated by a desktop application.
However, there still remains the option to import the traffic from a Fiddler capture - I also tested this one and can confirm it works as expected. So here are the actions necessary, to record and then use the http traffic in Test Studio load test.
1. Download and install Fiddler.
2. Exit any browsers and other applications which may generate http traffic - this will ease the adjustment of the captured traffic.
3. Enable Traffic Capture in Fiddler.
4 .Start the WinForms application which traffic you need to record.
5. Follow the session content and disable the capturing, once you have recorded the necessary http requests.
6. Select all requests and then save these into a *.saz file - File->Save...->All Sessions...->enter name for the session and save the file.
7. Open Test Studio and a load test. Choose the option to import traffic using a Fiddler trace.
These steps will allow you to get the necessary requests in a Test Studio load user profile. Then, you can proceed with the fine adjustments mentioned in my previous reply - managing the dynamic targets and setting the test up to be executed (recommendations from points 2. and 3. in my previous reply).
Please, give a try to the above suggestion and let me know if that works for you. Thank you in advance for your cooperation.
i used Filddler.
calling a Rest Service on my Apache Tomcat works in Chrome.
Within my Progress OpenEdge application it does not work... The client application connects through HTTP to Apache Tomcat but i guess the request are not real HTTP requests.... So i cannot see anything.
I guess you used a C# front end and run HTTP client requests.... this should also work with OpenEdge ...
I will see with OpenEdge Product Management at Progress Corp if something is possible.
Thanks for getting back to me and please excuse me for the late response.
You have correctly suggested that I have tested a C# front end, which runs HTTP client requests, to confirm if the proposed solution works as expected. However, it seems that the client application you need to test may not be using real HTTP calls and thus, Test Studio is unable to capture the traffic.
I hope the information was still valuable for you and you can continue the discussions on your end. Of course, in case there are any other topics you may need to elaborate on or have further questions, please let me know.