Skip to content

Data Plane - Microsoft.AzurePlaywrightService integration into Microsoft.LoadTestService #34012

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 55 commits into from
Jun 26, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
83ee5eb
First commit of adding existing Playwright Dataplane APIs in Microsof…
mjmadhu Apr 17, 2025
45940d6
Added APIs for Playwright in Microsoft.Loadtestservice
mjmadhu Apr 17, 2025
52a6fca
Merge branch 'main' into malt-mpt-integration-dataplane
mjmadhu Apr 17, 2025
5002beb
Added readme changes for fixing CI failures
mjmadhu Apr 17, 2025
aea1376
Resolved examples error
mjmadhu Apr 17, 2025
d658a44
Removed playwright folder for proper naming
mjmadhu Apr 17, 2025
6520954
Renamed playwright service folder
mjmadhu Apr 17, 2025
d767dab
Removed shared folder as suggested
mjmadhu Apr 18, 2025
fc417e3
Merge branch 'main' into malt-mpt-integration-dataplane
mjmadhu Apr 18, 2025
503b488
Merge branch 'main' into malt-mpt-integration-dataplane
mjmadhu Apr 22, 2025
9f3ffce
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Apr 28, 2025
a05d678
Readme files modifications
mjmadhu Apr 28, 2025
069c158
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Apr 28, 2025
bd419d9
Added missing version from readme
mjmadhu Apr 28, 2025
acd1a9b
Renamed folder as suggested
mjmadhu Apr 29, 2025
024bddb
Merge branch 'main' into malt-mpt-integration-dataplane
mjmadhu Apr 29, 2025
78183f9
Removed code to swagger sections from readme
mjmadhu Apr 29, 2025
6d9b907
Merge branch 'malt-mpt-integration-dataplane' of https://github.com/A…
mjmadhu Apr 29, 2025
892d369
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Apr 29, 2025
e37ad94
Generate-metadata set to true
mjmadhu Apr 29, 2025
aec41ab
Removed GET workspaces API and added patterns
mjmadhu Apr 29, 2025
d074f99
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu May 19, 2025
2b16431
Merge branch 'main' into malt-mpt-integration-dataplane
mikeharder May 19, 2025
689bc07
TSP Formatting
mjmadhu May 20, 2025
5378c05
Merge branch 'malt-mpt-integration-dataplane' of https://github.com/A…
mjmadhu May 20, 2025
e567cf1
Added suppressions.yaml
mjmadhu May 20, 2025
a6de0e0
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu May 20, 2025
2b5ba50
Removing deprecated preview versions
mjmadhu May 20, 2025
2936195
Formatting files
mjmadhu May 20, 2025
5fb0ace
Guid maxlength correction
mjmadhu May 20, 2025
d472e2f
Maxlength correction
mjmadhu May 20, 2025
90490b2
Re-checking swagger lint diff errors
mjmadhu May 20, 2025
70e4858
Removed all suppressions
mjmadhu May 20, 2025
d1b7473
Resolved example issue
mjmadhu May 20, 2025
27877f0
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu May 27, 2025
313c295
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Jun 6, 2025
3bf37b0
Added runid as query param in get brwosers api
mjmadhu Jun 6, 2025
0df56c1
Added test runs APIs
mjmadhu Jun 6, 2025
25fdede
Added certain validations
mjmadhu Jun 6, 2025
dd4c5da
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Jun 11, 2025
2bd4a64
Updated example
mjmadhu Jun 11, 2025
4a502de
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Jun 13, 2025
f1a0f3e
Updated tspconfig.yaml
mjmadhu Jun 13, 2025
ed8f279
TSP Validation fix
mjmadhu Jun 13, 2025
23ca2ba
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Jun 17, 2025
b145fc1
Review comments on Test run model
mjmadhu Jun 17, 2025
916d9ff
Review comments on Test run model
mjmadhu Jun 17, 2025
2567d9a
Merge branch 'main' of https://github.com/Azure/azure-rest-api-specs …
mjmadhu Jun 18, 2025
0b2c892
Fixed Typo in property name for model validation
mjmadhu Jun 18, 2025
b45bb0a
Merge branch 'main' into malt-mpt-integration-dataplane
mjmadhu Jun 23, 2025
6b7669d
TSP Validation fix
mjmadhu Jun 23, 2025
35fb2d4
TSP Validation fix
mjmadhu Jun 23, 2025
4303998
TSP Validation fix
mjmadhu Jun 23, 2025
3e64c22
TSP Validation fix
mjmadhu Jun 23, 2025
d00ede8
TSP Validation fix
mjmadhu Jun 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 5 additions & 2 deletions specification/loadtestservice/LoadTestService/tspconfig.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
parameters:
service-dir:
default: "sdk/loadtesting"
"service-name":
default: "loadtesting"
emit:
- "@azure-tools/typespec-autorest"
# Uncomment this line and add "@azure-tools/typespec-python" to your package.json to generate Python code
Expand Down Expand Up @@ -37,7 +39,8 @@ options:
package-dir: "load-testing-rest"
title: Azure Load Testing
description: Azure Load Testing Client
generate-metadata: false
generate-metadata: true
generate-test: false
package-details:
name: "@azure-rest/load-testing"
description: "This package contains Microsoft Azure LoadTestingClient client library."
Expand All @@ -57,5 +60,5 @@ options:
partial-update: true
generate-tests: false
generate-samples: false
service-name: Load Testing
service-name: Load Test
flavor: azure
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"title": "AccessTokens_CreateOrReplace",
"operationId": "AccessTokens_CreateOrReplace",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"accessTokenId": "00000000-0000-0000-0000-000000000000",
"resource": {
"name": "sampleAccessToken",
"expiryAt": "2022-09-28T12:32:33Z"
}
},
"responses": {
"200": {
"body": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "sampleAccessToken",
"jwtToken": "sampleJwtToken",
"createdAt": "2021-09-28T12:32:33Z",
"expiryAt": "2022-09-28T12:32:33Z",
"state": "Active"
}
},
"201": {
"body": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "sampleAccessToken",
"jwtToken": "sampleJwtToken",
"createdAt": "2021-09-28T12:32:33Z",
"expiryAt": "2022-09-28T12:32:33Z",
"state": "Active"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"title": "AccessTokens_Delete",
"operationId": "AccessTokens_Delete",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"accessTokenId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"204": {}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"title": "AccessTokens_Get",
"operationId": "AccessTokens_Get",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"accessTokenId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "sampleAccessToken",
"createdAt": "2021-09-28T12:32:33Z",
"expiryAt": "2022-09-28T12:32:33Z",
"state": "Active"
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"title": "AccessTokens_List",
"operationId": "AccessTokens_List",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "00000000-0000-0000-0000-000000000000",
"name": "sampleAccessToken",
"createdAt": "2021-09-28T12:32:33Z",
"expiryAt": "2022-09-28T12:32:33Z",
"state": "Active"
}
],
"nextLink": null
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
{
"title": "TestRuns_CreateOrUpdate",
"operationId": "TestRuns_CreateOrUpdate",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"runId": "00000000-0000-0000-0000-000000000000",
"resource": {
"displayName": "sampleTestRun"
}
},
"responses": {
"200": {
"body": {
"id": "00000000-0000-0000-0000-000000000000",
"displayName": "sampleTestRun",
"creatorId": "string",
"creatorName": "string",
"config": {
"framework": {
"name": "string",
"version": "string",
"runnerName": "string"
},
"sdkLanguage": "JAVASCRIPT",
"maxWorkers": 10
},
"ciConfig": {
"providerName": "string",
"branch": "string",
"author": "string",
"commitId": "string",
"revisionUrl": "string"
},
"summary": {
"status": "RUNNING",
"billableTime": 0,
"numBrowserSessions": 1,
"maxConcurrentBrowserSessions": 10,
"startTime": "2025-06-06T11:43:28.954Z",
"endTime": "2025-06-06T11:43:28.954Z",
"duration": 0,
"errorMessages": [
"string"
]
}
}
},
"201": {
"body": {
"id": "00000000-0000-0000-0000-000000000000",
"displayName": "sampleTestRun",
"creatorId": "string",
"creatorName": "string",
"config": {
"framework": {
"name": "string",
"version": "string",
"runnerName": "string"
},
"sdkLanguage": "JAVASCRIPT",
"maxWorkers": 10
},
"ciConfig": {
"providerName": "string",
"branch": "string",
"author": "string",
"commitId": "string",
"revisionUrl": "string"
},
"summary": {
"status": "RUNNING",
"billableTime": 0,
"numBrowserSessions": 1,
"maxConcurrentBrowserSessions": 10,
"startTime": "2025-06-06T11:43:28.954Z",
"endTime": "2025-06-06T11:43:28.954Z",
"duration": 0,
"errorMessages": [
"string"
]
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"title": "TestRuns_List",
"operationId": "TestRuns_List",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"value": [
{
"id": "00000000-0000-0000-0000-000000000000",
"displayName": "string",
"creatorId": "string",
"creatorName": "string",
"config": {
"framework": {
"name": "string",
"version": "string",
"runnerName": "string"
},
"sdkLanguage": "JAVASCRIPT",
"maxWorkers": 10
},
"ciConfig": {
"providerName": "string",
"branch": "string",
"author": "string",
"commitId": "string",
"revisionUrl": "string"
},
"summary": {
"status": "RUNNING",
"billableTime": 0,
"numBrowserSessions": 1,
"maxConcurrentBrowserSessions": 10,
"startTime": "2025-06-06T11:43:28.954Z",
"endTime": "2025-06-06T11:43:28.954Z",
"duration": 0,
"errorMessages": [
"string"
]
}
}
],
"nextLink": null
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"title": "Workspaces_GetBrowsers",
"operationId": "Workspaces_GetBrowsers",
"parameters": {
"api-version": "2025-07-01-preview",
"workspaceId": "00000000-0000-0000-0000-000000000000",
"os": "Linux"
},
"responses": {
"302": {
"headers": {
"location": "wss://{region}.api.playwright.microsoft.com/redirectURL?api-version=2025-07-01-preview&os=Linux"
}
}
}
}
52 changes: 52 additions & 0 deletions specification/loadtestservice/Playwright/main.tsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// cheat-sheet - https://microsoft.github.io/typespec/standard-library/http/cheat-sheet
// tsp compile main.tsp --emit @azure-tools/typespec-autorest

import "@typespec/http";
import "@typespec/versioning";
import "./routes.tsp";

using TypeSpec.Http;
using TypeSpec.Versioning;

@server(
"{endpoint}",
"Playwright Service API Endpoint",
{
@doc("""
Supported Playwright Service API Endpoints (protocol and hostname) formatted as https://{region}.api.playwright.microsoft.com.
You can also find this value in the Azure Playwright Workspace property, such as `dataplaneUri`.
""")
endpoint: string,
}
)
@useAuth(
[
OAuth2Auth<[
{
type: OAuth2FlowType.implicit,
description: "We can use OAuth2 Implicit flow to get the auth token for calling the APIs.",
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize",
scopes: ["https://playwright.microsoft.com/.default"],
}
]>,
OAuth2Auth<[
{
type: OAuth2FlowType.authorizationCode,
description: "We can use OAuth2 Authorization Code flow to get the auth token for calling the APIs.",
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize",
tokenUrl: "https://login.microsoftonline.com/common/v2.0/oauth2/token",
scopes: ["https://playwright.microsoft.com/.default"],
}
]>
]
)
@service(#{ title: "Playwright Service API" })
@versioned(Playwright.Versions)
namespace Playwright;

@doc("Playwright Service API Versions.")
enum Versions {
@doc("Version 2025-07-01-preview")
@useDependency(Azure.Core.Versions.v1_0_Preview_2)
v2025_07_01_preview: "2025-07-01-preview",
}
Loading
Loading