Skip to main content

VSTS 2008 Data-Driven Web Test

During a client demo this afternoon, I mind-blanked on creating a data-driven web test. Sure enough, I stepped out of the client offices and figured it out. Super. But, I think it's counterintuitive enough to outline in a blog post (...trying to make myself feel better ;-). Somewhat in my defense, I was thinking about data-driven unit tests. These, IMO, are easy to implement. Data-driven web tests are a bit more effort and challenging.

Create a web test: Right-mouse on your test project selecting Add >> Web Test. Use the browser recorder to capture your web test scenario. Let's assume you're submitting an age and credit rating to an insurance rate calculator...similar to the screen capture below:


Create a table or CSV file (comma-delimited...just use Excel and save as CSV) with relevant headings for your inputs and expected values:


From Solution Explorer, double-click on your web test. In the main window, right-mouse on your web test selecting Add Data Source... :


Establish a connection to a relational database, CSV or XML file:


For each parameter posted, select Properties and then the drop-down next to the Value property:


For each of the post parameters, select the appropriate / associated data element:


Ok, so that covers our inputs. Now we need to verify the page produces the expected result. Right-mouse on the URL/page request including the form post selecting "Add A Validation Rule..."


Use the best option for your situation. Hopefully you can simply check a Form Field. In our circumstance, we're writing out an ASP.Net label to the form with the calculated results. So, we need to leverage the Find Text option (I tried Required Attribute Value but since labels output as <span id="lblSomething">Output Value</span> I wasn't able to grab the value...because it's an element vs. an attribute). Unfortunately, there's no nice drop-down for connecting to the data source's expected value. You'll need to enter it manually. The format looks like: {{DataSourceName.FileName#csv.FieldName}}. It's easiest just to copy from the input parameters and surround with the double curly brackets. Here's what the dialog looks like:


Finally, we need to instruct the test to execute once for every data record instead of the web test values captured in the recording. Within Visual Studio, select Test >> Edit Test Run Configuration >> Local Test Run:


Select Web Test from the left and select the "One run per data source row" option and click Close (save to the project if prompted):


Now we can execute our data-driven web test! (Make sure to check the Details tab confirming the Validation worked as expected and you're not experiencing a false positive):



Najam said…

I want to thank you to post this article. its a very informative for me.

Thanks and Regards,
Anonymous said…

It's really very helpful for the beginners like me.

Anonymous said…
This Information is really very good to implement for my Project
Juan Trujillo said…
Hi Jeff,

Thanks for the post, very helpful. One question: I want to do the same thing for a coded UI test that I have previously recorded, how can I do this ?
Juan Trujillo said…
Hi Jeff,

Thanks for the post, very helpful. One question: I want to do the same thing for a coded UI test that I have previously recorded, how can I do this ?

Popular posts from this blog

Get Your Team Foundation Server Hate On!

[Google ranking skyrockets... ;-)]

I'm a big fan of TFS/VSTS. However, there are a good pocket of folks who take issue with the way TFS handles or implements a certain feature. Well this is your chance to vent!

I'm planning a presentation around the "Top 10 TFS/VSTS Hates and How to Alleviate Them"...or something along those lines. But I need your help. Post a comment below detailing your dislike. If it's legitimate, I'll highlight it in the presentation and [hopefully] provide an alternative, resolution, or work-around.

Thanks in advance!

Update 7/19/2008: Version Control and Microsoft

Rollback a Ooops in TFS with TFPT Rollback

Rhut roe, Raggie. You just checked in a merge operation affecting 100's of files in TFS against the wrong branch. Ooops. Well, you can simply roll it back, right? Select the folder in Source Control Explorer and...hey, where's the Rollback? Rollback isn't supported in TFS natively. However, it is supported within the Power Tools leveraging the command-line TFPT.exe utility. It's fairly straightforward to revert back to a previous version--with one caveot. First, download and install the Team Foundation Power Tools 2008 on your workstation. Before proceeding, let's create a workspace dedicated to the rollback. To "true up" the workspace, the rollback operation will peform a Get Latest for every file in your current workspace. This can consume hours (and many GB) with a broad workspace mapping. To work around this, I create a temporary workspace targeted at just the area of source I need to roll back. So let's drill down on our scenario...
I'm workin…

MDC Detroit: Introducing jQuery in ASP.Net

Update (2/7/2009): VsDoc for jQuery v1.3.1 released!

Update (1/23/2009): Thanks to all who attended! The packed house made for some great energy...and I hope some solid learning. I added the link to the samples/demos below (all the way at the bottom).

My colleague Jason Karns and I have the honor of presenting "Introducing jQuery in ASP.Net" at the Detroit MSDN Developer Conference on January 22nd. Come see this exciting inclusion of an open source library with Microsoft Visual Studio! I've included several links below we'll discuss in our talk:

v1.3 Released 1/14! (...but no official Visual Studio annotated Intellisense file yet ;-(
jQuery ProjectjQuery Visual Studio annotated library
Scott Guthrie “jQuery Intellisense in VS 2008” - Enabling Intellisense for jQuery in Visual Studio2008Hotfix to support -vsdoc.js annotated files within Visual StudioASP.Net:
ASP.Net MVC (Beta)
ASP.Net AJAX (built in to ASP.Net 3.5 SP1)ASP.Net AJAX Control Toolkit
.Net Framework 3.5 SP1