1.

Record Nr.

UNINA9910822217703321

Autore

Friesel Rob

Titolo

PhantomJS cookbook : over 70 recipes to help boost the productivity of your applications using real-world testing with PhantomJS / / Rob Friesel ; cover image by Poonam Nayak

Pubbl/distr/stampa

Birmingham, England : , : Packt Publishing, , 2014

©2014

ISBN

1-78398-193-8

Descrizione fisica

1 online resource (304 p.)

Collana

Quick answers to common problems

Disciplina

006.7

Soggetti

Web site development

Web sites - Design

Internet programming

Lingua di pubblicazione

Inglese

Formato

Materiale a stampa

Livello bibliografico

Monografia

Note generali

"Quick answers to common problems"--Cover.

Includes index.

Nota di contenuto

Cover; Copyright; Credits; About the Author; About the Reviewers; www.PacktPub.com; Table of Contents; Preface; Chapter 1: Getting Started with PhantomJS; Introduction; Installing PhantomJS; Launching the PhantomJS REPL; Running a PhantomJS script; Running a PhantomJS script with arguments; Running PhantomJS with cookies; Running PhantomJS with a disk cache; Running PhantomJS with a JSON configuration file; Debugging a PhantomJS script; Chapter 2: PhantomJS Core Modules; Introduction; Inspecting the version at runtime; Managing cookies with the phantom object

Specifying a path for external scriptsSetting up a global PhantomJS error handler; Controlling the exit status of a PhantomJS script; Inspecting command-line arguments; Inspecting system environment variables; Saving a file from a PhantomJS script; Reading a file from PhantomJS; Creating a custom module for PhantomJS; Loading custom modules in PhantomJS; Chapter 3: Working with webpage Objects; Introduction; Creating a web page instance in PhantomJS with the webpage module; Opening a URL within PhantomJS; Generating a POST from PhantomJS; Inspecting page content from a PhantomJS script



Including external JavaScript on the pageRecording debugger messages; Simulating mouse clicks in PhantomJS; Simulating keyboard input in PhantomJS; Simulating scrolling in PhantomJS; Simulating mouse hovers in PhantomJS; Blocking CSS from downloading; Causing images to fail randomly; Submitting Ajax requests from PhantomJS; Working with WebSockets in PhantomJS; Chapter 4: Unit Testing with PhantomJS; Introduction; Running Jasmine unit tests with PhantomJS; Using TerminalReporter for unit testing in PhantomJS; Creating a Jasmine test runner for PhantomJS and every other browser

Running Jasmine unit tests with GruntWatching your tests during development with Grunt; Running Jasmine unit tests with the Karma test runner; Generating code coverage reports with Istanbul and the Karma test runner; Running Jasmine unit tests with Karma and PhantomJS from WebStorm; Running QUnit tests with PhantomJS; Running Mocha unit tests with PhantomJS; Chapter 5: Functional and End-to-end Testing with PhantomJS; Introduction; Running Selenium tests with PhantomJS and GhostDriver; Using WebdriverJS as a Selenium client for PhantomJS; Adding Poltergeist to a Capybara suite

Taking screenshots during tests with PoltergeistSimulating precise mouse clicks with Poltergeist; Installing CasperJS; Interacting with web pages using CasperJS; End-to-end testing with CasperJS; Exporting test results from CasperJS in XUnit format; Detecting visual regressions using PhantomCSS; Chapter 6: Network Monitoring and Performance Analysis; Introduction; Generating HAR files from PhantomJS; Listing CSS properties; Generating an appcache manifest; Executing a simple performance analysis; Executing a detailed performance analysis

Executing a YSlow performance analysis with a custom ruleset

Sommario/riassunto

A task-based guide that provides solutions to real-world test automation problems. This book is intended for web development professionals who want to integrate PhantomJS into their development and testing workflows. If you are a web developer looking to run automated unit tests while you work, or perhaps you are a QA engineer looking for a fast test automation utility, then this book is perfect for you. Some prior knowledge of JavaScript would be helpful.