How to load test REST WCF service? - wcf

How can i load test REST WCF service?
Is it possible with Web performance testing and Load testing in Visual Studio 2010 Ultimate.
Please help. Thanx in advance.

This knowledgebase article has information on the tools available for stress testing web apps from Microsoft. I've used the Web Capacity Analysis Tool mentioned there in the past.
You can also look at the fiddler plugin stresstimulus. I've used fiddler for non load testing, but I have not used the stresstimulus plugin.

Disclosure: I work for StresStimulus maker.
In case you need to test with more than 250 users allowed by VS 2010 Ultimate, you can still record HTTP sessions in Fiddler, as described by #Nat, and then use StresStimulus for load testing in Fiddler. StresStimulus is not nearly as complete as VS 2010 Ultimate, but it’s free and you can check if it’s sufficient for your case. You can parameterize requests using .CSV files and load test with up to 1500 virtual users per client.

At the end of the day, a WCF web service still relies on good old http calls.
You are not really going to be able to record the webtest the same as for a webpage, but Fiddler will allow you to record the http calls made, so fire fiddler and then use the interface for your service to record some actions.
You can then save the fiddler http calls as a webtest for Visual Studio.
I personally would turn the test into a coded test so that items in the Webservice can be parameterised nicely, but it depends on what you need to do. Once a test is recorded, you can easily change the base url to point it to pre-production test environments or whatever is required.
Visual Studio 2010 Ultimate is a really nice tool for load testing and with 250 virtual users available for load testing, you can simulate a lot of actual users with it.

Related

Unit Testing Web Services using .net

I have wcf .net client to a webservice. I am trying to ensure that the connection to this web service is solid and that the web-service itself is sturdy and can stand up and take a pounding. I was hoping to hit it with 50 different asynchronous calls to ensure that it is working well. Is there a way that I can use the .net framework to make multiple asynchronous calls to the webservice?
If you're using VS 2012 you can use the built-in load testing
You can also use free tools such as LoadUI
Visual Studio 2010 (Test edition or Ultimate edition) has excellent support for performance and load testing (with plenty of extensibility points to meet your needs). Check the following blog for a series of links related to load and web performance testing:
http://blogs.msdn.com/b/edglas/archive/2007/12/17/content-index-for-web-tests-and-load-tests.aspx
A good approach is to use fiddler to record traffic between application and service and then export this into a web performance test.

Want to Run VB.Net Desktop Application in web Browser as Web Application

I have a Small ERP Financial Software developed in VB.Net and SQL Server consisting on modules
HRM, Accounts, General Ledger etc.
Now i want to run some module on web but Creating all application in asp.net or other web tools is too much time taking.
Is There any way to run this Desktop application on web espacially in Web Browsers. ?
Any Help.
If you don't want to re-write your application you could have a look at Go Global.
I can't vouch for it as I have personally never used it, but I know of people who have.
I have tested that for a proof of concept on the past and it runs great. Called .net zero deployment, you can look it up. The only concern is off you need database access, remember that you are paying through the port 80, so a need for a web service to access database call may be needed. Not sure of I have still the code trial, but I can look.

On which aspects i should put more emphasis for Security Testing of the Desktop Based Application?

I am testing one Desktop based client server application. I want to perform a Security test of that application.
Can anybody explain me which points i can consider while performing Security Test of the Desktop application?
Testing of desktop application is easier than web application as there are less users than web applications.
Followings are two important point that you need to keep in mind during security testing of desktop application
• Test user’s rights and roles-authorized person should allow to login
• Test security of data or information stored in application.
Security testing on Desktop application is not that much easy task, in market we can't find the proper free tools like web application tools
for java based desktop application use JavaSnoop tool and proxy tool
for .Net based desktop application use echo-mirage and proxy tools
the test cases are quite simple
1. System testing: verification of registries, files and logs
2. Static testing: de-compile the files and do code-review, Gendarme tool is perfect
- do memory dump analysis
3. Dynamic testing: verify the communication
i hope this will help you

WCF Load Test with Visual Studio or any other free tools

