EPPlication - Testing Framework (live examples!)
EPPlication - Testing Framework (live examples!)
By David Schmidt (davewood) from Vienna.pm
Date: Friday, 10 October 2014 14:50
Duration: 40 minutes
Target audience: Any
Language: English
Tags: catalyst dbix::class html::formhandler testing
You can find more information on the speaker's site:
Slides: http://www.davidschmidt.at/files/APW2014_EPPlication_slides.pdf
This talk is about a web application for building and running tests for the austrian registry. But really you could use this framework to test pretty much anything if you want. (I am not saying you should!)
In the beginning EPPlication was only capable of sending EPP calls (a XML based protocol to communicate with registries) but that has changed and it can make all kinds of calls now. (REST, SOAP, SQL and SSH)
Tests are created by clicking together the various steps
- setting a variable
- sending an EPP/SOAP/REST/SQL/... call
- extracting data from a previous remote call
- validating a variable
- ...
- reusing/encapsulating steps in modules
So it's kind of a graphical programming language.
Running a test can be done either by clicking a button (useful during test
development) or by using a command line interface that communicates with
the framework RESTfully. The latter can be used to run tests automatically
via cronjob or even as a CI system.
Test results can be viewed in the browser, a search function helps you to
find the interesting parts of a test result. The Command Line Interface also
receives a short summary of the test result.
After a couple of days the test results (which are stored in a DB) are
written to disk and deleted from the DB.
Tests can run in parallel, we are currently testing 10+ TLDs at the same
time. Processes are forked (using Child.pm) and tasks are distributed
using a message queue (ZeroMQ).
The EPPlication codebase is very DRY, configurable and well
tested. It uses Catalyst, DBIX::Class, Template::Toolkit,
HTML::FormHandler, JQuery and Bootstrap3 as web stack.
Attended by: Markus Förster, Thomas Heine, Stephen Riehm, David Schmidt (davewood), Philipp Gortan (mephinet), Stefan Seifert (Nine), Johann Rolschewski (jorol), Helmut Wollmersdorfer (wollmers), Peter Holzer (hjp), Nina Bieringer, Sebastian Hofer, Roland Ortner, Timo Paulssen (timotimo), Wendy Van Dijk (woolfy),