Cases as an XLSX — the tree, nodes or cases
const url = 'https://beta-api.plune.ai/v1/test-cases/export';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://beta-api.plune.ai/v1/test-cases/export \ --header 'Authorization: Bearer <token>'The caller’s cases as one Excel workbook (#1235), in Testomat’s columns — ID, Title, Status, Folder, Priority, Description, Examples — which is what POST /v1/test-cases/import reads back, so the file imports to the same cases. ID is the case’s Testomat key when it came from Testomat, else empty; Title keeps its tags; Status is the type; Folder is /folder/suite (folder > a/b when a name has a slash); Description holds the texts in the Markdown of GET /v1/test-cases/markdown (## Preconditions, ## Steps, ## Expected result). Cases in no suite first, then each suite in tree order with its cases by position; the bin is not in it. With no parameter, every case; suiteId and caseId, each repeatable, keep the subtrees of those nodes and those cases — each case once. Automated and eval cases are written too; the import brings back manual ones.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”A folder or suite — its subtree is in the file. Repeat for more than one.
A case to put in the file. Repeat for more than one.
Responses
Section titled “ Responses ”The workbook, one sheet Cases. X-Plune-Cases counts the cases in it; Content-Disposition names it cases.xlsx.
Headers
Section titled “Headers ”Example
attachment; filename="cases.xlsx"No / invalid token or session
A node or a case not in the caller’s project
object
Example generated
{ "error": "example"}