We have a WCF web service and I would like to perform a load test. Could anyone please confirm if this is possible via Visual Studio 2010 or any other free tools?
Thank you
I have done a decent amount of this over the last five years using mstest and jetbrains dottrace.
What you need to do is write an integration test (a unit test that makes a call to your service) and then reference that in a load test. I then get dottrace to profile IIS and then rune the load test.
A free tool is available from CodePlex to load test WCF. To quote the project description:
This tool takes a WCF trace file and a WCF client proxy, or a WCF interface contract, and generates a C# unit test that replays the same sequence of calls found in the trace file. The unit test can then be used to load-test the target
You can with VS as long as you own the ultimate edition.

How to separate development of client-side web UI and the server side

I'm in the process of providing a Web UI as an alternative to our current desktop UI for our C/S enterprise application.
When developing the client-side in our desktop version, UI developers could connect to any server so they only needed the client-side environment.
When developing a Web UI (Client-side JavaScript in the browser), we are bound by the browser's "Same origin policy" so the UI must talk to the same server from which the UI code is downloaded.
As far as I see it till now, the development scenario for the UI guys is:
Developer installs server on local
machine and runs it.
Developer edits the HTML+JS+CSS files on local installation.
Developer has to reinstall/update server on local machine each time there's a need to test UI code against new server behaviour.
This does not seem too comfortable, at least compared to our previous C/S style development.
Are there any other ways you can suggest to that will not require UI developers from installing and updating server side components on their development machine ?
Or anything else related that can simplify the development process ?
Thanks :-)
Editing in some clarifications:
I'm mostly interested in the aspects of UI coding, not UI design.
I need a lot of server interaction - getting data from RESTful web services, which are developed in parrallel - hence the need to have an up-to-date server
You haven't specified the development platform.
As far as pure HTML/JS/CSS is concerned, you don't need a server. The UI developer can fine tune UI components locally.
The moment you want to talk/integrate to Server (via AJAX, JSP, ASP...) then you need to connect a development server as now your changes have to be served by Server.
Most of UI fine tuning can also be done from Firebug
In our office when changes to styling are required we save the page as a local copy and send it to the UI designer, he makes his changes and we integrate them. So the UI designer don't have to maintain a development environment.
JSONP lets you work around the same-origin problem (with server support) -- check it out! If the front-end-in-the-browser developers are using a good framework suc as jQuery or (my favorite) Dojo, JSONP should be no harder for them than plain JSON.
Develop on a shared server, but depending on the size of the team.. that's challeging with respect to version control.
Or deploy automatically generated virtual machines with nightly builds, so the devs don't have to install, but always use a recent version.
In the case of UI developers depending on a common REST server, the UI development can be done on the local machine and the REST service should be on a central server. When changes are made to the REST service these should be deployed to the central server (when stable), so all developers can use the newest version (this also helps with testdata).
You could try using a proxy on the developer's machine where some paths redirect to the server and some paths redirect to local folders.
Hmm, I actually didn't really get any information on what kind of technology you're using. If - with UI Developers - you mean designers, which have to take care about the CSS, layout etc, then we do it the same as lud0h said. We (developers) send the UI designers a copy of the server-side produced HTML pages. They then edit the HTML pages according to accessibility guidelines, CSS and layout and send us back the outcome of their work. We use their HTML pages then for integrating them in our web applications.
If you don't just mean tuning CSS, but also to write JavaScript / Ajax functionality you HAVE to use a server with which you're communicating. As you said, normally this is done by having a local environment which is similar to the server-one. In .Net Visual Studio '08 provides an internal webserver, alternatively you have to install IIS locally. In Java environments you have to install Tomcat and related technologies. In my eyes this is a must. What you have to have is
Versioning system (CVS, SVN,...) where developers commit regularly (minutes/hours)
local environments where developers checkout the source from the repository and develop
Test server where you deploy on a daily basis (could be like daily builds) in order to test your running product
I guess this should be what a professional development environment should consist of. The difference to C/S application development is that web UI and web-client code are not that separable as a Client UI in C/S environment from the server-side. Unless you develop with technologies like GWT or Silverlight which are quite similar to C/S, just running inside the browser, but communicating over RPC calls or web services.
//Edit:
What I nearly forgot. Don't do something like developing on the server directly, meaning that all of the developers access the server's filesystem where the code, UI etc. lies!!
You can use CORS. a new technique just like Ajax, but with ability to make calls on other domains. so you will need only one UI on one server. think this can help you.