meetmagento - acceptance tests in magento

34
Tomasz Grzemski Tymoteusz Motylewski Acceptance testing in Magento @Grzemski @tmotyl

Upload: macopedia

Post on 27-May-2015

760 views

Category:

Technology


0 download

DESCRIPTION

Create acceptance tests using Menta Framework. If you want to use it just download from GitHub https://github.com/AOEmedia/Menta_SampleProject

TRANSCRIPT

Page 1: MeetMagento - Acceptance tests in Magento

Tomasz GrzemskiTymoteusz Motylewski

Acceptance testing in Magento

@Grzemski

@tmotyl

Page 2: MeetMagento - Acceptance tests in Magento

Who we are?• Macopedia founders• Web Applications enthusiasts• Open Source Evangelists

Page 3: MeetMagento - Acceptance tests in Magento

Macopedia• Software House• Open Source and Scrum Lovers• Enterprise Web Applications• 3 offices in Poland (Poznan, Warsaw,

Cracow)

Page 4: MeetMagento - Acceptance tests in Magento

ContinuousIntegration

Deployment

Development

Delivery{Improvement

Page 5: MeetMagento - Acceptance tests in Magento

“Continuous”== “Doing stuff over and over again”

BuildsDeployment Tests Infrastructure

Setup

Devbox Setup

== “Automation”

Page 6: MeetMagento - Acceptance tests in Magento

Quality AssuranceContinuous

Everything sounds better with “continuous”

Page 7: MeetMagento - Acceptance tests in Magento

Developers

DB + Backup

Page 8: MeetMagento - Acceptance tests in Magento
Page 9: MeetMagento - Acceptance tests in Magento

Integration server

Unit tests Acceptance tests Load tests

Files

DB Settings

IntegrationServer

“Continuous”

Page 10: MeetMagento - Acceptance tests in Magento

Acceptance Tests

Page 11: MeetMagento - Acceptance tests in Magento

test automationis a developer’s task

Page 12: MeetMagento - Acceptance tests in Magento
Page 13: MeetMagento - Acceptance tests in Magento
Page 14: MeetMagento - Acceptance tests in Magento

Selenium for PHP• PHPUnit_Selenium• WebDriver-PHP• PHP-webdriver-bindings• PHP-webdriver• ...

Page 15: MeetMagento - Acceptance tests in Magento

Architecture

HTTPAUT

No direct access (DB, classes,…)

REST* (over HTTP)

*http://code.google.com/p/selenium/wiki/JsonWireProtocol

Page 16: MeetMagento - Acceptance tests in Magento

MentaSelenium 2 Testing Framework for PHP

Page 17: MeetMagento - Acceptance tests in Magento

Menta• Created by Fabrizio Branca from AOE

(Wiesbaden - Germany)• PHP Test Acceptance Framework• github.com / AOEmedia /

Menta_SampleProject

Page 18: MeetMagento - Acceptance tests in Magento
Page 19: MeetMagento - Acceptance tests in Magento

Menta Features

Components Session Management

?Bonus

Features :)Event / ObserverConfiguration

Management

PHPUnit integration

Page 20: MeetMagento - Acceptance tests in Magento

PHPUnit_Framework_TestCaseMenta_PHPUnit_Testcase_Selenium2ProjectY_Abstract_TestCase

Very thin layer on top of PHPUnit

ProjectY_TestCase_Registration ProjectY_TestCase_Checkout the “magic” happens in the components

Abstract test class

Page 21: MeetMagento - Acceptance tests in Magento

Components

Components!

Page 22: MeetMagento - Acceptance tests in Magento

Common Assert Wait Screenshot Selenium1Facade

Imap WebService W3C Validator Curl …

Some might not even require a Selenium session

Components

Page 23: MeetMagento - Acceptance tests in Magento

Component Libraries

Menta

Magento(your library)

Project-specific

Magento (community-provided)

General(your library)

Page 24: MeetMagento - Acceptance tests in Magento

Components Rewrites

PageObject_CartProjectZ_PageObject_Cart

extends

change locators

add functionality

change behavior

overwrite labels

Page 25: MeetMagento - Acceptance tests in Magento

Page Objects

represents services offered by a page or feature

is the only thing with a deep knowledge of

the HTML

clickCheckoutButton() isInCart($product) getTotals()

✔✔✔

Page 26: MeetMagento - Acceptance tests in Magento

Sessions Managment

Let Menta manage your sessions

auto-close

auto-start

incl. on exceptions and ctrl+c

Reusing sessions

Cleaning sessions

Page 27: MeetMagento - Acceptance tests in Magento

Screenshot Gallery

Page 28: MeetMagento - Acceptance tests in Magento

HTML ReportScreenshots (on demand

and on failure)

test description from phpdoc

additional messages

error details

Page 29: MeetMagento - Acceptance tests in Magento

Bonus!

Page 30: MeetMagento - Acceptance tests in Magento

Perceptual diffsBuild X

Build X-1

Perceptual Diff

Perceptual diffs

Page 31: MeetMagento - Acceptance tests in Magento

Selenium performance• Selenium GRID• Use cloud services

Page 32: MeetMagento - Acceptance tests in Magento

github.com / AOEmedia / Mentagithub.com / AOEmedia / Menta_SampleProject

Page 33: MeetMagento - Acceptance tests in Magento

Poznań Magento User Group19 listopada 17:30

pmug.pl