Scripting
Custom Filters

Custom Filters

🚫
This feature is deprecated and not recommended.

Migration guide

  • Migrate to Inline scripting from Custom Filters.
  • You can re-use the existing custom filters javascript files using Import JS files.
How to use Custom Filters in Inline Scripts:
  • Use the sample code below to import the custom filters JS file in Pre-Request and Post-Request inline scripts.
  • The path should be relative (right-click on the file and select Copy Relative Path) to the workspace if you are using Git-Sync. Otherwise, use the full path.
const [ filterName ] = require("thunder-tests/custom-filters.js");
 
var result = filterName();
console.log(result);

Custom Filters (Deprecated)

  • This feature is deprecated and will be removed in future releases. Please use Import JS Files instead.
  • Custom Filters are a way to extend the functionality of Thunder Client by writing custom JavaScript functions.
Create Customer Filters

Create Customer Filters

Step 1

  • Create Javascript file with custom filters
custom-filters.js
const CryptoJS = require("crypto-js");
const { v4: uuid4 } = require("uuid");
 
async function appendString(input, param1) {
 
     // read a file
    var data = await tc.readFile(input);
    
    // execute a command
    var result = await tc.exec("echo testing");
    
    return `${input} ${data} ${result}`;
}
 
function customHmac(input) {
    console.log("running custom hmac");
    var secretValue = tc.getVar("secret");
 
    let encoded = CryptoJS.HmacSHA256(input, secretValue);
    return encoded.toString(CryptoJS.enc.Base64);
}
 
module.exports = [customHmac, appendString];

Step 2

  • Attach Custom filters JS files to Collection Settings

col-sets

Step 3

  • Use Custom filters in Request

custom-filter-using


Pre Request Filter

  • Run Custom Filter directly in Pre-Run tab as Pre Request Script, useful to set Env Variables
Pre Filter
  • This Custom Filter will not have any arguments and return no value
custom-filters.js
function preFilter1() {
 
    console.log("set env variable example");
    let uuid = uuid4();
 
    // ---- save to active environment
    tc.setVar("uuidFromScript", uuid);
 
    // ---- save to local environment
    // tc.setVar("uuidFromScript", uuid, "local");
 
    // ---- save to global environment
    // tc.setVar("uuidFromScript", uuid, "global");
}
 
module.exports = [preFilter1];

Post Request Filter

  • Run Custom Filter directly in Tests tab as Post Request Script
  • Useful to do clean-up tasks after request or set environment variables from the response for advanced use cases
Post Filter

Scripting Reference

  • For complete scripting reference, please refer to the Scripting section.