Automated Testing With Cucumber For Appian

Cucumber For Appian is a client-side tool that builds on top of what FitNesse For Appian has implemented and allows users to write automated UI tests against Appian with Gherkin syntax. Cucumber For Appian will support all of the same fixture methods that FitNesse For Appian currently supports.

Requirements

  • Appian 22.2 and above
  • Java Runtime Environment 11
  • Chrome or Firefox browsers
    If using Chrome, we recommend using Chrome For Testing for a more consistent testing experience.
  • Access to Terminal if you’re on Mac/Linux or Command Prompt if on Windows
  • Apache Maven tool

Installation

The zip file for the tool can be downloaded from the AppMarket.

  • Unzip the contents into any directory (e.g. C:/)
  • In a terminal window, navigate to the ‘CucumberForAppian-x’ (where x corresponds to the version number) folder extracted from the zip file (e.g. C:\CucumberForAppian-19.1-SNAPSHOT)
    • We will refer to this directory as CUCUMBER_ROOT from now on

Running Cucumber Tests

  • Navigate to src/test/resources from CUCUMBER_ROOT
  • Edit either the ApplicationExample.feature or TempoNavigationExample.feature file
    • “BROWSER” - Chrome or Firefox
    • “APPIAN_URL” - e.g. https://site-name.appiancloud.com
    • “APPIAN_VERSION” - e.g. 18.4
    • “APPIAN_LOCALE” - en_US or en_GB
    • “APPIAN_USERNAME” - e.g. fitnesse.user
    • The comments on the top of the .feature files will also help you in setting up
    • The completed feature file should look like the one shown below:
  • In CUCUMBER_ROOT, run ./setupCustomPropertiesForMac if using a mac or ./setupCustomPropertiesForLinux if using UNIX. If using Windows:
    • Open the “custom.properties” file located in CUCUMBER_ROOT/src/main/resources/configs and modify:
      • automated.testing.home to be CUCUMBER_ROOT (e.g. C:\CucumberForAppian-19.1-SNAPSHOT)
      • download.directory to be CUCUMBER_ROOT/target (e.g. C:\CucumberForAppian-19.1-SNAPSHOT\target)
  • Run mvn clean test in CUCUMBER_ROOT
  • The output in the terminal should be similar to what’s displayed below

*NOTE* By default, only the TempoNavigationExample.feature test file will run when you execute the command above due to the “tags” argument in RunCucumberForAppianTest.java

At the top of the TempoNavigationExample.feature file, there is a tag “@Tempo” which corresponds to that in the .java file. To selectively run the tests, you can add or remove tags as you wish. You can completely remove the tags parameter if you’d like to run all of the tests together.

By default, the tool collects usage metrics for analytics purposes.

Developing Custom Cucumber tests

The Cucumber sample tests from above will be a good model to follow when developing your own tests.

To help you out, we have provided a CucumberForAppian Cheatsheet. You can find it individually in the combined files ZIP you downloaded from the App Market. When developing tests, be sure you are using methods for the environment you are testing. For example, if testing sites, use navigation methods that come from the "Sites Methods" scenario. Using methods from a different environment has the potential to break in future releases.

The CheatSheet.feature file lists out all the methods we support and how to invoke them using the @Given, @When, @Then, @But, @And.... and other Cucumber supported annotation

Features

Multiple browser support

  • Chrome (v64-66)
  • Firefox (v53-v62)

Benefits

  • Test your Appian application within minutes of downloading the tool
  • Methods created specifically to operate within Appian applications and Tempo
  • Test scripts do not need to be updated for upgrades to supported Appian versions
  • Appian design knowledge is not required to create test scripts
  • Common test case scenarios can be created for reusability throughout test suites
  • Test scripts are easily updated for new UI changes to a form or interface

Release Notes

August 2024 - Release 24.3

  • Enhancements
    • Added built-in retry to click operation in case of element not interactable exception.
    • Updated the milestone locator.

June 2024 - Release 24.2

  • Enhancements
    • Updated locator for site menu links
    • Created method which supports clicking on text within an interface. This is particularly useful for nested cards such as tab layouts, but can also be used as a fallback when existing methods don't work. This method is available for all Appian versions.
    • Click operation on Card layout will be performed on the left side of the element instead of the right. We're not expecting any impact on existing test cases.

March 2024 - Release 24.1

  • Enhancements
    • Support for Appian version 24.1
    • Adds support for collapsing/opening sidebars
    • ClickOnCard updated to support clicking on cards with complex content. For example, the method can now click on cards that have a component nested in multiple layouts within the card

November 2023 - Release 23.4

  • NOTE: Project has been updated to require Java 11 JRE
  • Enhancements
    • Support for Appian version 23.4
    • Add support for the side navigation menu in sites
    • Add support for downloading charts
    • Add support for buttons configured with custom colors
  • Bug Fixes
    • Honor the download directory given in custom.properties for Remote Drivers
    • Update dropdowns for versions greater than 23.3 to ignore the aria-checked value
    • Fixed Populate Record Type Data Range User Filter method

August 2023 - Release 23.3

  • Enhancements
    • Supports Appian version 23.3
    • Added functionality to interact with new site group headers
    • Updated to Selenium 4.11.0
    • Add support for Date Range user filters in Record Types
    • Update checkboxes to support CARD style for 23.3 and later Appian versions

