In this tutorial, we will create some tests in JavaScript using casperjs.


  • phantomjs
  • casperjs

Please note

As of 2019, CasperJS is no longer maintained.


casper.test.begin('Google search retrieves 10 or more results', 5, function suite(test) {
    casper.start("http://www.google.fr/", function() {
        test.assertTitle("Google", "google homepage title is the one expected");
        test.assertExists('form[action="/search"]', "main form is found");
        this.fill('form[action="/search"]', {
            q: "casperjs"
        }, true);
    casper.then(function() {
        test.assertTitle("casperjs - Recherche Google", "google title is ok");
        test.assertUrlMatch(/q=casperjs/, "search term has been submitted");
        test.assertEval(function() {
            return __utils__.findAll("h3.r").length >= 10;
        }, "google search for \"casperjs\" retrieves 10 or more results");
    casper.run(function() {

After running the tests and generating the JUnit XML report (e.g., log.xml), it can be imported to Xray (either by the REST API or through the Import Execution Results action within the Test Execution).

casperjs test google_testing.js --xunit=log.xml

JUnit's Test Case is mapped to a Generic Test in Jira, and the Generic Test Definition field contains the name of the test concatenated with the alias of each test case "assert" statement.

The Execution Details of the Generic Test contains information about the Test Suite, which in this case corresponds to the name of the test case.


  • http://docs.casperjs.org/en/latest/testing.html