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
  • A bit late but... check the "context"'s variable JSONPATH on the previous request. It seems it was changed in later versions. The plugin tries to find the context data with $.context.#v . However, the response context value is under: $.context.value. Check on your failing request if the context looks like 

    "context":{"type":"stateful","value":"${CONTEXT}","#t":"Map"}

    If not, please change and try again.

  • Are you not seeing any 500 errors in the tomcat access logs? 502 and 504 seem like they could be errors at the Web server level if perhaps the app server is not responsive.

  • had similar problem with post requests 500 status. and in addition this error {"error":"APNX-1-4198-019","message":"Expression evaluation error [evaluation ID = a431a:aa1ee]: An error occurred while executing a save: This page has timed out. Changes you made may not be saved. Click OK to refresh the page.","title":"An Error Has Occurred"}

    Does anyone know how it can be solved?

    jsonextractor used

  • Hi, 

    In the execution of user load / capacity testing, the JMeter results file is recording 500 errors (such as 502 Bad Gateway and 504 Gateway Time-out); however the Appian environment is not displaying any errors, either in monitoring or the system logs.

    Has anyone else experienced this issue? Is there a reason JMeter would record a 500 that does not correspond to any error on Appian-side? 

    Thank you!

  • I'm facing the same issue. Did you get the solution?

  • Hi!!

    Im having problems when trying to execute a recording that has startProcess, Is there any way to solve it?

    Thanks!

  • Most likely you need to:

    (1) in jmeter.properties, set
    CookieManager.save.cookies=true

    (2) in the login POST to suite/auth, populate X-APPIAN-CSRF-TOKEN with ${COOKIE___appianCsrfToken}.

  • Hi!!

    We are having problems with the Appian authentication in JMeter because is not working. Is there any guidance how to do it?

  • Thanks, that works!

    Now i have a problem with a post request, a saveInto variable, could you help me?

  • Hi!

    I have a problem with Jmeter for Appian.

    First, I can solve a problem with login by using X-APPIAN-CSRF-TOKEN and JSESSIONID as cookies in HTTP COOKIE MANAGER.

    Then I’d like to make a search (search a project) in our Appian cloud, but Jmeter returns me an error “Response code 401” when I do a POST resquest.

    I have 2 variables in my body data request, “saveInto” and “context value”. Context value is ok but the problem is in saveInto.

    Before the request I have a Json extractor, automatically created by “AppianJsonParser-20.3.0-SNAPSHOT”

    Json extractor gets the variable with “\ /” and response data hasn´t this character. How can I do for solve it?

     

    My request body:

    "<<jA0EAwMCd7VWJIKW7uMB0qEB4gr03ece1fNv\/y4Pg0ICDVpb2JTjXqQKFFbbTFyDBsBUX1Ig641O\r\nEIvj9abXOz0cMHc+45Ts9GjWWy+Fmc07WVsuxzoD+u1DSGLN26EM0sa1Ke4++9ugE7lZNuB4hVh2\r\nr3lwggg7P84gys5KDCLkcY6LZ1I05\/zcSpkTmqAPwUb8m1NjVswMcRYF6KbPmoGN+QHdTDW+8Q26\r\nb7MTqs0TEA==\r\n>>"

     

    Response body data:

    "<<jA0EAwMCd7VWJIKW7uMB0qEB4gr03ece1fNv/y4Pg0ICDVpb2JTjXqQKFFbbTFyDBsBUX1Ig641O\r\nEIvj9abXOz0cMHc+45Ts9GjWWy+Fmc07WVsuxzoD+u1DSGLN26EM0sa1Ke4++9ugE7lZNuB4hVh2\r\nr3lwggg7P84gys5KDCLkcY6LZ1I05/zcSpkTmqAPwUb8m1NjVswMcRYF6KbPmoGN+QHdTDW+8Q26\r\nb7MTqs0TEA==\r\n>>"

     

    Thanks