June 2023 - Release 23.2.1

  • NOTE: Updates to site navigation in the 23.2 product breaks the use of the "click on menu" method in site environments. "click on menu", and other Tempo navigation methods, are guaranteed to work only in Tempo environments. Use the "click on site page" method instead
  • Bug Fixes
    • Update pickers to recognize selections with links (e.g. Record Pickers)

June 2023 - Release 23.2

  • Enhancements
    • Supports Appian version 23.2
      • NOTE: Updates to site navigation in the 23.2 product breaks the use of the "click on menu" method in site environments. "click on menu", and other Tempo navigation methods, are guaranteed to work only in Tempo environments. Use the "click on site page" method instead

May 2023 - Release 23.1.2

  • Bug Fixes
    • Fixes an issue where Dropdowns with Search were not working
    • Fixes an Issue where verifyText did not work on multi-node components

February 2023 - Release 23.1

  • Enhancements
    • Supports Appian version 23.1
    • Updated locator for Dropdown class
  • Bug Fixes
    • Update CVEs
    • Update scripts (start.bat, start-mac.sh, start-unix.sh, runFitNesseTest.sh) toreference the new fitnesse-20221219-standalone.jar

August 2022 - Release 22.3

  • Cucumber for Appian is released and supported
  • Removed support for 20.3

November 2021 - Release 21.4

  • Enhancements
    • Support new card choice components
  • Bug Fixes
    • Update CVEs

August 2021 - Release 21.3

  • Bug Fixes
    • Fix bug for radio button card
    • Fix bug for date picker

June 2021 - Release 21.2

  • Enhancements
    • Support new SectionLayout
    • Upgrade Selenium Server to 3.141.59
  • Bug Fixes
    • Fix bug for radio button card
    • Fix bug for icon link alt text

February 2021 - Release 21.1

  • Enhancements
    • Supports Appian version 21.1 

November 2020 - Release 20.4

  • Enhancements
    • Support Chrome capabilities
    • Update Cucumber to 6.8.2
    • NEW METHOD: Support Stamp Field
    • NEW METHOD: Support Tag field
    • NEW METHOD: Support signature field
    • NEW METHOD: Support record action field
  • Bug Fixes
    • Fix grid row count bug when there is no paging
    • Fix getGridColumnRowValue when the grid cell is a button
    • Fix clear picker bug when there are multiple selections
    • Fix capturing an empty rich text field

September 2020 - Release 20.3

  • Enhancements
    • NEW METHOD: Populates the search box in a dropdown with some text
  • Bug fixes
    • Fixed a bug for custom login submit button

August 2020 - Release 20.2.1

  • Bug Fixes
    • Fixed a bug regarding clicking on card layouts

July 2020 - Release 20.2

  • Bug Fixes
    • Fix bug with milestone click
    • Fix toggle box visibility on related action pop up

April 2020 - Release 20.1

  • Enhancements
    • NEW METHOD: click on bar chart *
    • NEW METHOD: click on menu widget
    • NEW METHOD: click on button with tooltip
    • NEW METHOD: verify confirmation dialog header
    • NEW METHOD: verify confirmation dialog message
    • NEW METHOD: Verify a field is not blank
    • NEW METHOD: click on document image link
    • NEW METHOD: clear search field in record
    • Include all jars in Cucumber
  • Bug fixes
    • Remove pie chart hover for fragility and also make it the page scroll before hovering for firefox
    • Clicking on standalone icons by making the xpath less specific
    • Fix closing social task bug

January 2020 - Release 19.4.1

  • Enhancements
    • NEW METHOD: star and unstar action with action name
    • NEW METHOD: click on icon link with alt text
  • Bug fixes
    • Fixed issues for dropdowns with many options

November 2019 - Release 19.4

  • Enhancements
    • NEW METHOD: verify button with label is enabled
    • NEW METHOD: verify button with label is disabled
    • NEW METHOD: verify link containing text is not present
    • NEW METHOD: verify a box with given label is present
    • NEW METHOD: verify a box with given label is not present
    • NEW METHOD: verify a section with given label is present
    • NEW METHOD: verify a section with given label is not present
    • NEW METHOD: verify a card with given accessibility text is present
    • NEW METHOD: verify a card with given accessibility text is not present
    • NEW METHOD: verify if text is not present anywhere in the user interface
  • Bug fixes
    •  Fixed populate first column in a grid when rowheader is set to 1

September 2019 - Release 19.3.1

  •  Enhancements
    • Added additional logging for site page navigation
  •  Bug fixes
    • Fixed verify text present for text with apostrophe

June 2019 - Release 19.2

  •  Bug fixes
    • Support sending news post without participants

May 2019 - Release 19.1.3

  •  Bug fixes
    •  Fixed the bug that users can not click on menu tabs on Appian 19.1
    • Fixed the bug on Read Only field "contains"
    • Fixed the bug on sending news post on Appian 19.1

April 2019 - Release 19.1.2

Enhancements

  • Support Wait For Progress
  • Support Click on X and Y coordinates on monitor

Bug fixes 

  • Fixed the bug that box layout toggle only acts on the first box

March 2019 - Release 19.1.1

Bug fixes 

  • Fixed error popup caused by loading Automation Extension

February 2019 - Release 19.1

  • Cucumber For Appian available