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

Shrinking WSS (Sharepoint) SQL Server Log Files

Yesterday, while migrating a source repository from StarTeam to TFS, I received the following error:
"TF30042: The database is full. Contact your Team Foundation Server administrator."Excuse you? Sure enough, my 100+ GB drive was full on the server. But I'd only migrated around 1000 items. Surely SQL wasn't consuming 100MB per file.

Turns out (yes, there was a lot of crud on the drive but...) the majority of the space, almost 40GB was being consumed by the Windows Sharepoint Services WSS Content data and log SQL Server files. Huh? I still need to investigate and understand why this portal, which is 100% unused, grew so large. Regardless, here's what I did to resolve:

Since this is not yet a production database, I flipped the SQL recovery option from Full to Simple for WSS Content and several other databases. Detail here and here.
Executed the maintenance plan for all the databases to get backups and clear out some of these files. That didn't help much. The Auto_…

TFS Error | The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.

Posting this one for the search engines. If you ever receive the exception "The type initializer for 'Microsoft.TeamFoundation.Build.Server.BuildInformationNodeBinder' threw an exception.", more than likely, your drive space is at 0 on your TFS application tier box.

I encountered this at a client recently. The root cause was that IIS logs had filled up the OS drive (C:\). I switched IIS logging to the applications drive (D:\) which cleaned up the OS drive and resolved the issue.

Detailed message:

TF53010: The following error has occurred in a Team Foundation component or extension:

Date (UTC): 6/7/2011 4:18:53 PM


Application Domain: /LM/W3SVC/8080/ROOT/tfs-1-129519118182628600

Assembly: Microsoft.TeamFoundation.Framework.Server, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v2.0.50727

Service Host: 7ecfbd77-b386-4d75-b038-b05474782696 (DefaultCollection)

Process Details:

Process Name: w3wp

Process Id: 3676

Thread Id: 5752


Code Analysis Invalid Settings Error When Invoked from within VSTS

This issue plagued me for several hours today so I'm posting my resolution. Executing Code Analysis from within Visual Studio Team System - Team Suite kept reporting:
"Invalid settings passed to CodeAnalysis task. See output window for details."
MSBuild is unable to locate the correct binaries to perform Code Analysis on managed binaries. Make sure that either Visual Studio Team System 2008 Development Edition or Visual Studio Team System 2008 Team Suite is installed with the Code Analysis feature. If MSBuild is being run from within the "Visual Studio Command Prompt", specify the path to your analysis binaries by setting the FXCOPDIR environment variable. At first, after a search, I thought it was an Environment Variable issue regarding the path to FxCopCmd.exe. Very helpful post here. However, after adding the Environment Variable FxCopDir, I was closer but still getting an error.

Finally, I took the FxCopCmd.exe command line string into a command window and…