Getting up and running with selenium for automated Code palousa
-
Upload
emma-armstrong -
Category
Technology
-
view
717 -
download
3
Transcript of Getting up and running with selenium for automated Code palousa
![Page 1: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/1.jpg)
Getting up and running with Selenium for Automated Web Testing
Emma ArmstrongWebsite: www.taooftesting.co.uk
@EmmaATester
![Page 2: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/2.jpg)
Continuous DeliveryAutomate and improve software delivery process
Image from http://en.wikipedia.org/wiki/Postman_Pat
Rapidly push out enhancements to customersQuick and reliable release cyclesAutomated testing
![Page 3: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/3.jpg)
Where to start?
![Page 4: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/4.jpg)
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
![Page 5: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/5.jpg)
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"))
![Page 6: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/6.jpg)
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 upTest classes must be public and have a default constructor
• Assert class• Defines a set of methods you can use to check the post condition
![Page 7: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/7.jpg)
Eating your own dog food
![Page 8: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/8.jpg)
Demo
![Page 9: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/9.jpg)
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);
![Page 10: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/10.jpg)
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()); }
![Page 11: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/11.jpg)
Demo
![Page 12: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/12.jpg)
Example Java test
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
Import org.openqa.selenium.firefox.firefoxdriver;
Public class javaExample { public static void main(String[] args) throws Exception { Webdriver driver = new firefoxdriver(); driver.get("http://localhost:8080"); webelement loginname = driver.findelement(By.id("Username")); loginname.sendkeys("loginname");
Webelement password = driver.findelement(By.id("Password")); password.sendkeys("loginname");
Webelement loginbutton = driver.findelement(By.id("loginbutton")); loginbutton.submit(); driver.quit(); }}
![Page 13: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/13.jpg)
Selenium Grid ConfigurationInstall• java -jar selenium-server-standalone-2.14.0.jar -role hub • java -jar selenium-server-standalone-2.14.0.jar -role node -hub
http://localhost:4444/grid/registerUsage• browser browserName=firefox, version=3.6,platform=LINUX• DesiredCapabilities capability = DesiredCapabilities.firefox();• webDriver driver = new RemoteWebDriver(new
URL("http://localhost:4444/wd/hub"), capability);
![Page 14: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/14.jpg)
Summary
• Improve confidence in your deployment• Adding tests is easier than you might think• Automate gradually
![Page 15: Getting up and running with selenium for automated Code palousa](https://reader036.fdocuments.in/reader036/viewer/2022071804/55d4d613bb61ebeb488b462b/html5/thumbnails/15.jpg)
</talk>Code: https://github.com/EmmaArmstrong/SeleniumTesting
Emma Armstrong
@EmmaATester