Releases: thunderclient/thunder-client-support
Releases · thunderclient/thunder-client-support
v2.13.3
v2.13.0
New Features
- Requests should not be executed on failure of pre request script #1309
- Schema validation errors should be part of the report (HTML & JSON) #1246
- Using System Variables in Environment with syntax highlighting #1245
- Save to collection view success msg message displayed clearly #1317
tc.request.getHeader
andtc.request.setHeader
helper functions added to tc objecttc.response.getHeader
helper function added to tc object
Bug Fixes
- OAuth 2 error with PKCE and optional client_secret #1357
Free Version Limits
- We have increased the
requests per collection limit to 50
. - We have also included an
HTML report
in the Run Collection in the free version #1367
v2.12.7
New Features
atob
andbtoa
built-in modules added to custom scripts
v2.12.0
Requests Per Collection Limit
The free version
will have a limit of 50 requests per collection from Sept 30th 2023
.
- Reqs per collection - 50
- You will not be able to import collections with requests of more than 15.
- See all limits for the free version on our website
Free Version Terms
Please make sure you have read the free version terms
- Individual User Only
- See all the free version terms on our website
New Features:
Cmd/Ctrl + Click
on the folder/collection will opencollection settings
.- [Bug] Test for text responseData #1322
- [Bug] Problem with gettings tests from parent folder? #1321
Questions
- If you have any questions, please contact us
v2.11.4
New Features
- The
chai
module is now included in the extension, no need to download externally - #1313 - This is an update to the script assertion feature released in v2.10.0
- Update CLI to
v1.5.2
Example Code
var chai = require("chai");
var expect = chai.expect;
var assert = chai.assert;
function testChaiFilter() {
tc.test("Response code is 200", function () {
assert.equal(tc.response.status, 200)
})
tc.test("Response code expect to be 200", function () {
expect(tc.response.status).to.equal(200);
})
}
module.exports = [testChaiFilter]
v2.11.0
New Features
- Include Request
Id
in tc object - #1298 tc.setParam
new function added to tc object to set query parameter #1303- Customise the Html Report response display limit in CI/CD #1312
removeSpaces
new built-in filter addedunique
built-in filter added- Update tc-types.d.ts to version
1.5.0
Collection Runner Limits
- Collection Runner is a premium feature
- See limits for all plans on our website
- Free version limits will be applied from Sept 15th, 2023
v2.10.0
Assertions using Scripting
Today we are releasing a new feature: Test assertions using scripting. Developers can now use scripting to write assertions, based on the use case you can choose a scripting or GUI interface for assertions.
- New function
tc.test()
added to tc object useful for assertions #465, #194, #347 - You can write assertions and use them only in
Post Request Filter
inTests
tab - Update tc-types.d.ts to version
1.4.0
- Update CLI to version
v1.4.6
Assertions without any library
function testFilter() {
let success = tc.response.status == 200;
let json = tc.response.json;
let containsThunder = json.message?.includes("thunder");
tc.test("Response code is 200", success);
tc.test("Response contains thunder word", containsThunder);
// Assertions using function syntax
tc.test("verifying multiple tests", function () {
let success = tc.response.status == 200;
let time = tc.response.time < 1000;
return success && time;
});
}
module.exports = [testFilter]
Assertions using Node Assert library
// using built-in node assert module
const assert = require("assert");
function testFilter() {
console.log("test assertion filter");
tc.test("Response code is 200", function () {
assert.equal(tc.response.status, 200);
})
}
module.exports = [testFilter]
Assertions using Chai library (updated in v2.11.4)
var chai = require("chai");
var expect = chai.expect;
var assert = chai.assert;
function testChaiFilter() {
tc.test("Response code is 200", function () {
assert.equal(tc.response.status, 200)
})
tc.test("Response code expect to be 200", function () {
expect(tc.response.status).to.equal(200);
})
}
module.exports = [testChaiFilter]
CLI
- Single report for test run with multiple collections #1221
- Display paths of generated reports #1233
--reqlist
will accept request name or id #1234- Update CLI to version
v1.4.6
Bug Fixes
v2.9.2
New Features
- parseJSON filter added to built in filters #1227
- readFile filter now supports
base64
format #1125 - Duration report for collection-wide tests #1226
- New helper function await tc.delay() added to tc object in scripts
- Update tc-types.d.ts to version
1.3.1
- Update CLI to version
1.4.5
Bug Fixes
v2.9.0
New Features
- Support for
multi-root workspaces
#731, #1169, #1139, #574 - Added new api
await tc.runRequest("reqId")
totc
object in scripts #1199 - Run a filter/script
after Tests
performed #1158 - Pre-request chaining: more conditions #1043
- Sync UI Views when file content changes #1201
- [CLI] Request and response details in
Html report
in CLI #1126 - [CLI] Implement
--log
for "col", "fol" or "reqlist" with TC CLI #1070, #1165 - [CLI]
Auto Update
CLI to the latest version - [CLI] Added
--var-data
parameter to pass Env variables data in CLI #1184 - [CLI] Display debug information using
tc --debug
CLI
- Update CLI to
v1.4.2
-npm i -g @thunderclient/cli
Bug Fixes
- OpenAPI import does not support
.yml
file extension #1212
Run Request in Scripts
- Now you can run requests already created from scripts
- Update types file
tc-types.d.ts
to v1.3.0
async function testReq(){
var result = await tc.runRequest("reqId");
console.log(result);
}
module.exports = [testReq]
Post Request Script
- You can run a filter as post request script from the Tests tab
- Useful to do clean-up tasks after request or set environment variables from the response for advanced use cases
![Screenshot 2023-07-07 at 15 40 49](https://private-user-images.githubusercontent.com/8637550/251776276-3b840961-4583-4434-9001-701a111de521.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE4MzIsIm5iZiI6MTczOTM2MTUzMiwicGF0aCI6Ii84NjM3NTUwLzI1MTc3NjI3Ni0zYjg0MDk2MS00NTgzLTQ0MzQtOTAwMS03MDFhMTExZGU1MjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTE1ODUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZTdjZDkxNWE4NzYwYTVhMWE0NWNiNWRiZWVjZDlkOTM1Yzc4NmMyMjg2MGUxMzQwYWRlN2NiNDNhNjY3NzA1MiZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.srOtocMP0q6m7fDKVKKOdPfit2yCMofzldMSgqV3gfM)
Multi-root workspaces
- Multi-root workspaces are now supported.
- When you open a multi-root workspace the extension will prompt you to select the workspace to save data.
- You can load request data from different workspace easily (see below image).
![Screenshot 2023-07-07 at 17 38 01](https://private-user-images.githubusercontent.com/8637550/251804066-b359bd26-8206-47c4-bde2-58de0104d204.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE4MzIsIm5iZiI6MTczOTM2MTUzMiwicGF0aCI6Ii84NjM3NTUwLzI1MTgwNDA2Ni1iMzU5YmQyNi04MjA2LTQ3YzQtYmRlMi01OGRlMDEwNGQyMDQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTE1ODUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTMzMGVkNzRmNzllZTU3OGYwM2VlMjM1N2Y2ZDc5OTE5ZDYxYThlMjVkMmVhZTViNmYyMzg2NjZmMDM5ZTBjNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.fwObhC0uq0JAoyoVrbjQsgUtZ2KMv0F0IdhfgpdKOCQ)
Request Chaining More Conditions
- The following conditions are supported
=, !=, <=, <, >=, >, *=, ^=, $=
*=
performscontains
operation^=
performsstartsWith
operation$=
performsendsWith
operation
![Screenshot 2023-07-08 at 07 50 23](https://private-user-images.githubusercontent.com/8637550/251943389-63296e89-349e-4fc2-9e11-3e9fe008450f.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE4MzIsIm5iZiI6MTczOTM2MTUzMiwicGF0aCI6Ii84NjM3NTUwLzI1MTk0MzM4OS02MzI5NmU4OS0zNDllLTRmYzItOWUxMS0zZTlmZTAwODQ1MGYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTE1ODUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjQyYzc4OTU5MjljMjg2MzE4NGIyNTc2ZmRkYjFiOThmM2YyM2QxNjMyZTI1NGVlZmE0NzUyNmNmYjliMjVmZSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.pPWqUoMxUQNtcwY3iBzf6pOUYozwOlcBPACax4T2XFE)
v2.8.0
New Features
Separate Collections & Environments
to different files #574, #1035Autocomplete
for recent endpoints in URL field #1192- Auth: Include origin in
refresh
request Header #1203 - VS Code setting renamed
Sidebar Hide Date Modified
toSidebar Layout
#577
Bug Fixes
- Array Filter with IP Addresses #1123, #1141
- Clear Activity button doesn't work #1204
- JSON body validation error #1198, #1117, #516
- Collection run stops working after 1 run #1143, #1168
CLI
- Please update CLI to v1.3.3 -
npm i -g @thunderclient/cli
Database Upgrade v3
- The database design changed from a single file to
separate files
for each collection and environment. - The new db design will reduce merge conflicts with git
- The old database files moved to
_db-backup
, in case you need them.
Autocomplete Recent Endpoints
![Screenshot 2023-06-25 at 14 35 34](https://private-user-images.githubusercontent.com/8637550/248559372-5f1239c6-f8fe-474b-830c-50ad13ca2dad.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkzNjE4MzIsIm5iZiI6MTczOTM2MTUzMiwicGF0aCI6Ii84NjM3NTUwLzI0ODU1OTM3Mi01ZjEyMzljNi1mOGZlLTQ3NGItODMwYy01MGFkMTNjYTJkYWQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTJUMTE1ODUyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTA1MTg2NGRmYzAyYThkOWNhNTViYTRjZjdlMDY5YjhhOTlhZDg4ZGU5OTQzOTk0ZWYxODAzNWQ0ODFhMjNhOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.yZFX634cFQdyvxWM4UXumzY3fsQleyxrXuvLKh9PHP0)