Abhijeet Patel
Abhijeet Patel

Reputation: 6878

WCF Load/Performance testing

I'm interested in simulating a number of clients attempting to invoke a WCF service simultaneously and I need to measure the average response time for each client. Are there any good tools available for load/stress testing WCF services which have multiple end points(wsHttp, netTCP etc). I've heard that SOAPUI is the most prevalent testing tool available but I'm not quite certain as to how much of a reach it has when it comes to testing WCF services since SOAPUI can consume the service only as a classic ASMX service(basicHttpBinding).

Though not directly relevant, the service is using Entity Framework behind the scenes to perform some Insert operations on a small object graph(5-10 entities) and I'm noticing that calling SaveChanges is not as fast as I'd like it to be. The scenario I have is a large number of clients invoking the service passing in a very small data set as input( an array of 50-10 int IDs)

PS - I'm not looking to use the WCF Test Client

Upvotes: 2

Views: 3123

Answers (5)

Maddy
Maddy

Reputation: 174

IF you can buy any tool then try WCFStrom, else create a own tool.

Serilaze the input of service,use these serelised data by reading it in tool and call respective service and log the time taken, memory of serilised data and any other data you need to analyze.

Upvotes: 0

John Saunders
John Saunders

Reputation: 161773

I haven't used it, but check out WCF Load Test on CodePlex.

Upvotes: 2

softveda
softveda

Reputation: 11066

I evaluated a tool called Parasoft SOATest. It is very capable but I only scratched the surface when playing with the tool. It can work with Net.Tcp and has various load testing feature, including distributed agents, parameterised tests, test result assertions using xpath etc. However priorities changed and the tool is very expensive as well so we didn't end up using it. But you can always get a trial key from them and see if it suits your purpose.

Upvotes: 0

Eric Schoonover
Eric Schoonover

Reputation: 48402

If you are using Visual Studio Team System it has a Load Test template type. That is definitely what you want if you have it available.

Upvotes: 0

Jeremy McGee
Jeremy McGee

Reputation: 25200

You may find that it's fairly straightforward just to host your test under a conventional unit test runner. In particular, one of the things that the Visual Studio testing framework gives is timed performance tests and a neat UI for presenting the results.

Alternatively using a custom time measurement class under NUnit or similar would be quite simple, too.

Upvotes: 0

Related Questions