Simulating high load on a php app - performance

I want to simulate high traffic load on my web app in the localhost. I found lots of simulators for java and python but none for PHP. Does somebody know such (open-source) simulators to help develop my application?

I don't see why you need a load tester "for PHP. Any load tester like apache bench, siege etc will simulate your desired request/connection rates and probably do a better job than anything written in PHP.

Related

Can i test native ios app with Jmeter using Simulator

Can i test native ios app with Jmeter using Simulator? Also, my app requires login.
If not what is the best tool i can use for that?
If you want to measure your application performance JMeter won't help you, it's a load testing tool which acts on a network protocol level.
So if you want to collect application-side performance metrics and detect slow parts of your application it's better to use Instruments (comes with Xcode), see i.e. How to find and fix slow code using Instruments article for more details.
JMeter can help you to simulate hundreds or thousands of iOS application users concurrently accessing the backend or database, but this is the test against the backend, not against the application. If this is something you're interested in you could record your mobile application traffic using JMeter's HTTP(S) Test Script Recorder and once done replay it with increased number of virtual users to see how your backend handles the load. Check out Load Testing Mobile Apps Made Easy article for the overall concept.

What service to use for deploying my flask + dash application

I am building a small application with dash and flask. Where my user can upload his csv/excel file and have a look at the graphs being generated.
I assume the size of each excel file could be around hardly 50MB max / week.
I have 'ZERO' knowledge on servers and deployment etc. Can anyone guide or enlighten me on this area. Also this application is just for an internal purpose so we are not allowed to go easy on the budget.
My random google searches gave me options like,
1. AWS
2. Heroku
Which would be a right option and why ? Considering price and ease of use.
Thanks !
I will share some of mine web dev knowledge, so.. in my company we use flask for all server dev, using many of his libs(like marshmallow, sqlalchemy, etc) and making improvements to them, flask offers you a big flexibility and fast development, but your request thread is poor, so i highly recommend to use a load balancer, the most famous load balancer for flask is Gunicorn, is easy to set and use. For Http server we use Nginx, its like Apache, but make to work with Websockets more easy, and to use with Gunicorn just make a proxy. For the Host, we use AWS, and work very fine for big and little applications, but your application is small and your budget too, so i recommend use the pythonanywhere server, its easy to use and optimized for python webservers. And for frontend we use Vue.js framework, makes our page more beautiful and fast to dev.

What are websites or applications for practicing performance testing from home

I want to practice performance testing at home using some load testing tool like jmeter. Can anybody tell me some links of websites or applications on which I can practice performance testing by throwing load by load testing tool from home?
It is not a LEGAL way to conduct load/stress test on any live websites/web applications without the permission.
So, you can deploy your own sample application or download sample applications available online and deploy it in your local server like Apache HTTP server or Apache Tomcat etc.
From my knowledge, You can use WebTours sample application from HP LoadRunner as an application to put your load.
Download HP Load Runner community edition from here. free for 50 vusers for life time. You need to create an account in the website.
You can download the webtours application from the HP website (comes with Apache HTTP server, which acts as a Web server).
Setup WebTours as per the instructions here
Confirm the successful installation/configuration by accessing the application from the browser (similar to http://localhost:8080/WebTours). The app is about flight booking (though not in real time ;) ).
Now, you can use the WebTours application as an AUT (Application Under Test)
Either you can continue with Load Runner or download latest JMeter version (3.1 as of now)
JMeter tutorials:
Getting Started
Component Reference
Builiding a Test plan
For Load Runner, there is documentation available in the following link to start with:
http://lrhelp.saas.hpe.com/en/12.53/help/WebHelp/Content/WelcomeContent/c_Welcome.htm
There is community support available managed by HP.
Use the sample applications which ship with the tool
Take your choice of open source application, install them on servers you own, manage and control. Use these applications as targets.
You are welcome to use api.jmeter.ninja. I built it for that purpose. A more formal API declaration is on it''s way but you can start with
http://api.jmeter.ninja/example.html.
http://api.jmeter.ninja/objects.xml
http://api.jmeter.ninja/objects/${OBJECT}.XML
Where ${OBJECT} is taken from the objects.xml page.
Or swap xml for dot json for the same in Jason format.
Exercises/Tutorial is available at http://api.jmeter.ninja/jmeter.pdf
Currently I just use this service for my own training sessions. But I hope to make it more generally available in the near future. There a currently no automatic limits so please just use your common sense and don't run high at throughput for a sustained periods of time. Anything under a total 100k requests is no problem.
Only caveat is that service is provided on a best effort basis at this point. Any abusive/problematic users may be blocked without notice.

Network traffic simulation test

I've got a PHP site up and running, and the db is mysql. before launching the site, I would like to test the traffic handling. Now am assuming that there are soe softwares that would simulate the traffic and log the processes running on my site. Any recommendation of software I should use? the traffic doesn't have to be real, but nonetheless, I would like to generate a high traffic to investigate the threshold of the site.
Appreciate the help
You can use Gatling https://github.com/excilys/gatling.
It's a stress tool written in Scala which aims at being more efficient and lighter than Jmeter.
Basically you record a scenario on your website and then run it 'n' times in parallel.
Here is the wiki for more infos https://github.com/excilys/gatling/wiki/Basic-Usage
You can use Jmeter:
It's free.
it's easy to Start with lot of documentation on its Website and on internet
it has a proxy feature to easily create test plan from browser navigation
It is easy to start up processes on other machines. It remote testing, can be done from GUI or console.
The scripts can be written in beanshell, java, or any jsr223 language ( groovy, Javascript, scala, jexl ...)
it has a lot of built- in samplers and thanks to its plugin architecture it's very Easy to add new ones or use any scripting engine to do what's missing
it has great user mailing list
it has very reactive support
it's now a top Level Apache
it can run thousands of users
professional solutions exist to run it from cloud
...
See:
Performing a Stress Test on Web Application?
Best way to stress test a website
How do you test the performance of a website?

Load-testing a web application

How does one go about testing the server-side performance of a web application?
I'm working on a small web application (specifically, it will solely be responding to AJAX requests with database rows). I want to see how it performs under load. However, I cannot upload it to an internet host right away. The development environment is, however, part of the local intranet, so I can use as many machines as I want to hammer the development server, presumably using Python in conjunction with urllib2.
My question is, is such an approach really accurate for determining the high-load performance of a server-side script? Is there a better way to do this? Am I missing something here?
Have you tried a tool like Apache JMeter? http://jmeter.apache.org/

Resources