Data Driven Testing in Coded UI Test Record and Playback
Data Driven Testing is one of the most useful part in any automation testing tool, it can be any testing tool like Selenium, QTP or Test Complete, we do data driven automation testing with it. Data Driven testing in Coded UI Testing is done especially to replace the hard coded value with external data source. The external data source can be either a
Excel
CSV
Data base Table
XML etc
All the above data sources are supported in Coded UI testing.
Working with Data Driven Testing
In this post, we are going to use CSV (Comma Separated Value) file as external data source and using TestContext property of Coded UI class to populate data into our code.
Hence, we need to perform following steps to make our testing data driven
Creating External Data Source
Adding Data Source Attribute
Using TestContext.Data[] to retrieve the data from external data source and passing it
Creating External Data Source
To Create External data source, first add a new file using New à File
Then enter the Data into the CSV file as shown
As you can see above, I am creating two columns, first column indicates the operation which we are going to perform, in our case we are going to just add two number and we are going to verify if its output is same as “Result” column.
Adding Data Source Attribute
Next add, the data source attribute for CSV as shown below
As you can see above, the data source is CSV and the DataDirectory is \\data.csv, which is nothing but our data.csv file.
Retrieving Data using TestContext.DataRow
We can retrieve the data from data source using the following code
As you can see above, I have create a AssertMethod to verify if the Result in actual application is generating the value which we specified in the CSV file
Assertion Code
The assertion code to verify if the value in calculator result for 89 + 23 = 112 is same as CSV
Please watch the full explanation of article as Video to fully understand the concept with in-depth details.
Please leave your comments and thanks for reading and watching the article.
Thanks,
Karthik KK
Post Author:
Karthik kk
13 Replies to “Data Driven Testing in Coded UI Test Record and Playback”
Hi,
nice article!!
one question:
how can we do DDT on Windows Phone Coded UI test, i could not find a way, so I developed my own solution to the problem, but I would like to know if there is another way to do this.
Can anybody please tell me how to automate the right click action and get context menu and then select an option in that context menu in c# Visual Studio 2012? I am working with WEBAII framework
I have downloaded calculator plus (since I have Windows 10) and was able to record and play back.
Now I am on 6th video (Data Driven Testing in Coded UI Test Record and Playback). My test is failing and after looking into my designer.cs found below under AssertAdd()
WinEdit uIItemEdit = this.UICalculatorPlusWindow.UIItemWindow2.UIItemEdit;
but you have in your video as below
WinText uIItem112Text = this.UICalculatorWindow.UIItemWindow112.UIItem112Text;
Now, question is why I am having “uIItemEdit” and you have “uIItem112Text”.
Am I suppose to download any particular Calculator, if your answer yes. Which calculator is that and where do I find.
// Verify that the ‘Text’ property of text box equals ’90. ‘
Assert.AreEqual(this.AssertAddExpectedValues.UIItemEditText, uIItemEdit.Text, “Result should be 90, or else Calculation Fails”);
}
I am facing a problem about test inputs from xml file.Basically i used a method to call xmlfile and node name rather than datasource attribute.When i executed for the first time , inputs are successfully taken into UI. but when i change the inputs,still its taking old inputs.It’s strange.
Did you ever faced this issue like this.?
Hi Kartik,
I am using .csv file . Using “TestContext.DataRow[“ColumnName”].ToString()”,
I am fetching data. Always it is taking the values in first row. I want to use the values in remaining rows also.
How can I go to next row or how can i set a particular row is current row. Can I pass row number using 2nd parameter i.e. DataRowVersion.
ex: TestContext.DataRow[“Columnname”,DataRowVersion version].ToString();
Awaiting for your reply.
I need to connect from VS 2015 to an Oracle DB, to find a record with appropriate conditions for each test scenario. All the [Datasource…] examples I found are for Excel files.
I installed Oracle ODAC and added references Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.EntityFramework to my solution. How do I write my DataSource attribute?
I want to write result in to CSV file under Result column. Can you please help me how to use TestContext class with method that can write output result under Result column ?
First thank you for making these tutorials.
In Topic 6: Data Driven testing in Coded UI, I had to enter the absolute path of the csv file in the DataSource attribute. The “|DataDirectory|\\data.csv” param did not work; the test could not find the file.
The video series about code ui is very interesting to me.
In this video, about 9min you change UIMap method AssertAdd – add parameter expDate. However, as explain it is bad practice.
What is the right way to pass parameter?
Hi,
nice article!!
one question:
how can we do DDT on Windows Phone Coded UI test, i could not find a way, so I developed my own solution to the problem, but I would like to know if there is another way to do this.
Can anybody please tell me how to automate the right click action and get context menu and then select an option in that context menu in c# Visual Studio 2012? I am working with WEBAII framework
Hi Kartik,
I have downloaded calculator plus (since I have Windows 10) and was able to record and play back.
Now I am on 6th video (Data Driven Testing in Coded UI Test Record and Playback). My test is failing and after looking into my designer.cs found below under AssertAdd()
WinEdit uIItemEdit = this.UICalculatorPlusWindow.UIItemWindow2.UIItemEdit;
but you have in your video as below
WinText uIItem112Text = this.UICalculatorWindow.UIItemWindow112.UIItem112Text;
Now, question is why I am having “uIItemEdit” and you have “uIItem112Text”.
Am I suppose to download any particular Calculator, if your answer yes. Which calculator is that and where do I find.
public void AssertAdd()
{
#region Variable Declarations
WinEdit uIItemEdit = this.UICalculatorPlusWindow.UIItemWindow2.UIItemEdit;
#endregion
// Verify that the ‘Text’ property of text box equals ’90. ‘
Assert.AreEqual(this.AssertAddExpectedValues.UIItemEditText, uIItemEdit.Text, “Result should be 90, or else Calculation Fails”);
}
Thanks,
Raj
HI Karthik,
I am facing a problem about test inputs from xml file.Basically i used a method to call xmlfile and node name rather than datasource attribute.When i executed for the first time , inputs are successfully taken into UI. but when i change the inputs,still its taking old inputs.It’s strange.
Did you ever faced this issue like this.?
Right click the XML file and click properties.
There is an option where you can select copy if new or always copy in “Copy to output directory” of build action.
Select any of those save and compile.
It should work by theory !!!
Hi Karthik,
How to stop flickering(Blinking) in data driven framework when my csv file has more than one row.
E.g
Username,Password
ABC,12345
XYZ,12345
PQR,12345
Hi Kartik,
How can I get all SelectedIndex from combobox and set them to array?
Thanks,
Dmytriy
Hi Kartik,
I am using .csv file . Using “TestContext.DataRow[“ColumnName”].ToString()”,
I am fetching data. Always it is taking the values in first row. I want to use the values in remaining rows also.
How can I go to next row or how can i set a particular row is current row. Can I pass row number using 2nd parameter i.e. DataRowVersion.
ex: TestContext.DataRow[“Columnname”,DataRowVersion version].ToString();
Awaiting for your reply.
Thanks in advance.
I need to connect from VS 2015 to an Oracle DB, to find a record with appropriate conditions for each test scenario. All the [Datasource…] examples I found are for Excel files.
I installed Oracle ODAC and added references Oracle.ManagedDataAccess and Oracle.ManagedDataAccess.EntityFramework to my solution. How do I write my DataSource attribute?
There is no data source attribute for Oracle DB as like Excel, rather you have to use different approach
1. Read data from database and store it in-memory collection (colA)
2. And retrieve the data from in-memory collection.
An example is here
http://executeautomation.com/blog/ddt-excel-cuit-part-1/
Thanks,
Karthik KK
Hi Karthik,
I want to write result in to CSV file under Result column. Can you please help me how to use TestContext class with method that can write output result under Result column ?
First thank you for making these tutorials.
In Topic 6: Data Driven testing in Coded UI, I had to enter the absolute path of the csv file in the DataSource attribute. The “|DataDirectory|\\data.csv” param did not work; the test could not find the file.
The video series about code ui is very interesting to me.
In this video, about 9min you change UIMap method AssertAdd – add parameter expDate. However, as explain it is bad practice.
What is the right way to pass parameter?