webelement #11 - casperjs
DESCRIPTION
http://www.webelement.sk/event/webelement-11-testovanie-web-aplikacii-s-casperjsTRANSCRIPT
CasperJS
Vladimír Kriška (@ujovlado)WebElement #11
Čo je CasperJS?
Navigation scripting & testing utility
CasperJS je postavený na PhantomJS - náhrada browsera využívajúca Webkit.
Čo všetko vie?
● Browsovať● Vypĺňať formuláre● Klikať● Robiť screenshoty● Sťahovať content● Testovať● ...
A ešte
● Vykonávať kód na klientskej strane● Pracovať s viewportom● ...
Inštalácia
● Stiahnúť PhantomJS a CasperJS● Vytvoriť symlinky
vlado@pc:~$ ln -s casper_path/bin/casperjs /usr/local/bin/casperjs
vlado@pc:~$ casperjs javascript.js
Command Line Interface
casper.cli.has();
casper.cli.get();
Dva prístupy.
// pre options
casper.cli.has("arg"); // casper.cli.get("arg");
// pre args
casper.cli.has(0); // casper.cli.get(0);
Selektory
// CSS3
casper.test.assertExists('#main', 'existuje');
// XPath
casper.test.assertExists({
type: 'xpath',
path: '//*[@id="main"]'
}, 'existuje');
HTTP Status Codes
Nezačnem testovať keď nastala chyba.
casper.on('http.status.404', function() {
this.echo('404').exit();
});
casper.start('http://localhost/404', function() {
this.echo('vsetko v poriadku');
});
Verbose (debug) mode
Chcem vedieť, čo sa deje
var casper = require('casper').create({
verbose: true,
logLevel: "debug"
});
// logovanie
casper.log('debug message', 'debug');
Eventy
casper.on("meno.eventu", function(resource) {
// nieco sprav
});
● http.status.[code]● remote.alert● fill● start, exit● click● ...
Vlastné eventy
casper.on("webelement.presentation", function(status) {
this.echo("WebElement prednaska " + status);
});
casper.start("http://localhost/casperjs", function() {
var presentationStatus = 'bezi';
this.emit("webelement.presentation", presentationStatus);
});
Testovanie
Metódy:● assert()● assertEval()● assertExists()● assertNot()● ...
this.test.assertExists('.form', 'Form existuje');
Príklady
...
Ďakujem
vlado@pc:~$ casperjs presentation.js
PASS Odprezentovane
PASS 1 tests executed, 1 passed, 0 failed.
vlado@pc:~$