JMeter for Appian

Overview

Using this plug-in JMeter provides an easy way record and replay Appian processes.

JMeter for Appian accomplishes this by hooking into JMeter's Test Script Recorder mechanism. It alters the behavior of most HTTP requests so that additional logic runs when the test is recorded. This logic extracts the standard dynamic values that are passed back and forth when a user interacts with Appian.

Key Features & Functionality

This JMeter plug-in will add post processing to Appian requests/responses to:

  • Automatically handle headers for authentication
  • Automatically handle parameterization of context, _cIds and saveIntos in SAIL requests/responses
  • Automatically handle parameterization of taskIds for chained tasks
  • Automatically handle parameterization of docIds for uploads
  • Automatically handle parameterization of cacheKeys/parameters

The plug-in does not attempt to parameterize end user entered data. This could however be added to the generated test script.

Anonymous
  • Hi Michael,

    What's the behind the scene logic to capture dynamic values, how does the tool ensure correct values are passed to the subsequent requests?

  • Thanks Michael. Any ETA when the update would be available?

  • I see, that is likely due to some changes in the structure of the payload Appian passes back and forth with the browser. I'll submit an updated version that should work better with Appian 20.3 and later. Look for the update AppianJsonParser jar when the updated version appears.

  • Hi Michael,

    Thank you for replying, passing values through a CSV is not an issue, our script is failing as many of the correlated values are not resolving to a value. There are so many of those that we aren't sure which variable is coming from which response.

    Is there any way you can help?

    Thanks,

    Akshay 

  • The tool is trying to maintain all the backend correlating variables, like the SAVE_INTO and CID fields. For dynamic values that would be entered by a user, ideally those would be set dynamically while the test cases are running, so you aren't just entering the same data over and over. For example, use a CSV where each row corresponds to values of all the fields on a form, and put those values into variables in the POSTs that correspond to the saveIntos.

  • Hi Michael,

    I used jmeter for appian to record a flow, the dynamic variables have been automatically correlated but there are so many of them and many are not being resolved to a value, due to which our script is failing.

    Can you please help?

    Akshay

  • There's a PDF included in the zip that describes the setup, though that is specifically for the later version. The only difference for the earlier version would be which set of jars (the one in the 27-Apr-20 zip) you put in the same location. You need one version of the ApacheJMeter_http.jar and one version of the jar that has Appian in the name. The former is a modification of a jar distributed with Jmeter that has been altered to allow the logic in the other jar to execute when you record a test case.

    The PDF describes where to put the jars and how to start recording a test.

  • When I downloaded this JAR it came with following structure:

    \JMeter\JMeterForAppian Package\AppianJsonParser-20.2.0-SNAPSHOT, \JMeter\JMeterForAppian Package\ApacheJMeter_http

    \JMeter\JMeterForAppian Package 27-Apr-20\ApacheJMeter_http, \JMeter\JMeterForAppian Package 27-Apr-20\jmeter-for-appian-19.4.0-SNAPSHOT

    As I have to do this setup on 19.4 version https side so which one I should use , Also Is there any Document on it's setup and usage.

    Please provide the suitable help on this.

  • 20-Aug-20 Release Notes
    • The version of JMeter for Appian updates the plug-in to support modern JMeter/Java/Appian/Web browsers. It used the current latest version of JMeter, 5.3. It captures values dynamically based on the payloads sent by Appian 20.2.
  • Thank you Michael, I will look into this between cycles. Thanks for the heads up.

    Dan