FitNesse for Appian

Overview

FitNesse for Appian is a client-side tool that makes it easy to create automated tests on the Appian platform. Create test scripts that will run Appian as if a user was clicking through the application and filling out data. FitNesse for Appian includes easy instructions to get you started.

Note: Java 11 required for plugin version 23.4

Key Features & Functionality

With FitNesse for Appian, you can:

  • Write easy-to-read wiki language tests for Appian applications
  • Speed up testing times
  • Set up reusable regression tests

Reusable scripts can be written to:

  • Create new packages
  • Move them to different stages in the workflow
  • Check that forms are being populated correctly
Anonymous
  • Hi! Thanks for using FitNesse for Appian and sorry that you are having this trouble. 

    When the script is running the click on record type command, do you see a record type named "automated testing records" on your UI?

    Based on your exception message, I see that you are using at least version 20.1 in FitNesse. Is your version of Appian 20.1 or older? The xpath to locate a record type has changed since version 20.1 release. If your version is older, please use the set appian version command to set it accordingly in your FitNesse Script. You can do so by:

    |set appian version to | <YOUR VERSION HERE> |. For example: |set appian version to | 19.4 |

    You can also verify if the xpath is correct by opening the record list on a browser, and then open the developers console window. You can use shortcut F12 if you are on Chrome.

    Paste in the xpath from your exception message and wrap them in $x("YOUR XPATH HERE"): 

    $x("//div[contains(@class, 'CardLayout---card_item') and descendant::a[ contains(@class, 'CardLayout---accessibilityhidden') and starts-with(translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'automated testing records')]]")

    And then hit "enter"

    If it doesn't return anything, it means the xpath can not locate the record type for you. You should be able to see something like this:

     

    I hope this helps.

  • I even tried with below script.

  • Hi,

    I am facing issue while clicking on record type. Below is the screenshot from script and log. Could you please help.

  • Hi,

    I am facing issue when I say to click on Record Type and give record name. Could you please help me out.

    Below is from script (because of copy paste it is not formatted)

    !| script |
    |click on menu |Records |
    |search for |Automated Testing Records |
    |click on record type|automated testing records |

    Below is from log. 

    2020-09-10 17:11:50,153 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoLogin - LOGIN [*****]
    2020-09-10 17:12:33,053 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoLogin - WAIT FOR LOGIN
    2020-09-10 17:12:38,276 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoMenu - WAIT FOR [Records]
    2020-09-10 17:12:38,286 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoMenu - CLICK [Records]
    2020-09-10 17:12:48,092 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoSearch - WAIT FOR SEARCH [Automated Testing Records]
    2020-09-10 17:12:48,147 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.TempoSearch - SEARCH FOR [Automated Testing Records]
    2020-09-10 17:12:57,166 [main] DEBUG com.appiancorp.ps.automatedtest.tempo.record.TempoRecordType - WAIT FOR RECORD TYPE [automated testing records]
    2020-09-10 17:13:07,432 [main] ERROR com.appiancorp.ps.automatedtest.exception.ExceptionBuilder - Record Type - automated testing records
    org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.xpath: //div[contains(@class, 'CardLayout---card_item') and descendant::a[ contains(@class, 'CardLayout---accessibilityhidden') and starts-with(translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'), 'automated testing records')]] (tried for 10 second(s) with 500 MILLISECONDS interval)
    at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:80)
    at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:232)
    at com.appiancorp.ps.automatedtest.tempo.record.TempoRecordType.waitFor(TempoRecordType.java:63)

  • Hi, thanks for your question.

    We typically tried to release FitNesse a week or two after a new Appian version is released. We are aware that some customers that some customers need to have the release sooner. Going forward, we will release FitNesse as soon as a new Appian version is rolled out.

    Thanks.

  • A new update has been released with the fixes. 

  • v20.2.1 Release Notes
    • Bug Fixes
    • Fixed a bug regarding clicking on card layouts
  • Is it possible to release new FitNesse updates by the time when new Appian version are rolled out? The issue is that we always have to wait for a new FitNesse update before we upgrade an environment with a new Appian version.

  • Thanks . Appreciate your help. Any idea when this will be released?

    Furthermore, we are very surprised that we as customer came across this issue. Can it be that it has not been tested by Appian? But if it has been tested by Appian, where could we have read about the incompatibility? As a result we have applied a fix to an environment which now is 'broken' (to a certain extend).