Automated browser testing with Selenium and C#

Slides:



Advertisements
Similar presentations
1 19-Jan-14 © Copyright: City Boy Salary : Simon Powers : 2014 Brown Bag – Behaviour Driven Development with Specflow Brown Bag – Behaviour Driven Development.
Advertisements

Automated Testing Ted Driggs (tdriggs). What Verify program behavior without human interaction Programmatically load and run test code on a wide array.
Thien-An Mac QA consultant / Ghostbugster
Google Confidential and Proprietary Succeeding with Behavior Driven Development (BDD) Testing and Automation Seattle Area Software Quality Assurance Group.
Web Server Programming
Story-Based Test Automation Using Free Tools
Acceptance Test Driven Development with SpecFlow and Friends
A problem in IMS Learning Design To promote interoperability, few services Local tool frameworks like LAMS have much richer tool environment –Easy provisioning.
Russell Taylor Lecturer in Computing & Business Studies.
BizTalk Deployment using Visual Studio Release Management
PHP Scripting Language. Introduction “PHP” is an acronym for “PHP: Hypertext Preprocessor.” It is an interpreted, server-side scripting language. Originally.
BY: KYLE ROGAHN COMPUTER SCIENCE SEMINAR UW PLATTEVILLE 4/3/2012 Web Browser Automation - Geb.
ITM352 Javascript and Dynamic Web Pages: Client Side Processing.
QA Automation Solution. Solution Architecture Test Management tool CI Tool Automation framework Testing Project BDD Tool Text of test to Testing Project.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
First things, First Do you belong in here? – 10 – 12 – Comp. Discovery or Keyboard/Comp Apps – Do you have any experience with Web Page Design?????
1 Chapter 2 & Chapter 4 §Browsers. 2 Terms §Software §Program §Application.
BDD with SpecFlow. Why BDD? 1. BDD helps build the right thing. Traditionally there are many handoffs - Requirements, development, component testing,
Wyatt Pearsall November  HyperText Transfer Protocol.
Functional Automation Testing Case Study 360logica Software Testing Services.
A TEST FRAMEWORK USING PROTRACTOR, CUCUMBER & CUCUMBER SANDWICH
HTML5 AND THE FUTURE JAVASCRIPT PLATFORM Marcelo Lopez Ruiz Senior Software Design Engineer Microsoft Corporation.
© Hive Studios 2011 Ivan Pavlović, Hive Studios Visual C# MVP, MCT, CSM
WARSZAWQA#10.  Author: Michal Lamperski  Contact:  Find me on LinkedIn.
Yauhen Kavaliou Andrei Palchys “We don’t need QA anymore” or Protractor.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
Organisations and Data Management 1 Data Collection: Why organisations & individuals acquire data & supply data via websites 2Techniques used by organisations.
The Internet and World Wide Web Sullivan University Library.
Chapter 1 Introduction to HTML, XHTML, and CSS HTML5 & CSS 7 th Edition.
ScriptOnce™ & Best Practices. Agenda 2 Automation that works ScriptOnce –Minimal maintenance –Easy to add devices Robustness –Reliable Scripts - Minimize.
Introduction to JavaScript MIS 3502, Spring 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 2/2/2016.
IN THIS LESSON WE WILL REVIEW THE STRUCTURE OF THE INTERNET AND HOW BROWSERS ASSEMBLE WEBSITES BASED ON INSTRUCTIONS THEY RECEIVE FROM SERVERS. Internet.
How and why we should use Behat?. About me Bozhidar Boshnakov QA Department FFW Drupal.org – bboshnakov Linkedin.com/in/bboshnakov.
QA Online Training In QA Click Academy. Selenium is a test automation framework used to test web applications such as browsers. It consists of different.
By SPEC INDIA. TestComplete – An Introduction An automated testing tool by SmartBear – TestComplete is a comprehensive product with umpteen features and.
Sqs.com SQS – the world’s leading specialist in software quality Please copy a slide with a suitable picture from the file „Title Slides_EN.pptx“ (change.
APP DESIGN AND DEVELOPMENT WITH THE IONIC FRAMEWORK Chuck Leone
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
Introduction of Selenium Eli Lu 2016/10/13. Outline What is selenium ? Selenium Projects Selenium Sponsors Easy to use Useful Feature & Tools Useful Links.
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
Selenium Basic Level Training Selenium Training Online.
HPE ALM Octane.
JQuery Fundamentals Introduction Tutorial Videos
The Zen of UI Test Automation
CQAA Automation Meetup
How to Test a Complex ERP Application using a Data-Driven Framework
Accessibility into Automation
Introduction to Visual Basic 2008 Programming
Mobile Application Test Case Automation
Introduction to Redux Header Eric W. Greene Microsoft Virtual Academy
A whirlwind tour through the Microsoft DevOps landscape Jesse Houwing | xpirit.com/jesse Trainer, Coach, Tinkerer.
RDP Protocol Test Suite
Why Selenide? Andrew Boyd.
UI-Performance Optimization by Identifying its Bottlenecks
An Intro to ALM Using TFS and Visual Studio for Source Control, Build Automation, Continuous Integration and Deployments.
VISUAL AUTOMATED REGRESSION TESTING - Sriram Angajala
Galen - Automated testing of look and feel
Atit Leelasuksan Rungroj Maipradit
Top 5 Front End Development Tools. 1. Sublime Text Sublime Text may be a super quick and have packed text and development editor. If you're about to be.
React Revived Web Driver IO for Testers
Advantages OF BDD Testing
Haden Jackson-Robbins
Automation with Gwen Introduction.
Web UI testing automation and Selenium
Login For Excellence Selenium Training In Chennai.
Bringing more value out of automation testing
Node.js Test Automation using Oracle Developer Cloud- Simplified
Telerik Testing Framework
A complete Selenium Techstack –
Presentation transcript:

Automated browser testing with Selenium and C# Darren Bruning @dbruning

Going to cover: Why browser automation? Why selenium? “Naked” selenium Selenium in a test framework: Kumara Kumara internals More Selenium goodness

Why browser automation? Primarily for testing Maybe also to script boring repetitive tasks

What is selenium? There are lots of browsers They all do similar things (go to websites, let you click on things) There was no consistent API to automate them Selenium 1: was javascripty, problematic WebDriver project started at Google Selenium 2 adopted WebDriver as preferred method to “drive” browsers.

WebDriver protocol Uses HTTP as a transport “Bindings” for different languages, emit HTTP calls WebDriver “drivers” (servers) accept HTTP calls & actually drive the browser

What does Selenium API look like?

Why not write tests directly against Selenium API? Tests end up with lots of code “business logic” gets obscured Tests only readable by devs Would be more value in the tests if they also served as documentation => BDD (Behaviour Driven Design)

SpecFlow – feature files

SpecFlow – behind the curtain

SpecFlow is great and all but… Yaaaay test readability! Feature documentation! Boo Need plugin for Visual Studio Can’t use refactoring tools Becomes a pain to keep the feature file text in sync with the regex

Enter the Kumara! Nee Calcot Given – when –then syntax Given(List<ICondition>) When(List<Action>) Then(List<ICondition>) It’s still just code, but it’s very readable (maybe even by a BA? Or tester?)

ICondition

Wait, how can a condition satisfy itself???

ActionBasedCondition implements ICondition

Example of an ActionBasedCondition

… and another one with preconditions

So basically, with Kumara: You define some “Root Nouns” (the things you interact with in a test) You create some IConditions on those root nouns You write tests using those conditions

How does Kumara use WebDriver?

Commonly, by CSS:

Then your tests can be all like…

The awesomest thing about Selenium is…

Review past tests, watch videos: https://saucelabs.com/tests/69f48decbb234e3b8adadf2a3205eebe

Run in any combination of OS and browser

Also awesome: PhantomJS Very fast! Runs locally, so less network latency for WebDriver calls, bloating out the test runtime

Build it into your CI flow, for early feedback

Questions?