Administrators Farshad Mohajeri Posted July 15, 2015 Administrators Posted July 15, 2015 Scalability is one of the major concerns when developing web applications. Each web application must be able to serve multiple users. Number of users can vary depending on type of application. An application designed for a small intranet may be targeted by 10-50 concurrent users at most while an internet web application may be used by more than 500-1000 simultaneous users. In order to make sure your web application is ready for deployment in multi-user production environment several tests must be performed. Firstly, application must be analyzed for its resource usage. For a desktop app where only a single instance of your app is running resource usage will not be your main concern because your application can use all of resources available in system. On the contrary, a web application server is designed to serve multiple users and each user can be dedicated only a fraction of available resources. Scalability simply means ability of your project to scale up when number of sessions increases in a real world system. A scalable web app should use several techniques to manage and use system resources in most efficient way possible. For example, if each of your sessions consumes ~1000 KB of memory (~1MB) in this case a web app running 400 sessions will require at least 400 MB of physical/virtual memory to run properly. However, if each session consumes more than 10MB then it is easy for your app to run out of memory when there are more than 100 active sessions. Other system resources such as disk space, database connections and etc. should also be taken into account. For developers it may not be an easy task to simulate production environment on his/her desktop. Your app maybe running smoothly when there are only a few sessions, but when number sessions start to pass above a certain threshold several resource related issues and scalability problems may arise. To deal with such scalability issues uniGUI is equipped with a very useful named Stress Test Tool which aims to simulate a multi-user environment right on your desktop. Stress Test Tool is located under ..\uniGui\Utils\StressTestTool folder and it is deployed with full source code so it can be customized by developers if needed. This tool introduces many advanced features which enables developers to simulate a production environment under heavy load. For details please visit: http://www.unigui.com/doc/online_help/index.html?stress_test_tool.htm 6
Administrators Farshad Mohajeri Posted October 9, 2015 Author Administrators Posted October 9, 2015 The most recent and updated version of Stress Test Tool developer manual can be found in file uniGUI.PDF.under uniGUI installation folder.
Sistema Fenix Posted April 18, 2016 Posted April 18, 2016 Hi Farshad, How change to true options->soAllowSessionRecording in runtime? I would like of put in file ini, because I forgot to change and leave the production version with this option active. Thanks
Administrators Farshad Mohajeri Posted April 18, 2016 Author Administrators Posted April 18, 2016 Hi Farshad, How change to true options->soAllowSessionRecording in runtime? I would like of put in file ini, because I forgot to change and leave the production version with this option active. Thanks In ServerModule->OnBeforeInit event you can change this setting.
MarkLince Posted July 14, 2017 Posted July 14, 2017 Hi Farshad, I'm trying to run Stress Test tool, but it gives error "could not load SSL Library" My App is running on IIS 8.5 server at: https://www.abilitycaresoftware.com/careplannerweb.dll site has a godaddy cert installed and is set for https only. What am I missing? Thanks for your help in advance. Mark
Administrators Farshad Mohajeri Posted July 14, 2017 Author Administrators Posted July 14, 2017 Hi Farshad, I'm trying to run Stress Test tool, but it gives error "could not load SSL Library" My App is running on IIS 8.5 server at: https://www.abilitycaresoftware.com/careplannerweb.dll site has a godaddy cert installed and is set for https only. What am I missing? Thanks for your help in advance. Mark Hi, You need to copy SSL dlls to stress tool exe folder. DLLs can be found under uIndy folder.
MarkLince Posted July 14, 2017 Posted July 14, 2017 Hi Farshad, Thank you for that, now I'm getting a socket error #10054. I've tried with AV and firewall disabled server side with same result. I don't know why I should be getting a peer reset error. Running IIs 8.5 on Win 2012. Could it be to do with my IIS config. here are my settings <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <handlers accessPolicy="Read, Execute, Script" /> <defaultDocument> <files> <add value="abilitycarelauncher.dll" /> </files> </defaultDocument> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> <add name="strict-transport-security" value="max-age=31536000; includeSubDomains; preload" /> <add name="X-Frame-Options" value="SAMEORIGIN" /> <add name="X-Xss-Protection" value="1;mode=block" /> <add name="X-Content-Type-Options" value="nosniff" /> <add name="Referrer-Policy" value="strict-origin" /> <add name="Expect-CT" value="max-age=0; report-uri="https://abilitycaresoftware.com/E-CT/Reports"" /> </customHeaders> </httpProtocol> <rewrite> <outboundRules> <rule name="Remove Server Responce Header"> <match serverVariable="RESPONSE_SERVER" pattern=".*" /> <action type="Rewrite" value="Hello Nosy Parker" /> </rule> </outboundRules> </rewrite> </system.webServer> </configuration> Thanks Mark
Administrators Farshad Mohajeri Posted July 14, 2017 Author Administrators Posted July 14, 2017 It can be AV and firewall on your side too. What is the URL you use to connect. Does it start with a HTTPS:// ?
Administrators Farshad Mohajeri Posted July 14, 2017 Author Administrators Posted July 14, 2017 Problem is that uniGUI Stress Test Tool sends this URL to test server availability: https://www.abilitycaresoftware.com/careplannerweb.dll/DUMMYTEST Your server doesn't like this URL and aborts the operation.
Administrators Farshad Mohajeri Posted July 14, 2017 Author Administrators Posted July 14, 2017 Workaround is to modify TestURL() function and disable it for now.
MarkLince Posted July 15, 2017 Posted July 15, 2017 Hi Farshad, Thanks very much. Disabling TestURL() allowed the tool to start recording. I now have the same error 10054 when I stop the recording. It looks to be the same issue as with TestURL() except its in the GetRecordFile procedure at line; procedure TSToolForm.GetRecordFile; .... HttpClient.Get(uHost, RespContent); <------------ .... I have buttoned up my IIS server as much as I can, do I need to relax the security on it to allow the test to run properly? Thanks again and sorry to bug you on this I know how busy you are. Regards Mark
MarkLince Posted July 15, 2017 Posted July 15, 2017 Hi Farshad, The recording files do seem to be saving on the server in the record folder. protecting the httpClient.get with a try except suppresses the error and allows me to see the recordings and run them. New issue is access violation for each session in the test; Thanks Mark
Administrators Farshad Mohajeri Posted July 15, 2017 Author Administrators Posted July 15, 2017 I will modify tool to fix this issue in next build. Sent from my SM-N900 using Tapatalk
InnovatorCoder Posted January 9, 2020 Posted January 9, 2020 I tried to access this link http://www.unigui.com/doc/online_help/index.html?stress_test_tool.htm but the page is not exist Quote 404 Category not found
Sherzod Posted January 9, 2020 Posted January 9, 2020 http://www.unigui.com/doc/online_help/introduction2.htm http://www.unigui.com/doc/online_help/usage.htm http://www.unigui.com/doc/online_help/recording_a_session.htm http://www.unigui.com/doc/online_help/playback_a_session.htm http://www.unigui.com/doc/online_help/server_dos_attack_protection_c.htm http://www.unigui.com/doc/online_help/additional_settings.htm
Mehmet Emin Posted May 27, 2020 Posted May 27, 2020 I have a problem with stress test tool that when ServerRoot of my ServerModule is set to some directory (this is my default working) the web server does not return records file so that stress test tool rises an exception and cannot stoprun the session. If I disable setting ServerRoot stress test tool works fine. So please have a look into this case and allow working even the ServerRoot location is set. I hope I made it clear. Thanks very much
Administrators Farshad Mohajeri Posted May 28, 2020 Author Administrators Posted May 28, 2020 What exception is raised in stress test tool?
Mehmet Emin Posted May 28, 2020 Posted May 28, 2020 procedure TSToolForm.GetRecordFile; var HttpClient : TIdHTTP; HttpCmp : TIdCompressorZLib; uHost : string; RespContent : TMemoryStream; begin uHost := AddTrailingChar(UrlEdit.Text, '/')+'records/'+FTempRecordFile; HttpClient:=TIdHTTP.Create(nil); HttpCmp := TIdCompressorZLib.Create(nil); RespContent := TMemoryStream.Create; try HttpClient.Compressor := HttpCmp; HttpClient.ConnectTimeout := CN_TIMEOUT; HttpClient.ReadTimeout := RD_TIMEOUT; HttpClient.Request.AcceptEncoding := 'gzip'; HttpClient.Request.Host := uHost; HttpClient.Get(uHost, RespContent); //JUST HERE --------------------------- Debugger Exception Notification --------------------------- Project uniStressTest.exe raised exception class EIdHTTPProtocolException with message 'HTTP/1.1 404 Not Found'. --------------------------- Break Continue Help --------------------------- Thanks
Administrators Farshad Mohajeri Posted May 28, 2020 Author Administrators Posted May 28, 2020 OK I will check. Thanks
Recommended Posts