Load Testing tool for web applications [closed] - asp.net

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am trying to load test a web application, but I am having a hard time finding good tools that are affordable. I cam across Web Performance Load Testing Tool which is pretty cool, but limits you to 10 users and after that it costs thousands.
Does anyone know any good techniques for load testing a web application?
Thanks

JMeter is definitely worth a look:
http://jmeter.apache.org/
Relatively straightforward to learn and pretty easy to get up and running.

We've been using a site called http://loadimpact.com/ - it allows tests from multiple locations and scripted paths. As long as you understand what it's doing and what's it's telling you it's pretty reasonable.
Trying to do Load Testing on a budget is pretty tough to do and achieve meaningful results as you'll run into bottlenecks on networks if you're not using multiple injectors etc to simulate real users.
John

I reviewed here some more tools

I went with Visual Studio

If you want loadtesting to be 100% compatible with your website, i would recommend www.browsermob.com. they use REAL browsers in their load tests. All you need to do is record a selenium script using the firefox selenium-ide addon, upload the script to browsermob, and execute.
However, there are also other tools, that works on different layers. browsermob/selenium works on the gui layer with real browsers, i believe they are the only load testing tool which does this. HP Loadrunner (click and script), Neotys Neoload also works on the gui layer. However they dont use real browsers, they have their own built in browser that really isn't suited for next gen web applications (web2.0/ajax and alike).
On the other hand, you have the tools that works on the http layer (sniffs the http traffic and records the http get and post requests). This toolset includes Grinder, jMeter. HP Loadrunner also has an url based protocol to handle this (which also is the most popular way of using HP Loadrunner afaik). This route however forces you to include application logic in your tests if you are testing a rich internet application (ex ajax push/poll).
So basically it's all about what application you are going to test and what your budget is for a testing tool.
For rich internet applications i would probably recommend browsermob.com which is based on selenium, or roll your own selenium testing platform using selenium-grid (requires alot of hardware). The only downside is that you will have to implement/purchase your own serverside monitoring toolset, as browsermob don't have this atm. And also if you need more monitoring on the client side, you probably want to have a proxy between browsermob/selenium.
Monitoring is where loadrunner really does a good job, they have all kinds of monitors and graphing (client side and server side) where you correlate graphs and data and easily spot patterns and problems in your application and server systems. However HP Loadrunner doesn't come cheap.
Neoload is a tool im not very familiar with, but im guessing it's like the little brother of HP Loadrunner, much cheaper but with less functionality and monitoring.
jMeter and Grinder are opensource tools for loadtesting, they are powerfull tools. But the drawback is that they only work on the http layer. However, it's only a drawback if you have to handle ajax applications. for a basic website with no ajax/web2.0 features where a single http request is a new page load. then this probably is the tool for you.

Disclaimer: I am a founder of Cloud Assault
https://www.cloudassault.com is a service that provides load and scalability testing services for web-sites, APIs, and Internet infrastructure. If you're doing continuous integration check us out. You can drive everything from creating, monitoring, and retrieving results of tests through our API.

Related

