Explaining how the real world works!     RSS Feed The Automated Tester on Twitter The Automated Tester on LinkedIn The AutomatedTester on github

Selenium Tutorial using C# and NUnit

Mon 13 Apr 2009

In previous tutorials you would have seen how to create your Selenium Scripts in Selenese and then run them using Selenium Remote Control. You would have noticed how good Selenium Remote Control is for running tests against your web application using any browser without having to move your test scripts onto the webserver.

In this tutorial we are going to learn how to create your first test script using the language that I most commonly use, c#. Since most languages are semantically the same, if you do not use c# it shouldn't be too difficult to translate the tutorial into your language of choice. You will to download NUnit and at least Visual Studio Express c# edition to complete this tutorial. They are free to download and use.

  1. Follow steps 1-4 of Selenium Remote Control HTML Suite Tutorial. This will get the Selenium Remote Control Running.
  2. In Visual Studio lets create a new project. You will have to create a new class library by going New> New Solution> Class Library and call it TheAutomatedTester
  3. Add a reference to the NUnit Framework by rightclicking on the solution and clicking add reference. Click on the browse tab and navigate to <%nunithome%>\bin and select nunit.framework.dll . This allows you now to create your first NUnit test.
  4. Now in the *.cs file put the code below into it. The code below will call Selenium Remote and say that it needs an instance on Firefox Chrome.

            [TestFixture]
            public class TheAutomatedTester
            {
                    private ISelenium selenium;
                private StringBuilder verificationErrors;
                [SetUp]
               public void SetupTest() 
               {
    		        selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://localhost");
                    selenium.Start();
                    verificationErrors = new StringBuilder();
    		    } 
    		
            

  5. Now Lets create a test:
                        [Test]
                        public void AutomatedTester_Test()
                        {
                            selenium.Open("/index.htm"); 
                            selenium.Click("buttonName"); 
                            selenium.WaitForPageToLoad("30000");
                        }
                        

    The code above would open the page index.htm for the root of your local web server then click on a button and wait for a page to load. If you want to see how to the other commands look I would suggest creating your command in Selenium IDE and then converting them to c# using the Options > Format commands.
  6. Once your test has run you will need to clean up Selenium object. The best way to do this is to create a teardown function in your test. It should look like something like the code below.
                [TearDown]
                public void TeardownTest()
                {
                    try
                    {
                        selenium.Stop();
                    }
                    catch (Exception)
                    {// Ignore errors if unable to close the browser
                    }
                    Assert.AreEqual("", verificationErrors.ToString());
                }
                

    If you make sure that your code has this teardown then you will be able to reuse the Selenium Remote Control.
  7. Now compile the code into a DLL and Open it with NUnit. When you click the Run button in NUnit it will run your Selenium Test.

If you would like to make your test data driven put all the code to pull the data in the SetUp.

    Area: tutorials

blog comments powered by Disqus