Features

All codeless features →

All advanced features →

Codeless Browser Test Automation

For those new to testing

Email testing

API & third-party integrations

Web test recorder

Codeless test editor

Visual testing

Accessibility testing

Browsers, screens & geolocations

Advanced scheduling

Advanced End-to-End Testing Capabilities

For experienced testers

ALSO INCLUDES

Solutions

QA testers

Build, run, and manage test suites at scale

Engineers

CI/CD hooks, API access, JS execution

Product managers

Visibility into quality without the code

See it in action

Request a personalized demo →

Pricing
Resources

Getting started

Everything you need to run your first test

Documentation

Features, API, integrations and settings

Support

Our team is here to help

Success stories

Real reviews from Ghost Inspector customers

Ghostwriter blog

QA and testing, written by the Ghost Inspector team

Latest articles on browser automation, CI/CD, and more

About Us Blog
Start free trial

New! Duplicate Tests and Suites with the Ghost Inspector API

Ghost Inspector is an automated web testing tool that helps QA testers and engineers to easily build, edit, and run low-code/no-code web tests. Start a free trial.

New features! Duplicate tests and suites with the Ghost Inspector API

We are pleased to announce today some new features available immediately via the Ghost Inspector API! You now have the ability to duplicate a test or duplicate a suite simply by calling an endpoint on our API.

Here are some examples:

Duplicating a test

Here is an example of an API call using curl to duplicate a test:

$ curl -s "https://api.ghostinspector.com/v1/tests/{{testId}}/duplicate/?apiKey={{apiKey}}"

The resulting test will be duplicated into the same suite and organization as the original. The API response will contain the duplicated test which will be an exact copy of the original except for the name and _id:

{
  "code": "SUCCESS",
  "data": {
    "user": "59fcf3db937eed176d5d28dc",
    "startUrl": "https://www.ghostinspector.com/docs/",
    "suite": {
      "_id": "59fcf3e9937eed176d5d28e0",
      "name": "API Samples"
    },
    "organization": {
      "_id": "59fcf3dc937eed176d5d28dd",
      "name": "Sample Organization"
    },
    "__v": 0,
    "_id": "59fcf45e13df81176e885d29",
    "dateCreated": "2017-11-03T22:57:34.733Z",
    "dateUpdated": "2017-11-03T22:57:34.733Z",
    "dateExecutionFinished": "1970-01-01T00:00:00.000Z",
    "dateExecutionStarted": "1970-01-01T00:00:00.000Z",
    "dateExecutionTriggered": "1970-01-01T00:00:00.000Z",
    "screenshotComparePassing": null,
    "screenshotCompareThreshold": 0.1,
    "screenshotCompareEnabled": null,
    "passing": null,
    "filters": [],
    "steps": [
      {
        "command": "assign",
        "target": ".header-search-input",
        "value": "frames",
        "variableName": "",
        "optional": false,
        "private": false,
        "sequence": 0
      },
      {
        "command": "click",
        "target": ".header-search-button",
        "value": "",
        "variableName": "",
        "optional": false,
        "private": false,
        "sequence": 1
      },
      {
        "command": "assertTextPresent",
        "target": ".content .search-input",
        "value": "frames",
        "variableName": "",
        "optional": false,
        "private": false,
        "sequence": 2
      }
    ],
    "failOnJavaScriptError": null,
    "autoRetry": null,
    "finalDelay": 5000,
    "maxAjaxDelay": 10000,
    "maxWaitDelay": 15000,
    "globalStepDelay": 250,
    "httpHeaders": [],
    "testFrequencyAdvanced": [],
    "testFrequency": 0,
    "name": "Test #2 (Copy)"
  }
}

Duplicating a suite

Here is an example of an API call using curl to duplicate a suite:

$ curl -s "https://api.ghostinspector.com/v1/suites/{{suiteId}}/duplicate/?apiKey={{apiKey}}"

The resulting suite will also be duplicated into the same organization as the original. The API response will contain the duplicated suite which will also be an exact copy of the original except for the name and _id:

{
    "code": "SUCCESS",
    "data": {
        "_id": "5a00bab816ff5929f6219918",
        "organization": {
        "_id": "52df0d27fbaced54db000006",
        "name": "Organization Name"
        },
        "dateCreated": "2017-11-04T10:29:05.645Z",
        "variables": [
        {
            "name": "firstName",
            "value": "justin",
            "private": false
        },
        "screenshotCompareThreshold": 0.1,
        "screenshotCompareEnabled": true,
        "viewportSize": {
        "height": 768,
        "width": 1024
        },
        "failOnJavaScriptError": false,
        "autoRetry": true,
        "browser": "slimerjs",
        "region": "us-east-1",
        "httpHeaders": [],
        "maxConcurrentTests": 0,
        "testFrequencyAdvanced": [],
        "testFrequency": 0,
        "testCount": 2,
        "name": "Sample Suite (Copy)"
    }
}

And that’s it!

Feel free to check out the API documentation to see more features of the Ghost Inspector API. If you run into any problems, feel free to drop us a line at Support or click the little chat bubble down below any time and we’ll be happy to help you out.

Happy Ghosting!