Working in Command Line

Single page test

In order to perform a single page test you can use the command check. Take a look at the following example

galen check homepage.gspec --url "http://example.com" --size "640x480" --javascript "some.js" --include "mobile,all" --exclude "toexclude" --section "Some section name" --htmlreport "htmlreport-dir" --testngreport "testng-report.xml" --jsonreport "jsonreport-dir" --junitreport "junit-report.xml" --config "path/to/galen.config"

Command line arguments:

  • url - a URL of page for Galen to test on
  • javascript - a path for javascript file which Galen will inject in web page
  • include - a comma separated list of tags for spec sections which will be included in testing
  • exclude - a comma separated list of tags for spec sections to be excluded from the filtered group
  • section - a simple filter for section
  • size - dimensions of browser window. Consists of two numbers separated by “x” symbol
  • htmlreport - path to folder in which Galen should generate HTML reports
  • testngreport - path to xml file in which Galen should write TestNG report
  • jsonreport - path to folder in which Galen should generate JSON reports
  • junitreport - path to junit xml report file
  • config - path to config file

Running test suites

If you want to execute Galen Test Suites then you should use the following command

galen test mytest01.test --htmlreport "htmlreport-dir" --testngreport "report/testng.xml" --jsonreport "jsonreport-dir" --junitreport "junit-report.xml" --parallel-tests 4 --config "path/to/galen.config"

Command line arguments:

  • htmlreport - path to folder in which Galen should generate HTML reports
  • testngreport - path to xml file in which Galen should write TestNG report
  • junitreport - path to junit xml report file
  • parallel-tests - amount of threads for running tests in parallel
  • recursive - flag which is used in case you want to search for all .test files recursively in folder
  • filter - a filter for a test name
  • config - path to config file

Running test suites with test filter

Lets say you have multiple tests for multiple devices but you only want to execute a test for a home page. You can use ‘*’ symbol in filter

galen test mytest01.test --htmlreport "htmlreport-dir" --testngreport "report/testng.xml" --junitreport "junit-report.xml" --parallel-tests 4 --filter "Home page on * device"

Running test groups

In case you want to run tests only for specific groups you can use groups argument in command line.

galen test tests/ --htmlreport report --groups homepage,loginpage

You have to define your own groups that you use in your tests. If you use standard test suite then you can read about groups in this article

In case you use JavaScript tests then this article can help you.

Running tests with excluded groups

Sometimes you might need to run all tests that don’t belong to certain group. For this reason you can use excluded-groups argument.

galen test tests/ --htmlreport report --excluded-groups homepage,loginpage

Providing system properties

Sometimes you might need to provide system properties for your tests. For instance if you want to run tests in local Chrome, IE or PhantomJS browser – you have to provide a path to each browser or a special driver binary. This could be done with system properties. Just use -D prefix for command line argument. Here is an example how to run tests for phantomjs. In your case the path to phantomjs binary might be different:

galen test mytest01.test -Dphantomjs.binary.path=/opt/phantomjs/bin/phantomjs

Or for example if you need to run your tests in Chrome

galen test mytest01.test -Dwebdriver.chrome.driver=/opt/chromedriver/chromedriver

Creating page dump

Since version 1.3 Galen has a feature of creating a page dump. With a page dump you can store information about all your test objects on the page together with image samples.

galen dump "specs/homepage.gspec" --url "http://galenframework.com" --size "1024x768" --export "dumps/homepage-dump" --max-width "200" --max-height "200"

Command line arguments:

  • url - a URL of a web page for which you want to create a page dump
  • size - a browser window size
  • export - a path to page dump folder
  • max-width - a maximum width of an element for which it should create an image sample
  • max-height - a maximum height of an element for which it should create an image sample

Once the page dump is finished Galen will create a folder with specified path and will put all image samples in objects folder. It also provides a page.html file in which you can see all your page objects and see different spec suggestions for them.

Spec Generator

Since version 2.4 galen allows to generate specs based on page dump. It takes a page dump json file as a source of truth for elements positions and generates specs in specified location.

galen generate "some-page-dump.json" --export "result.gspec"

The above command will generate specs together with galen-extras rules. But, if you want to avoide using galen-extras, you can run it with optional argument --no-galen-extras:

galen generate "some-page-dump.json" --export "result.gspec" --no-galen-extras

Mutation Testing

Since version 2.4 galen lets you perform the so called mutation testing of your galen specs. It lets you check whether your galen specs are good enough by running “mutations” for each object and checking if it was catched by the spec. It works like the check command and uses same arguments. All you need is a working galen spec (it should always pass, otherwise mutation test will not succeed) and you can run it via the following command

galen mutate some-page.gspec --url http://example.com --size 1024x768 --include desktop --offset 5 --htmlreport mutation-report

Command line arguments:

  • url - a URL of page for Galen to test on
  • offset - an offset in pixels for each mutation (by default it is 5)
  • javascript - a path for javascript file which Galen will inject in web page
  • include - a comma separated list of tags for spec sections which will be included in testing
  • exclude - a comma separated list of tags for spec sections to be excluded from the filtered group
  • section - a simple filter for section
  • size - dimensions of browser window. Consists of two numbers separated by “x” symbol
  • htmlreport - path to folder in which Galen should generate HTML reports
  • testngreport - path to xml file in which Galen should write TestNG report
  • jsonreport - path to folder in which Galen should generate JSON reports
  • junitreport - path to junit xml report file
  • config - path to config file

Usage in Node-Projects

You can directly use Galen in your node project. Just use a package.json like this:

"scripts": { "galen": "galen" }, ... "devDependencies": { "galenframework-cli": "2.3.2" }

Then you can run one spec like this:

npm run galen -- check test/specs/google_success1.gspec --url 'https://www.google.com' --size '1280x800' --htmlreport dist/galen-report

Comments

We have moved all the discussions to Google Groups. From this moment, if you have problems with your test code or some issues with installation, please ask your questions in https://groups.google.com/forum/#!forum/galen-framework.