# AzureTestDrive **Repository Path**: mirrors_Azure/AzureTestDrive ## Basic Information - **Project Name**: AzureTestDrive - **Description**: Build a Test Drive solution to allow customers to try before they buy your product. This repository contains a development helper tool to help build, test, and debug your test drive. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2026-02-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Azure Test Drive Azure Test Drive enables customers the option to "try before you buy" products found on Azure Marketplace. We have a full [Wiki](https://github.com/Azure/AzureTestDrive/wiki/home) to walkthrough what a Test Drive is and how to build one! Below is our ReadMe for a prototype tool to help to develop, test, and debug your own Azure Test Drive ARM template solution. # Azure Test Drive Dev Kit * [Installation](#installation) * [Quick Guide](#quick-guide) * [Validate](#validate) * [Start Session](#start-session) * [Get Deployment Status](#get-deployment-status) * [Get Deployment Operations](#get-deployment-operations) * [Stop Session](#stop-session) * [Documentation](#documentation) ## Installation This project uses **Node.js** and runs on Windows, Mac OS and Linux machines. Please follow the following steps to install the project: 1. Make sure you have **Node.js v6.9.1** or higher. Follow instructions on [this page](https://nodejs.org/en/download/) to install or update **Node.js**. 2. Clone the repository (or download the latest version): ``` git clone https://github.com/Azure/AzureTestDrive.git ``` 3. Install all dependencies: ``` npm install ``` Now you can run Dev Kit tools using Node.js: ``` node test-drive.js [COMMAND] [PARAMETERS] ``` ## Quick Guide ### Validate The **validate** command performs the basic validation on your template, and displays the sample set of parameters which Azure Test Drive will use to instantiate a template. ``` node test-drive.js validate samples/contoso_simple_package/main-template.json ``` Output: ``` Template is valid Parameters created { "baseUri": { "value": "https://aztestdrive.blob.core.windows.net/your-deployment-package/" }, "sessionId": { "value": "862b2264-fc3a-4ae1-a9e3-1e9cc2e2f95f" }, "username": { "value": "admin41081" }, "password": { "value": "UGo5igjz8j" } } ``` ### Start Session The **start session** command instantiates your template using the specified Azure subscription. ``` node test-drive.js start settings.json [] ``` Where: * **settings.json** is a file containing information which is required to instantiate the template. * **session-name** is an optional session name. You can run multiple sessions in parallel by specifying different session names. Output: ``` Session Details created { "publisherId": ... } Downloading template: https://... Template downloaded Parameters created { "baseUri": ... } Session Details saved Signing in... Signed in Creating Resource Group: CloudTry_585f9917ac694989bede259efe941e49 Resource Group created { "id": ... } Creating Deployment... Deployment created { "id": ... } ``` Here is the sample **settings.json** (subscription id, tenant id, app id and app key parameters are not real): ``` { "$schema": "settings-schema.json", "publisherId": "contoso", "labId": "simple", "subscriptionInfo": { "subscriptionId": "12c51fe2-f7ee-46c6-8fc4-cc45069e8b97", "tenantId": "243d82c9-14d1-439a-91f8-546ec8708148", "appId": "313c023c-98bb-4492-ad10-49db39af81e1", "appKey": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" }, "location": "westus", "deploymentTemplateUri": "https://aztestdrive.blob.core.windows.net/artifacts/contoso/simple/main-template.json", "baseUri": "https://aztestdrive.blob.core.windows.net/artifacts/contoso/simple/" } ``` | Name | Data Type | Comments | :-------------------- | :-------- | :------- | publisherId | String | Publisher identifier (lower-case letters, digits and dash character only). | labId | String | Lab identifier (lower-case letters, digits and dash character only). | subscriptionInfo | Object | Target subscription details. | subscriptionId | GUID | Subscription Id. | tenantId | GUID | Tenant Id. | appId | GUID | AD Application Id (see details below). | appKey | String | AD Application password (see details below). | location | String | Target deployment location. | deploymentTemplateUri | Uri | Uri of your deployment template somewhere on the PUBLIC blob storage | baseUri | Uri | Base Uri of your deployment template Please note, this project, as well as Azure Test Drive, use service principal to access your subscription. ### Get Deployment Status Template deployment is a long-running operation. The **get deployment status** command displays the status of your deployment. ``` node test-drive.js status [] ``` Output: ``` Session Details loaded { "publisherId": ... } Signing in... Signed in Retrieving Deployment... Deployment retrieved { "id": ... } Deployment Status: Success ``` ### Get Deployment Operations The **get deployment operations** command displays information about every deployment operation from your template: ``` node test-drive.js operations [] ``` Output: ``` Session Details loaded { "publisherId": ... } Signing in... Signed in Retrieving Deployment Operations... Deployment Operations retrieved [ { "id": ... }, ... ] ``` This information is also available through the [Azure Portal](https://portal.azure.com/). ### Stop Session The **stop session** command performs a cleanup. Basically, it just deletes the resource group which was used for deployment: ``` node test-drive.js stop [] ``` Output: ``` Session Details loaded { "publisherId": ... } Signing in... Signed in Deleting Resource Group: CloudTry_585f9917ac694989bede259efe941e49 Resource Group scheduled for deletion ``` ## Documentation * See [Azure Test Drive WIKI](https://github.com/Azure/AzureTestDrive/wiki) for more information.