Public/New-CloudLoadTestRun.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Function New-CloudLoadTestRun{
[cmdletbinding()]
Param(
    
    [Parameter(Mandatory=$True)]
    [hashtable]
    $Headers,

    [Parameter(Mandatory=$True)]
    [ValidateScript({
      # Check if valid Uri
        $IsValidUri = [system.uri]::IsWellFormedUriString($_,[System.UriKind]::Absolute)
        if ($IsVAlidUri -eq $True){
            return $True
        }
        else{
            throw "Parameter value is not valid '$_'"
        }
    })] 
    [string]
    $BaseUri,

    [Parameter(Mandatory=$True)]
    [Object[]]
    $TestDrop,

    [Parameter(Mandatory=$True)]
    [string]
    $LoadTestFileName,

    [Parameter(Mandatory=$True)]
    [string]
    $LoadTestDescription

)

    try{

        $Uri = "$BaseUri/{0}" -f "_apis/clt/testruns"
        $Body = @{
            Description = $LoadTestDescription
            Name = $LoadTestFileName
            State = 0
            SubState = 0
            TestDrop = @{
                Id = $TestDrop.Id
            }
            TestSettings = @{
                CleanupCommand = $null
                SetupCommand = $null

            }
        } | ConvertTo-Json
        $TestRunResponse = Invoke-RestMethod -Uri $Uri -Method Post -Headers $Headers -Body $Body
        Write-Verbose ("Test Run Id = '{0}'" -f $TestRunResponse.Id)

        Return $TestRunResponse

    }
    catch{
        throw $_
    }

}