These slidesSlides for getting started with using Nunit and Selenium to test your web applications. Examples in C# with a link to a gitHub repository and a brief Java example.
Getting up and running with selenium for automated Code palousa
1. Getting up and running with
Selenium for Automated Web
Testing
Emma Armstrong
Website: www.taooftesting.co.uk
@EmmaATester
2. Continuous Delivery
Automate and improve software delivery process
Rapidly push out enhancements
to customers
Quick and reliable release cycles
Automated testing
Image from http://en.wikipedia.org/wiki/Postman_Pat
4. Selenium
• Works with most browsers and is multi platform (c#,
Java, Ruby)
• WebDriver /IDE
• Nuget packages
• Selenium.Support
• Selenium.WebDriver
• Grid capabilities
• Hub and clients
• Simple jar file install commands
5. Selenium WebDriver
• Add Selenium to your project
• Add Selenium to your class
• Using OpenQA.Selenium;
• Using OpenQA.Selenium.Firefox;
• Create an instance of the WebDriver
• IWebDriver driver = new FirefoxDriver();
• Interact with that driver
• Go to a web page
• Driver. Navigate().GoToUrl(“http://localhost:82”);
• Find an element on the page
• Driver. FindElement(By.Id("Username"))
6. NUnit
• Add NUnit to your project
• Add NUnit to your class
• Using Nunit.framework;
• Attributes
•
•
•
•
[TestFixture] – indicates the class contains test code
[Test] – indicates that it is a test method
[TestCase]
[TestFixtureSetup] – performed once prior to the tests in that test
fixture being run to initialise
• [TestFixtureTearDown] - performed once after the tests in that test
have run to clean up
Test classes must be public and have a default constructor
• Assert class
• Defines a set of methods you can use to check the post condition
9. PageObject Model
• Create a class for each page in your application
• Extract common elements and web elements to a Base
class that the pages can inherit
• Create your base class
• Add selenium support
• Using OpenQA.Selenium.Support.PageObjects;
• Define the elements on the page
• [FindsBy(How = How.Id, Using = "footer_version")] private IWebElement
version;
• Initialise the elements on the page
• PageFactory.InitElements(driver, this);
10. Nunit test
Example c# nunit test
using System;
using NUnit.Framework;
using RedGate.Deploy.WebAppTests.Pages;
namespace RedGate.Deploy.SmokeTests
{
[TestFixture]
public class VersionTest : SmokeTestBase
{
[Test]
public void LoginPageShowsCurrentVersion()
{
Version expectedVersion = GetType().Assembly.GetName().Version;
LoginPage loginPage = LoginPage.Load(Driver, SmokeTestUrlBase);
Assert.AreEqual("v" + expectedVersion, loginPage.VersionNumber.Trim());
}