Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CasperJs
Enjoy Functional Testing
CasperJs
Navigation scripting
Testing Utility
Written in Javascript
Open source
Based on PhantomJS
Headless Webkit browser
Full Javascript API
DOM Handling
CSS Selector
Canvas, SVG, Screen Capture
AND SINCE 1.1 Beta
SlimerJS
Gecko Scriptable Browser
Not yet truly headless (but works with xvfb)
PhantomJS
//clermontech.js
var page = new WebPage();
var result;
page.open('http://clermontech.org/', function (status) {
...
PhantomJS
fabien@fabien:~/clermontech$ phantomjs clermontech.js
Organiser son Application Backbone.js
Mobilité et NFC dans...
CasperJs
High Level API
Browsing navigation steps
Manage forms filling & submission
Test remote DOM
Logging events
Downloa...
Functional Testing ?
Functional tests check the integration of the different layers of an
application (from the routing to...
Example
//clermontech_casper.js
var casper = require('casper').create();
casper.start('http://clermontech.org', function()...
Execution
Selectors
CSS3
Xpath
casper.start('http://clermontech.org', function() {
this.test.assertExists({
type: 'xpath',
path: '//...
Beautifull Screenshot
casper.start('http://clermontech.org/', function() {
this.captureSelector('clermontech.png', 'body')...
Tools
Resurrectio
Chrome extension
Record navigation and generate casperjs test suites
GNU/Parallel
Parallelize test suites
@fabienpomerol
Thank you
Questions ?
Upcoming SlideShare
Loading in …5
×

CasperJs Enjoy Functional Testing

3,691 views

Published on

15'min Talk about CasperJS @ Clermont'ech

Published in: Technology
  • If you need your papers to be written and if you are not that kind of person who likes to do researches and analyze something - you should definitely contact these guys! They are awesome ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐ has really great writers to help you get the grades you need, they are fast and do great research. Support will always contact you if there is any confusion with the requirements of your paper so they can make sure you are getting exactly what you need.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Sex in your area is here: ❶❶❶ http://bit.ly/2F4cEJi ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • We called it "operation mind control" - as we discovered a simple mind game that makes a girl become obsessed with you. (Aand it works even if you're not her type or she's already dating someone else) Here's how we figured it out... ●●● http://ishbv.com/unlockher/pdf
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

CasperJs Enjoy Functional Testing

  1. 1. CasperJs Enjoy Functional Testing
  2. 2. CasperJs Navigation scripting Testing Utility Written in Javascript Open source
  3. 3. Based on PhantomJS Headless Webkit browser Full Javascript API DOM Handling CSS Selector Canvas, SVG, Screen Capture
  4. 4. AND SINCE 1.1 Beta
  5. 5. SlimerJS Gecko Scriptable Browser Not yet truly headless (but works with xvfb)
  6. 6. PhantomJS //clermontech.js var page = new WebPage(); var result; page.open('http://clermontech.org/', function (status) { if ('success' !== status) { console.log("Error"); } else { result = page.evaluate(function () { var titles = $('.latest .talks a'); var out = []; titles.each(function () { out.push($(this).text()); }); return out.join("n"); }); console.log(result); phantom.exit(); } });
  7. 7. PhantomJS fabien@fabien:~/clermontech$ phantomjs clermontech.js Organiser son Application Backbone.js Mobilité et NFC dans les Transports Introduction à Composer Ergonomie Web : Les Formulaires Back From Devoxx France 2013 Object Calisthenics Tasteful Private Cloud OVH Relax! Intro Aux Licences Libres
  8. 8. CasperJs High Level API Browsing navigation steps Manage forms filling & submission Test remote DOM Logging events Downloading resources Make some screenshot Write functional tests suites
  9. 9. Functional Testing ? Functional tests check the integration of the different layers of an application (from the routing to the views). Test your business rules Test the integration of your pages
  10. 10. Example //clermontech_casper.js var casper = require('casper').create(); casper.start('http://clermontech.org', function() { this.test.assertHttpStatus(200, 'Homepage is UP !'); this.echo('We click on Link Association'); this.click('a[title="A propos de Clermont'ech"]'); }); casper.wait('2000', function(){ this.test.assertHttpStatus(200, 'Association page is UP !'); this.test.assertUrlMatch(/association/, 'Url is well formed'); var members = this.evaluate(function() { return __utils__.findAll('.row .container ul li').length; }); this.test.assertEquals(6, members, '6 members in the association'); this.test.assertTextExists('Julien Maupetit', 'We found Mr President'); }); casper.run(function(){ this.test.done(); });
  11. 11. Execution
  12. 12. Selectors CSS3 Xpath casper.start('http://clermontech.org', function() { this.test.assertExists({ type: 'xpath', path: '//*[@id="logo"]' }, 'the logo exists'); });
  13. 13. Beautifull Screenshot casper.start('http://clermontech.org/', function() { this.captureSelector('clermontech.png', 'body'); }); casper.run();
  14. 14. Tools Resurrectio Chrome extension Record navigation and generate casperjs test suites GNU/Parallel Parallelize test suites
  15. 15. @fabienpomerol Thank you Questions ?

×