Deploying an R app with a GUI [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I developed an R application and I want to deploy it.
Currently the application consists of a set of functions to be run from the command line, like an R package. In order to deploy it, I am thinking of repackaging R Portable adding the necessary libraries and my code to it. My main problem is choosing a proper GUI toolkit.
Production Environment
My app is a single-user one (i.e. a Desktop application) and the target platform is Windows. It could bootstrap in R and then call the toolkit, or bootstrap, say, in Java and then call the R engine. The GUI should first and foremost feed the app functions. It should also grab the function graphical output.
Possible Alternatives
Here is a potential list of alternatives. I’d like to know if they meet/fit the requisite environement described.
Java JRI is now released only as a part of rJava, but while the latter is clearly documented, I am unable to find docs and tutorials for the former.
As for Deducer, it is presented as a GUI front-end, but I found out that it is also a GUI toolkit
TCL/Tk bindings seem a natural choice for R and are well documented, but someone complains about limitations of this toolkit.
RGtk2 seems interesting and there are also some tutorials around.
gWidgets is one of the rare toolkits to sport a package vignette!
Despite I don’t need a real web application, an interesting option would be interfacing R with JavaScript/HTML. As most of us, I am familiar with this environment and the app could benefit of the many JS libraries.
The problem is that the beautiful Shiny server and rApache are for Linux only and this is probably true probably Concerto too. Instead Rserve runs on Windows and, while there is no official JS client, I found the third party rserve-js and also a node.js client.
Rook, by the same author of rApache, should be platform agnostic (isn't it?).
R Server Pages could work, but I didn't find examples on the functions HttpDaemon and HttpRequest in the vignette or reference manual.
I run some simple examples with gWidgetsWWW. It works, but it seems to produce canned web pages, without the possibility of modifying the HTML code.
EDIT
Let me clarify my question. I am not surveying your personal preferences.
The technologies or products mentioned here tend to be very young and not widespread. It would be very unpleasant to discover, after investing months of code, that they are not yet ready or don’t fit production. So I would like to know (not your subjective tastes, but) if they are able to work in the environment described above.
We have created a kind of webapp building on rApache and Ruby on Rails beside some other technologies at rapporter.net - that turned out to act rather a framework to host R-based statistical applications in the means of Rapplications instead of our initial goal to create a user-friendly online front-end to R. I'd warmly suggest to check out our features, as you might save tons of resources by not dealing with server-side, CMS and other boring issues, but could concentrate on the statistical tool.
Anyway, beside promoting our stuff, let me summarize my experiences:
rApache is definitely ready for production, but please note that only for rather stateless algorithms (by default Apache would start bunch of workers so the same user/client would end up interacting with different R sessions in each query). E.g. RServe would be a better alternative for a stateful application.
AFAIK Shiny server is meant to host dedicated statistical tools and applications -- just like our Rapplication service with or without DB backend -- with some customizable user input. You would need some technical skills to do so and also providing a (HA) environment might require way too much extra resources. This can be a huge advantage or disadvantage based on your requirements and expectations.
The hugest issue in such question should be security (like using RAppArmor or sandboxR), not just the R connector back-end, as users will interact with your servers (if hosted in the cloud). Desktop applications are a bit more developer-friendly, but supporting all major platforms can be a no-no in the era of tablets and smartphones. The cloud app can run on any device with a browser.
You should choose the optimal solution based on your requirements. There are bunch of tools ready for production, and each has its own advantages and special use cases. Just check out which related packages/applications are still under development with support, and answer a few questions like:
Is there any need to connect to databases?
What types of user input is needed (e.g. only parameters, datasets, R commands)?
Desktop/cloud app? Are you sure? If the later, would you like to care with the setup, maintenance and support?
Do you run any computational intensive tasks?
Do you want to implement an application to help users with repetitive and standardized tasks or rather providing a rather general and extensible software?
Do you need a responsive application with interactive setup or using that for reporting purposes?
What output formats do you need?
What other technologies are you familiar with? It's rather hard to built a Meteor-based app with a NoSQL backend if you worked with MySQL, PHP, Java or C# in the past.
I'm about to do something similar. The fastest way ( in respect of both deployment time and future application performance) seems to be c# interfacing with R through R.NET. In Visual Studio you will benefit from incredible visualisation options with just few clicks, and setting up interactive/drill down charts it's quite straightforward too. As you also mentioned, RServe (with Java) is another valuable option.
EDIT
If a web application is not required to run on a public ip address the r package Rook it's an interesting option. Some example with Rook: using ggplot2, using googleVis

NODE.JS versus IIS (Why node) [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Whats the point of node.js creating its own server and tries listening on it, isn't IIS/apache give us all of that? I understand its based on I/O Completion but we have web-servers technology in place. Can someone explain what can be achieved via node (apart from the java script on server side, which can be also achieved via SignalR) that can't be done via ASP.NEt and why we should focus so much on node when we have a tone of technology under asp.net stack
Any classic example of node? typically for a enterprise dev. shop
Most web programming are for data display & eCommerce applications which are mostly database intensive, though lately it has been mash-up as well with web services, yes mobile web is a different game due to hardware sensors I agree but what is Node giving us which ASP.NET with SignalR can't give us?
TIA
What I find very interesting with Node is that everything is event based, which is different than programming ASP.NET or PHP where behavior is more sequential. Not a bad thing, just a different way of doing things.
You can program the server itself (as opposed to programming applications that run on the server) to do more than serving files, the typical example with Node is the chat room application where you broadcast messages to all participants and each can send messages to the server. By programming your own server events (like listen, error, connect etc) you have a lot of control over how things go server side.
Then of course npm, the node package manager, is definitely a plus over having to manually work the dependencies if you want to use 3rd party libs.
To host an ASP.NET site/app you need IIS which is a proprietary system, whereas Apache and Node are more open. Granted though, Node hosting is not as widespread as Apache based hosting.
Hope this answers some of your questions
Each technology can achieve anything. If you prefer ASP.NET over Node, use it. ASP.NET is extremely powerful and there is no reason to use Node over ASP.NET when you have the expertise and software/money to run your services. Node is just different; it has a different execution model (no threading whatsoever) and above all, it is open source and free. It is easy to get started on any OS, and easy to deploy on any OS. But in the end, it comes down to; what do you prefer?

Best tool: Distributed load test for asp.net applications [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
We want a high performance testing tool for a distributed scenario
We want to collect data from clients and from server (memory usage, cpu usage, response time, .net calls etc).
Most of our applications are using .Net 4.0 or Classic Asp.
We have 4 servers. We want 1 controller and three agents working together for testing, collecting data.
What's the best tool for this scenario?
ps: We've tried Visual studio 2012 ultimate and it seems promising. I don't know other tools that fits the scenario.
Give Load Tester a try: http://www.webperformance.com/load-testing/ (disclaimer: I work there). It has a monitoring agent that will run on your Windows servers to collect the metrics you mentioned and a lot more. It also collects client-side metrics such as page load time. The LITE version is free and can run simple tests with unlimited users.
Take a look at Rational Performance Tester. I was about to purchase a license for one of our projects but didn't push through for reasons not related to the software. Looked promising back then.
I would split things up to keep it simple.
First I would check what the average requests per seconds is when using your servers to generate load. For that there is a small tool included in Apache Http Server called ab.exe. It's easy to setup to generate requests.
If you think that you get acceptable response times all is well.
If not, use something like Jetbrains DotTrace (in your app) to collect data when generating load from one server.

Silverlight Or ASP.NET [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
What's the advantage of one over the other? I am so tempted to implement everything in silverlight now, so is ASP.NET, in particular, with Ajax, going to be dead?
For an enterprise solution especially, with 100+ views and 1000+ pages, is it still feasible?
Why isn't silverlight adopted that much by most enterprises? It is mostly used for videos and galleries, etc.
Cheers
Two completely different tools.
They aren't even competitors, much less one killing the other off. Silverlight just came out, requires browser plugins and a client-side runtime, and only has a fraction of the .Net framework available to it. Enterprise hasn't adopted it yet because most clients are wary about having to roll out browser plugins (anyone remember IE5 and ActiveX?) and still consider Flash a more mature and viable way to do client-side browser apps.
ASP.Net works with any web browser, is well-established, has access to the full .Net framework and the web environment, and can easily handle the load that you are sort-of describing, as long as you know how to set it up properly.
Silverlight is a client-side based solution. It's a miniature .NET runtime and Windows Presentation Foundation package, rolled into one and made (somewhat) cross-platform.
Silverlight won't work on your iPhone, it won't work on really old PCs, etc... You can use it in the enterprise, but if you're doing an enterprise based app based on it, you should probably just develop your stuff in WPF and get all of the features of .NET.
Silverlight isn't adopted much because either A) enterprises are using Windows Forms or WPF because they can or B) because it's relatively new to the game, and it remains to be seen how much traction it will get in the marketplace vs. Flash and Java.
Some advantages/disadvantages:
Silverlight
Lower installed base (although increasing at a good pace), due to necessary VM.
You can program in one language, any of the .Net languages supported for Silverlight
Equivalent apps may perform better on the Silverlight VM due to compiled code nature.
ASP.Net
Higher installed base, due to apps being executed on browser, no extra VM needed.
Ususally use multiple languages for programming - C#/VB.Net, CSS, JavaScript, HTML (there are tools that allow you to circumvent this such as the Google Web Toolkit (GWT).
Equivalent functionality web apps may perform more poorly due to interpreted nature of code executed by the browser.
Why isn't Silverlight adopted by enterprise? Because most computers would need a client installation to view the site. Flash is widespread (most computers have at least some version). HTML and Javascript are even more commonly supported. But Silverlight would definitely be an annoyance which would lose some users.
That said, we use some Silverlight on our internal apps. We have a portal/intranet which runs in a controlled environment and we use some Silverlight there. But Flash and Ajax on the public site.
I can do some amazing things faster in Silverlight than with ASP.net, which would be perfect for a targeted population like enterprise customers. I can't run Silverlight off of my Iphone but I have accessed some of my ASP.net apps from it so that's one example where ASP.net wins.
I'd say it will grow but even at version 3, it's a jumble of codeplex projects and 3rd party controls.
I'm looking for a solution now for drag and drop treeview which I can do easily in AJAX but having trouble finding a solution with silverlight and I've tried on my own.
I would learn both and mix them.
I've targeted certain areas of my personal sites for Silverlight, but am wary of overloading a user with too much. For a blog, for example, I wouldn't redo the whole site in Silverlight--that's overkill--and similar to how you wouldn't have (or shouldn't have) an entire site done in Flash. No matter what, some people will have it blocked or not installed at all, and why exclude potential users/clients/readers?
There's the fact that clients need the runtime installed, which means I'm hesitant to convert any critical functionality over to Silverlight for fear someone just won't have or want to install the runtime.
As far as professionally, we are moving forward with web apps that at least partially make use of Silverlight, but the targeted audience is fairly well-controlled in that we can tell them, "You'll need to have Silverlight installed", and we can reasonably be certain they'll comply. For internal tools where it makes sense we are 100% Silverlight all the way as we have total control over that audience. Again, though, the usage has to make sense.
I am tempted to say go with silverlight, its installbase is still low but its because there still isn't very many silverlight apps out there. It is still very easy to install(not as easy as flash though) so I dont see that as a big issue. Html was never ment to be used for applications so a silverlight app is far better suited for application programming. This is of course only my own opinion but I am sure the direction is more, bigger and higher quality applications running on web and not least apps running on mobiles (Silverlight is also coming to mobiles)
I think we need a better programming model for web applications to keep productivity up when creating more complex web applications and silverlight is certainly a step up from html and javascript.

Distributed Cache/Session where should I turn? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am currently looking at a distributed cache solution.
If money was not an issue, which would you recommend?
www.scaleoutsoftware.com
ncache
memcacheddotnet
MS Velocity
Out of your selection I've only ever attempted to use memcached, and even then it wasn't the C#/.NET libraries.
However memcached technology is fairly well proven, just look at the sites that use it:
...The system is used by several very large, well-known sites including YouTube, LiveJournal, Slashdot, Wikipedia, SourceForge, ShowClix, GameFAQs, Facebook, Digg, Twitter, Fotolog, BoardGameGeek, NYTimes.com, deviantART, Jamendo, Kayak, VxV, ThePirateBay and Netlog.
I don't really see a reason to look at the other solution's.
Good Luck,
Brian G.
One thing that people typically forget when evaluating solutions is dedicated support.
If you go with memcached then you'll get none, because you're using completely open source software that is not backed by any vendor. Yes, the core platform is well tested by virtue of age, but the C# client libraries are probably much less so. And yes, you'll probably get some help on forums and the like, but there is no guarantee responses will be fast, and no guarantee you'll get any responses at all.
I don't know what the support for NCache or the ScaleOut cache is like, but it's something that's worth finding out before choosing them. I've dealt with many companies for support over the last few years and the support is often outsourced to people who don't even work at the company (with no chance of getting to the people who do) and this means no chance of getting quality of timely support. On the other hand I've also dealt with companies who'll escalate serious issues to the right people, fix important issues very fast, and ship you a personal patch.
One of those companies is Microsoft, which is one of the reasons that we use their software as our platform. If you have a production issue, then you can rely on their support. So my inclination would be to go with Velocity largely on this basis.
Possible the most important thing though, whichever cache you choose, is to abstract it behind your own interface (e.g. ICache) which will allow you to evaluate a number of them without holding up the rest of the development process. This means that even if your initial decision turns out not to work for you, you can switch it without breaking much of the application.
(Note: I'm assuming here that all caches have sufficient features to support what you need from them, and that all caches have sufficient and broadly similar performance. This may not be a valid assumption, in which case you'll need to provide more detail in your question as to why it isn't).
You could also add Oracle Coherence to your list. It has both .NET and Java APIs.
From microsoft : App fabric
Commerical : NCache
Open source : RIAK
We tried a couple in the end we use the SQL session provider for asp.net/mvc yes there is the overhead of the connection to the DB but our DB server is very fast and the web farm has loads of capacity so not an issue.
Very interested in RIAK has .net client and used by Yahoo - can be scaled to many manu server

Resources