Microservices Expo Authors: Pat Romanski, Elizabeth White, Liz McMillan, Yeshim Deniz, Zakia Bouachraoui

Related Topics: Microservices Expo, Microsoft Cloud

Microservices Expo: Article

Parasoft's SOAtest 3.0

Ensuring Acceptable Performance While Creating A .NET Web Service

Recently, a client asked me to create a new .NET Web Service that would let them do sales tax calculations from any computer on their network. The product they had been using was an old-fashioned C program meant for a single computer. They used to wrap this in a COM component and access it via traditional Active Server Pages, but now they wanted to migrate to fully managed code.

There were two reasons that I looked to SOAPtest to assure the quality of my newly constructed Web Service. On one hand, I had been working to inculcate a sense of quality craftsmanship in the development group at this client and wanted to demonstrate that creating unit tests for code could be fun and productive. On the other hand, the client was concerned that the new .NET Web Service would perform the same or better than its current ASP-based solution.

Installation was straightforward. It only took about five minutes and consisted mainly of an installation wizard where, in this case, I was able to accept all the defaults. The one thing I noticed immediately was that it asked me whether or not I wanted to install the Java Runtime Engine. In a product marketed to .NET developers, I thought that strange, but I accepted the default and it seemed to work fine.

After the install, I started up the application and was immediately prompted for my license information. I was automatically e-mailed this information by Parasoft's servers and it was easy enough to cut-and-paste it into place, however, I was a little disappointed that the license was tied to a specific machine. See, a week into my testing I had to relocate to a different machine and it forced me to ask for a different license.

Once I had provided my license, I was able to create my first set of unit tests in a little under 10 minutes. I particularly liked SOAPtest's ability to "remember" the results returned from a Web Service during a given run and use that as the basis for determining the accuracy of results returned later. For example, I set up a unit test to ask for the tax on a $10 sale of food in San Leandro, California. Once I got the initial results of 85 cents back, I told SOAPtest to remember that for future test runs. From this point on, not only would SOAPtest validate the shape of the responses returned to this test, but also the exact dollar value - with no coding on my part whatsoever!

Once I created my unit tests and verified the basic accuracy of the Web Services I created, my next task was to create Load Tests to prove to my client that my Web Services would exhibit acceptable performance. For this purpose, SOAPtest provides multiple kinds of Load Tests out-of-the-box.

  • Bell - increases the load until the middle of the test run, and then tapers it off. This is intended to simulate the typical flow of work in a business system during an average workday.
  • Buffer Test - alternates high and low loads. You should see the performance of your application go back to normal during the low loads, otherwise you probably aren't freeing up the resources properly.
  • Linear Increase - builds the load throughout the test.
  • Steady Load - maintains a constant load throughout the test.
Of all of these, I used the Buffer and Steady load tests since the Bell and Linear weren't useful in my particular circumstances. They generated excellent statistics and very easy-to-read graphs, as shown in Figure 1.

My only gripe with the Load Testing was that on my first run it showed that my Web Service generated a number of errors. Looking at the interface and paging through the documentation for about half-an-hour, I couldn't figure out how to go from the raw number of errors displayed to punch down into the actual error messages that were returned in each failure case. Ultimately I realized that I was running my Web Service on Windows XP and more concurrent users than XP's license allowed. Moving my Web Service to Windows Server 2003 solved the problem, but I still don't know how to punch down into the individual error messages.

In conclusion, I would say that if you are just writing one or two simple Web Services not intended for high-performance, complex, or interoperable tasks, you can probably get what you need for free by writing your tests with a tool like NUnit.

Given its amazingly rich feature set, however, SOAPtest is an absolute must-have for anyone who is doing truly advanced work with Web Services.

Company Information

401 E. Huntington Drive
Monrovia, CA 91016
Phone: (888) 305-0041
Fax: (626) 305-9048
Sales: [email protected]

More Stories By Derek Ferguson

Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

Most Recent Comments
Web Services Product Review 07/31/05 12:32:46 PM EDT

Parasoft's SOAPtest 3.0. Recently, a client asked me to create a new .NET Web Service that would let them do sales tax calculations from any computer on their network. The product they had been using was an old-fashioned C program meant for a single computer.

Microservices Articles
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and systems administration expertise. Prior to joining F5, MacVittie was an award-winning technology editor at Network Computing Magazine where she evaluated and tested application-focused technologies including app secu...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder and Chairman of Alfresco, described how to scale cloud-based content management repositories to store, manage, and retrieve billions of documents and related information with fast and linear scalability. He addresse...
Adding public cloud resources to an existing application can be a daunting process. The tools that you currently use to manage the software and hardware outside the cloud aren’t always the best tools to efficiently grow into the cloud. All of the major configuration management tools have cloud orchestration plugins that can be leveraged, but there are also cloud-native tools that can dramatically improve the efficiency of managing your application lifecycle. In his session at 18th Cloud Expo, ...
The now mainstream platform changes stemming from the first Internet boom brought many changes but didn’t really change the basic relationship between servers and the applications running on them. In fact, that was sort of the point. In his session at 18th Cloud Expo, Gordon Haff, senior cloud strategy marketing and evangelism manager at Red Hat, will discuss how today’s workloads require a new model and a new platform for development and execution. The platform must handle a wide range of rec...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portability. In this session we'll describe best practices for "configuration as code" in a Kubernetes environment. We will demonstrate how a properly constructed containerized app can be deployed to both Amazon and Azure ...
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the APIs that make today's multi-cloud environments and hybrid clouds possible. In this Power Panel at 17th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the importance of customers being able to use the specific technologies they need, through environments and ecosystems that expose their APIs to make true ...
In his keynote at 19th Cloud Expo, Sheng Liang, co-founder and CEO of Rancher Labs, discussed the technological advances and new business opportunities created by the rapid adoption of containers. With the success of Amazon Web Services (AWS) and various open source technologies used to build private clouds, cloud computing has become an essential component of IT strategy. However, users continue to face challenges in implementing clouds, as older technologies evolve and newer ones like Docker c...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term.