2013 05seleniummeetupexport pdf 130517105954 phpapp02
DESCRIPTION
SellimiumTRANSCRIPT
![Page 1: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/1.jpg)
Quality Assurance Continuous
…using Selenium WebDriver
San Francisco Selenium Meetup Group - May 16, 2013
![Page 2: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/2.jpg)
Fabrizio Branca Lead System Developer at
![Page 3: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/3.jpg)
San Francisco, CA
Janine
Fiona
that’s me
It’s a boy!
![Page 4: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/4.jpg)
E-Commerce: Magento
CMS: TYPO3
Portals: ZF, FLOW,…
Mobile Searchperience: SOLR
120 people in 7 offices world-wide
High Performance
/Scale
Global Enterprise Projects
![Page 5: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/5.jpg)
Continuous Integration
Deployment
Development
Delivery
Improvement
![Page 6: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/6.jpg)
Quality Assurance Continuous
Everything sounds better with “continuous”
![Page 7: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/7.jpg)
“Continuous” == “Doing stuff over and over again”
Builds Deployment Tests Infrastructure
Setup
Devbox Setup
== “Automation”
![Page 8: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/8.jpg)
tim
e s
pe
nt
task size
does it manually
does it manually
gets annoyed
writes script to automate
runs script
wins
loses
Geeks vs. Non-Geeks
Makes fun of geek’s complicated method
![Page 9: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/9.jpg)
— Ovidiu Platon
We are not shipping your machine! if it works on your machine! I don’t care
![Page 10: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/10.jpg)
Picture The BIG
![Page 11: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/11.jpg)
Vagrant Boxes
![Page 12: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/12.jpg)
Awesome stuff
Every single line potentially
can break production!
Bratwurst (Germans)
Donut (Americans)
Pizza (Italians)
![Page 13: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/13.jpg)
Version Control
GIT, SVN,…
PHP lint
![Page 14: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/14.jpg)
Version Control Code Reviews
“Gerrit”
![Page 15: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/15.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Triggered by commit, by time
or manually
Jenkins
minify js/css
.tar.gz
“virtual package” (revision)
![Page 16: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/16.jpg)
Multiple Release Branches?*
Multiple Build Pipelines!
…
…
… *http://nvie.com/posts/a-successful-git-branching-model/
![Page 17: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/17.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
![Page 18: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/18.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
CodeSniffer
php-pmd
php-cpd
php-depend
![Page 19: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/19.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration”
First system where code from all
developers/teams meets each other
unstable system. Might be broken. Will be rebuild
without warning
![Page 20: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/20.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests
PHPUnit
Code coverage
![Page 21: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/21.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests
AOE PMD (for Magento)
broken links, HTTP headers, W3C validity,…
Test features that rely on other parts (e.g. framework, external
services,…) External components (SSL, Redis, Varnish,…)
Basically this is also PHPUnit, but
addressing other stuff
![Page 22: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/22.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Here we go:
Selenium!
![Page 23: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/23.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Install on
“Staging”
Behat (Cucumber)
Same setup as production, but different machines
Client QA / approval
![Page 24: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/24.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Install on
“Staging”
*http://www.slideshare.net/aoemedia/performance-measurement-and-tuning
Stress
Tests
Jmeter
Spin up EC2 instances in the cloud to produce
traffic*
![Page 25: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/25.jpg)
Again: multiple servers or autoscaling setup
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Install on
“Staging”
Stress
Tests
Install on
“Production”
A/B Deployments on different
scales
Plan B: rollback
Zero Downtime
![Page 26: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/26.jpg)
Varnish Array EC2
Frontend Array Backend Array EC2 EC2
EC2
Worker Array EC2 EC2
Deployment x
ELB Load Balancer
Route 53 DNS-Service
shop.angrybirds.com
Deployment
![Page 27: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/27.jpg)
Varnish Array EC2
Frontend Array Backend Array EC2 EC2
EC2
Worker Array EC2 EC2
Deployment x
ELB Load Balancer
Varnish Array EC2
Frontend Array Backend Array EC2 EC2
EC2
Worker Array EC2 EC2
Deployment x+1 Release Y
ELB Load Balancer
Route 53 DNS-Service
shop.angrybirds.com
Deployment
![Page 28: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/28.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Install on
“Staging”
Stress
Tests
Install on
“Production”
![Page 29: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/29.jpg)
Deployment != Feature Release
![Page 30: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/30.jpg)
Version Control Code Reviews Build
Files
DB
Installer
Settings
Static Code
Analysis
Install on
“Integration” Unit Tests Integration Tests Acceptance Tests
Install on
“Staging”
Stress
Tests
Install on
“Production” Enable Features
![Page 31: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/31.jpg)
Version
Control Code
Reviews Build Static Code
Analysis
Install on
“Integration”
Unit Tests Integration
Tests
Acceptance
Tests
Install on
“Staging”
Install on
“Production” Enable
Features
![Page 32: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/32.jpg)
Pipeline Visualization
#284
#283
#282
#281
#280
Build Static Code
Analysis Unit Tests
Install on “Integration”
Integration Tests
Acceptance Tests
#285
for team dashboards
![Page 33: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/33.jpg)
Acceptance Tests
![Page 34: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/34.jpg)
test automation is a developer’s task
we need to provide them some good tools…
us
![Page 35: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/35.jpg)
Selenium 1 vs. Selenium 2
![Page 36: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/36.jpg)
![Page 37: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/37.jpg)
What’s out there? Selenium for PHP
PHPUnit_Selenium (Sebastian Bergmann)
WebDriver-PHP (Chibimagic)
Php-webdriver-bindings (Lukasz Kolczynski)
php-webdriver
PHPUnit_Selenium (Giorgio Sironi)
![Page 38: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/38.jpg)
php-webdriver Selenium 2
08/2011 Facebook/php-webdriver (Justin Bishop)
Element-34/php-webdriver (Adam Goucher)
instaclick/php-webdriver (Anthon Pang)
![Page 39: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/39.jpg)
php-webdriver
“A very thin wrapper of WebDriver”
![Page 40: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/40.jpg)
So what?
A thin layer is good! But not enough…
no test logic
no higher level components
dealing with Selenium specific tasks
not compatible to legacy test cases
No abstraction / structure
![Page 41: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/41.jpg)
Architecture
HTTP AUT
No direct access (DB, classes,…)
REST* (over HTTP)
*http://code.google.com/p/selenium/wiki/JsonWireProtocol
![Page 42: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/42.jpg)
![Page 43: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/43.jpg)
Project test cases
PHPUnit
Project Components
Components Library
Menta
php-webdriver
reusable
project specific
![Page 44: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/44.jpg)
Menta Selenium 2 Testing Framework for PHP
Who is “Menta”?
What is “Menta”?
![Page 45: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/45.jpg)
Why “Menta”?
![Page 46: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/46.jpg)
![Page 47: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/47.jpg)
Features Menta The framework.
Not the cat…
Components Session Management
? Bonus Features :) Event / Observer Configuration Management
PHPUnit integration
![Page 48: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/48.jpg)
Why?
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
Data Providers
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
Dependent Tests
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔
Test Infrastructure
![Page 49: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/49.jpg)
Menta for PHPUnit Abstract test class
PHPUnit_Framework_TestCase Menta_PHPUnit_Testcase_Selenium2 ProjectY_Abstract_TestCase
Very thin layer on top of PHPUnit
ProjectY_TestCase_Registration ProjectY_TestCase_Checkout the “magic” happens in the components
![Page 50: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/50.jpg)
Legacy Selenium 1 tests PHPUnit_Framework_TestCase PHPUnit_Extensions_SeleniumTestCase
ProjectY_TestCase_Registration ProjectY_TestCase_Checkout
![Page 51: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/51.jpg)
Legacy Selenium 1 tests PHPUnit_Framework_TestCase Menta_PHPUnit_Testcase_Selenium2
ProjectY_TestCase_Registration ProjectY_TestCase_Checkout
Menta_PHPUnit_Testcase_Selenium1
Selenium1Facade
Compatible with PHPUnit_Extensions_SeleniumTestCase
![Page 52: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/52.jpg)
HTML Report Screenshots (on demand
and on failure)
test description from phpdoc
additional messages
error details
![Page 53: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/53.jpg)
HTML Report “Duration Heatmap”
shows long running tests
![Page 54: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/54.jpg)
Menta for PHPUnit Text Result Printer
PHPUnit 3.7.20 by Sebastian Bergmann. Configuration read from /var/www/Tests/Acceptance/conf/devfb.ff.vmhost.xml > SUITE: > SUITE: > SUITE: Acceptance_Tests_Account_Register > TEST: Acceptance_Tests_Account_Register::register SUCCESS. (Duration: 8.18 sec) > TEST: Acceptance_Tests_Account_Register::login SUCCESS. (Duration: 6.5 sec) > TEST: Acceptance_Tests_Account_Register::testRegistrationMail FAILURE: Searching for mail with subject 'Welcome, Test_705b077a962977e1a412696ea42249ae User_705b077a962977e1a412696ea42249ae' timed out (Duration: 22 sec) < Duration: 36 sec < Duration: 36 sec > SUITE: > SUITE: Acceptance_Tests_Checkout_CheckoutMultiAddressTest > TEST: Acceptance_Tests_Checkout_CheckoutMultiAddressTest::putProductsInCart FAILURE: Element "//table[@id="shopping-cart-table"]//h3[contains(concat(' ', @class, ' '), ' attentionText ')]" does not contain text "Bulb Vase" Failed asserting < Duration: 9.87 sec > SUITE: Acceptance_Tests_Checkout_CheckoutTest > TEST: Acceptance_Tests_Checkout_CheckoutTest::categoryView SUCCESS. (Duration: 1.79 sec) > TEST: Acceptance_Tests_Checkout_CheckoutTest::putPlatterInCart FAILURE: Failed asserting that two strings are equal. (Duration: 3.55 sec) SKIPPED: This test depends on "Acceptance_Tests_Checkout_CheckoutTest::putPlatterInCart" to pass. (Duration: 5.34 sec) SKIPPED: This test depends on "Acceptance_Tests_Checkout_CheckoutTest::checkout" to pass. (Duration: 5.34 sec)
![Page 55: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/55.jpg)
Components?
Components!
![Page 56: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/56.jpg)
Manager Component
Menta_ComponentManager::get(‘PageObject_Cart’) PageObject_Cart
![Page 57: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/57.jpg)
Rewrites Component
PageObject_Cart ProjectZ_PageObject_Cart
extends
change locators
add functionality
change behavior
overwrite labels
![Page 58: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/58.jpg)
Manager Component
Menta_ComponentManager::get(‘PageObject_Cart’) ProjectZ_PageObject_Cart
Menta_ComponentManager::addRewrite(
‘PageObject_Cart’,
‘ProjectZ_PageObject_Cart’
);
![Page 59: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/59.jpg)
Components
Common Assert Wait Screenshot Selenium1Facade
Imap WebService W3C Validator Curl …
Some might not even require a Selenium session
![Page 60: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/60.jpg)
Gallery Screenshot
![Page 61: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/61.jpg)
Components! PageObjects?
PageObjects Components
{ } }⊇{
PageObjects are
components
![Page 62: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/62.jpg)
PageObjects?
represents services offered by a page or feature
is the only thing with a deep knowledge of
the HTML
clickCheckoutButton() isInCart($product) getTotals()
✔ ✔ ✔
![Page 63: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/63.jpg)
Component Libraries
Menta
Magento
(your library)
Project-
specific
Magento
(community-provided)
General
(your library)
![Page 64: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/64.jpg)
Session Management
Let Menta manage your sessions
auto-close
auto-start
incl. on exceptions and ctrl+c
Reusing sessions
Cleaning sessions
![Page 65: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/65.jpg)
Configuration Management
Fallback mechanism for global settings
Create multiple configurations for different browsers,
application instances or Selenium Servers
Compatible to PHPUnit (xml)
![Page 66: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/66.jpg)
Event / Observer Menta_Events::dispatchEvent('after_session_create');
Menta_Events::addObserver('after_session_create', function($session) {
$session->window('main')->postSize(array('width' => 1024, 'height' => 768));
}
![Page 67: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/67.jpg)
Bonus Features
![Page 68: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/68.jpg)
Sauce Labs Support
*configuration: http://username:[email protected]:80/wd/hub
works fine*
update test result (REST)
![Page 69: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/69.jpg)
Sauce Labs Support
Speaking name Test results
![Page 70: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/70.jpg)
Perceptual diffs Build X
Build X-1
Perceptual Diff
![Page 71: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/71.jpg)
github.com / AOEmedia / Menta github.com / AOEmedia / Menta_SampleProject
It’s composer based and you’ can get started in a few minutes!
![Page 72: 2013 05seleniummeetupexport PDF 130517105954 Phpapp02](https://reader033.vdocuments.mx/reader033/viewer/2022051519/56d6bf161a28ab301694d287/html5/thumbnails/72.jpg)
Thank you! Any questions?
http://www.aoemedia.com
http://www.fabrizio-branca.de
@fbrnc Follow me on twitter!
My blog