Skip to content

Commit 11c4aeb

Browse files
QualityOwlQualityOwl
andauthored
Add k6 Performance Test Project & CI Pipeline (#3)
* Reorganize repository folder structure. No code refactor. * Rename functional tests pipeline file. * Add k6 performance test project. * Add performance test execution pipeline. * Update yaml permission values. * Fix YAML pipeline issues. * Fix booking performance tests. * Fix appsettings.json reference. --------- Co-authored-by: QualityOwl <josh@qualityowl.llc>
1 parent 1721ed7 commit 11c4aeb

26 files changed

Lines changed: 291 additions & 24 deletions

.github/workflows/run-tests.yml renamed to .github/workflows/run-functional-tests.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Run API Tests
1+
name: Run Functional Tests
22

33
on:
44
push:
@@ -27,13 +27,13 @@ jobs:
2727
dotnet-version: '10.x'
2828

2929
- name: Restore NuGet
30-
run: dotnet restore Restful.Booker.Api/Restful.Booker.Api.slnx
30+
run: dotnet restore Restful.Booker.Api.slnx
3131

3232
- name: Build
33-
run: dotnet build Restful.Booker.Api/Restful.Booker.Api.slnx --no-restore -p:WarningLevel=0
33+
run: dotnet build Restful.Booker.Api.slnx --no-restore -p:WarningLevel=0
3434

3535
- name: Run tests
36-
run: dotnet test Restful.Booker.Api/Restful.Booker.Api.slnx --no-build --verbosity normal --logger "trx;LogFileName=test-results.trx" -p:WarningLevel=0
36+
run: dotnet test Restful.Booker.Api.slnx --no-build --verbosity normal --logger "trx;LogFileName=test-results.trx" -p:WarningLevel=0
3737
env:
3838
ApiSettings__Authentication__Username: ${{ secrets.AUTH_USERNAME }}
3939
ApiSettings__Authentication__Password: ${{ secrets.AUTH_PASSWORD }}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Run Performance Tests
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
actions: read
13+
checks: write
14+
15+
jobs:
16+
performance-test:
17+
name: Run k6 Performance Tests
18+
runs-on: ubuntu-latest
19+
20+
steps:
21+
- name: Checkout code
22+
uses: actions/checkout@v4
23+
24+
- name: Setup k6
25+
uses: grafana/setup-k6-action@v1
26+
27+
- name: Run ping performance tests
28+
uses: grafana/run-k6-action@v1
29+
env:
30+
BASE_URL: ${{ secrets.BASE_URL }}
31+
API_USERNAME: ${{ secrets.API_USERNAME }}
32+
API_PASSWORD: ${{ secrets.API_PASSWORD }}
33+
with:
34+
path: ./Restful.Booker.Api.PerformanceTests/tests/ping-performance-tests.js
35+
36+
- name: Run auth performance tests
37+
uses: grafana/run-k6-action@v1
38+
env:
39+
BASE_URL: ${{ secrets.BASE_URL }}
40+
API_USERNAME: ${{ secrets.API_USERNAME }}
41+
API_PASSWORD: ${{ secrets.API_PASSWORD }}
42+
with:
43+
path: ./Restful.Booker.Api.PerformanceTests/tests/auth-performance-tests.js
44+
45+
- name: Run booking performance tests
46+
uses: grafana/run-k6-action@v1
47+
env:
48+
BASE_URL: ${{ secrets.BASE_URL }}
49+
API_USERNAME: ${{ secrets.API_USERNAME }}
50+
API_PASSWORD: ${{ secrets.API_PASSWORD }}
51+
with:
52+
path: ./Restful.Booker.Api.PerformanceTests/tests/booking-performance-tests.js

Restful.Booker.Api/Restful.Booker.Api.Tests/config/ApiSettings.cs renamed to Restful.Booker.Api.FunctionalTests/Config/ApiSettings.cs

File renamed without changes.

Restful.Booker.Api/Restful.Booker.Api.Tests/config/TestConfiguration.cs renamed to Restful.Booker.Api.FunctionalTests/Config/TestConfiguration.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static IConfiguration Configuration
1414
{
1515
_configuration = new ConfigurationBuilder()
1616
.SetBasePath(Directory.GetCurrentDirectory())
17-
.AddJsonFile("config/appsettings.json", optional: false, reloadOnChange: true)
17+
.AddJsonFile("Config/appsettings.json", optional: false, reloadOnChange: true)
1818
.AddUserSecrets<ApiSettings>()
1919
.AddEnvironmentVariables()
2020
.Build();
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"ApiSettings": {
3+
"BaseUrl": "https://restful-booker.herokuapp.com",
4+
"Authentication": {
5+
"Username": "",
6+
"Password": ""
7+
},
8+
"Timeout": 30
9+
}
10+
}

Restful.Booker.Api/Restful.Booker.Api.Tests/Controllers/AuthController_Tests.cs renamed to Restful.Booker.Api.FunctionalTests/Controllers/AuthController_FunctionalTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66

77
namespace Restful.Booker.Api.Tests;
88

9-
public class AuthController_Tests : IClassFixture<TestFixture>
9+
public class AuthController_FunctionalTests : IClassFixture<TestFixture>
1010
{
1111
private readonly TestFixture _fixture;
1212

13-
public AuthController_Tests(TestFixture fixture)
13+
public AuthController_FunctionalTests(TestFixture fixture)
1414
{
1515
_fixture = fixture;
1616
}

Restful.Booker.Api/Restful.Booker.Api.Tests/Controllers/BookingController_Tests.cs renamed to Restful.Booker.Api.FunctionalTests/Controllers/BookingController_FunctionalTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
namespace Restful.Booker.Api.Tests;
99

10-
public class BookingController_Tests : IClassFixture<TestFixture>
10+
public class BookingController_FunctionalTests : IClassFixture<TestFixture>
1111
{
1212
private readonly TestFixture _fixture;
1313

14-
public BookingController_Tests(TestFixture fixture)
14+
public BookingController_FunctionalTests(TestFixture fixture)
1515
{
1616
_fixture = fixture;
1717
}

Restful.Booker.Api/Restful.Booker.Api.Tests/Controllers/PingController_Tests.cs renamed to Restful.Booker.Api.FunctionalTests/Controllers/PingController_FunctionalTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
namespace Restful.Booker.Api.Tests;
66

7-
public class PingController_Tests : IClassFixture<TestFixture>
7+
public class PingController_FunctionalTests : IClassFixture<TestFixture>
88
{
99
private readonly TestFixture _fixture;
1010

11-
public PingController_Tests(TestFixture fixture)
11+
public PingController_FunctionalTests(TestFixture fixture)
1212
{
1313
_fixture = fixture;
1414
}

Restful.Booker.Api/Restful.Booker.Api.Tests/fixtures/TestFixture.cs renamed to Restful.Booker.Api.FunctionalTests/Fixtures/TestFixture.cs

File renamed without changes.

Restful.Booker.Api/Restful.Booker.Api.Tests/models/AuthResponseDto.cs renamed to Restful.Booker.Api.FunctionalTests/Models/AuthResponseDto.cs

File renamed without changes.

0 commit comments

Comments
 (0)