Skip to content

Commit 4cb0ba9

Browse files
Merge 92753ee into c96c1d0
2 parents c96c1d0 + 92753ee commit 4cb0ba9

File tree

33 files changed

+3543
-1376
lines changed

33 files changed

+3543
-1376
lines changed

.github/workflows/Android_test.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -267,12 +267,6 @@ jobs:
267267
executionTypesJson=$(curl -s "http://localhost:8080/metrics/$metricId/execution-types")
268268
executionTypeName=$(echo "$executionTypesJson" | jq -r --arg id "$executionTypeId" '.[] | select(.executionTypeId == ($id|tonumber)) | .executionTypeName // "N/A"')
269269
270-
echo "- **App Name:** $appName" >> results/summary.md
271-
echo "- **App Version:** $appVersion" >> results/summary.md
272-
echo "- **App Package:** $appPackage" >> results/summary.md
273-
echo "- **Main Activity:** $mainActivity" >> results/summary.md
274-
echo "- **Execution Type:** $executionTypeName" >> results/summary.md
275-
276270
echo "#### Test Execution: $testName" >> results/summary.md
277271
echo "- **Metric:** $metricName" >> results/summary.md
278272
echo "- **Device:** $deviceName" >> results/summary.md

.github/workflows/diagrams.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Java CI
2+
3+
permissions:
4+
contents: write
5+
6+
on:
7+
push:
8+
branches: [main]
9+
pull_request:
10+
workflow_dispatch:
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Get the code from the repository
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Create error logs directory
23+
run: mkdir -p error-logs
24+
25+
- name: Set up JDK 21
26+
uses: actions/setup-java@v4
27+
with:
28+
java-version: '21'
29+
distribution: 'temurin'
30+
31+
- name: Set execute permissions on build scripts
32+
run: chmod +x tools/generate/generate-plantuml-diagrams.sh || true
33+
34+
- name: Debug script presence
35+
run: |
36+
ls -l tools/generate/
37+
file tools/generate/generate-plantuml-diagrams.sh
38+
head -5 tools/generate/generate-plantuml-diagrams.sh
39+
40+
- name: Install Graphviz
41+
run: sudo apt-get install -y graphviz
42+
43+
- name: Set up Git user
44+
run: |
45+
git config --global user.name "github-actions[bot]"
46+
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
47+
48+
- name: Update .svg
49+
run: ./tools/generate/generate-plantuml-diagrams.sh
50+
51+
- name: Add SVG files
52+
run: git add *.svg
53+
54+
- name: Commit and push if there are changes
55+
run: |
56+
if ! git diff --cached --quiet; then
57+
git commit -m "Update diagrams"
58+
git push origin HEAD:main
59+
else
60+
echo "No changes to SVG files"
61+
fi

.github/workflows/iOS_tests.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,6 @@ jobs:
225225
executionTypesJson=$(curl -s "http://localhost:8080/metrics/$metricId/execution-types")
226226
executionTypeName=$(echo "$executionTypesJson" | jq -r --arg id "$executionTypeId" '.[] | select(.executionTypeId == ($id|tonumber)) | .executionTypeName // "N/A"')
227227
228-
echo "- **App Name:** $appName" >> results/summary.md
229-
echo "- **App Version:** $appVersion" >> results/summary.md
230-
echo "- **App Package:** $appPackage" >> results/summary.md
231-
echo "- **Main Activity:** $mainActivity" >> results/summary.md
232-
echo "- **Execution Type:** $executionTypeName" >> results/summary.md
233-
234228
echo "#### Test Execution: $testName" >> results/summary.md
235229
echo "- **Metric:** $metricName" >> results/summary.md
236230
echo "- **Device:** $deviceName" >> results/summary.md

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ build/
8585
# Include config.json
8686
!config.json
8787
!data.json
88+
!plantuml-1.2023.1.jar
8889

8990
# Ignore ui_dumps folder
9091
ui_dumps/

README.md

Lines changed: 106 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,107 @@
1-
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=3A4A51&reversal=true&textBg=false&section=header"/>
2-
3-
# Melmac Performance Testing
4-
5-
## 1. Description of the Project
6-
7-
As part of [Mindera's](https://mindera.com) internship program, we are developing a framework for testing the performance of mobile applications. The goal is to create a robust and industry-aligned solution that will help evaluate and optimize the performance of mobile apps. Over the course of this internship, we will focus on identifying key performance metrics, developing a testing framework, and analyzing the results to propose performance enhancements. Our work will contribute to Mindera’s ongoing efforts to ensure that deliverables meet high industry standards and will provide valuable insights for future performance testing initiatives. This repository serves as the central hub for our internship project, containing initial source code, project management tools, and documentation to guide us through the process of building and refining the performance testing framework.
8-
9-
## 2. Planning and Technical Documentation
10-
11-
[_`Planning and Technical Documentation`_](docs/README.md)
12-
13-
## 3. How to Build
14-
15-
🚧 WORK IN PROGRESS 🚧
16-
17-
## 4. How to Execute Tests
18-
19-
🚧 WORK IN PROGRESS 🚧
20-
21-
## 5. How to Run
22-
23-
🚧 WORK IN PROGRESS 🚧
24-
1+
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=3A4A51&reversal=true&textBg=false&section=header"/>
2+
3+
# Melmac Performance Testing
4+
5+
## 1. Description of the Project
6+
7+
As part of [Mindera's](https://mindera.com) internship program, we are developing a framework for testing the performance of mobile applications. The goal is to create a robust and industry-aligned solution that will help evaluate and optimize the performance of mobile apps. Over the course of this internship, we will focus on identifying key performance metrics, developing a testing framework, and analyzing the results to propose performance enhancements. Our work will contribute to Mindera’s ongoing efforts to ensure that deliverables meet high industry standards and will provide valuable insights for future performance testing initiatives. This repository serves as the central hub for our internship project, containing initial source code, project management tools, and documentation to guide us through the process of building and refining the performance testing framework.
8+
9+
## 2. Planning and Technical Documentation
10+
11+
[_`Planning and Technical Documentation`_](docs/readme.md)
12+
13+
## 3. Necessary Tools
14+
15+
To set up and work on this project, ensure you have the following tools and dependencies installed:
16+
17+
### 3.1 Java Development Kit (JDK)
18+
- **Requirement:** JDK 17 or higher (the backend is developed in Kotlin).
19+
- **Download:** [Adoptium](https://adoptium.net/)
20+
21+
### 3.2 Gradle
22+
- **Purpose:** Build automation for compiling, running, and testing the project.
23+
- **Installation:**
24+
- Install manually ([Guide](https://gradle.org/install/)), or use the project’s Gradle wrapper (`./gradlew`).
25+
26+
### 3.3 Android SDK & ADB (Android Debug Bridge)
27+
- **Purpose:** Required for running performance tests on Android devices or emulators.
28+
- **Notes:**
29+
- Ensure `adb` is available in your system `PATH`.
30+
- Install via [Android Studio](https://developer.android.com/studio)
31+
- Install platform tools, system images, and emulator support.
32+
33+
### 3.4 Xcode & Command Line Tools (macOS only)
34+
- **Purpose:** Required for iOS performance testing.
35+
- **Notes:**
36+
- Uses `xcodebuild`, `simctl`, and other Xcode utilities.
37+
- Install Command Line Tools: `xcode-select --install`
38+
- Download Xcode from the [Mac App Store](https://apps.apple.com/us/app/xcode/id497799835?mt=12)
39+
- XCUI tests are written in Swift and executed via `xcodebuild test-without-building`.
40+
41+
### 3.5 Mobile Device or Emulator/Simulator
42+
- **Android:** Real device or emulator.
43+
- **iOS:** Real device or simulator (macOS required).
44+
45+
### 3.6 API Testing Tools (Optional)
46+
- **Purpose:** For testing and invoking API endpoints during development.
47+
- **Examples:** [curl](https://curl.se/) or [Postman](https://www.postman.com/)
48+
49+
## 3. How to Generate the Gradle Wrapper
50+
51+
To generate the Gradle wrapper, you can run the following command in the root directory of your project:
52+
53+
```bash
54+
./gradlew wrapper --gradle-version=7.6.1
55+
```
56+
57+
This command generates the Gradle wrapper files, allowing you to run Gradle tasks without installing Gradle globally. The `--gradle-version` flag is optional - if omitted, the wrapper will use the version specified in your project's `gradle/wrapper/gradle-wrapper.properties` file or the default version for your current Gradle installation.
58+
59+
## 4. How to Build
60+
61+
To build the project, you can use the Gradle wrapper. Run the following command in the root directory of your project:
62+
63+
```bash
64+
./gradlew build
65+
```
66+
67+
This command compiles the source code, runs tests, and packages the application into a JAR file. If you want to skip tests during the build process, you can use:
68+
69+
```bash
70+
./gradlew build -x test
71+
```
72+
73+
## 5. How to Execute Tests
74+
75+
To execute the tests, you can use the Gradle wrapper with the `test` task. Run the following command in the root directory of your project:
76+
77+
```bash
78+
./gradlew test
79+
```
80+
81+
This command runs all the tests defined in your project. If you want to run a specific test class or method, you can use the `--tests` option:
82+
83+
```bash
84+
./gradlew test --tests "com.example.YourTestClass"
85+
```
86+
87+
## 6. How to Run
88+
To run the application, you can use the Gradle wrapper with the `run` task. Run the following command in the root directory of your project:
89+
90+
```bash
91+
./gradlew run
92+
```
93+
This command starts the application, allowing you to interact with it.
94+
95+
## 7. How to Call Endpoints
96+
97+
To call the endpoints of your application, you can use tools like `curl`, Postman, or any HTTP client library in your programming language. The endpoints are defined in your application code, and you can access them using the appropriate HTTP methods (GET, POST, PUT, DELETE, etc.) along with the correct URL paths.
98+
99+
**Example using `curl`:**
100+
101+
```bash
102+
curl -X GET http://localhost:8080/api/endpoint
103+
```
104+
105+
Replace `GET` with the desired HTTP method and update the URL to match your application's endpoint.
106+
25107
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=3A4A51&reversal=true&textBg=false&section=footer"/>

docs/Melmac DB.vpp

0 Bytes
Binary file not shown.

docs/README.md

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,57 @@
1-
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=4E1764"/>
2-
3-
# Project Planning and Technical Documentation
4-
5-
## 1. Team Members
6-
7-
| Roles | Name | Github Profile |
8-
|:---------------------:|:-----------------:|:---------------------------------------:|
9-
| QAE Intern | Vasco Sousa | [<img src="https://avatars.githubusercontent.com/u/199751114?v=4" height="40" alt="Vasco profile"/>](https://github.com/vascosousamindera) |
10-
| QAE & Supervisor| Aires Oliveira | [<img src="https://avatars.githubusercontent.com/u/190511400?v=4" height="40" alt="Aires profile"/>](https://github.com/airesoliveira-mindera) |
11-
12-
## 2. Tasks List
13-
14-
- **T1:** Explore the concepts and fundamentals of non-functional requirements and performance in mobile applications.
15-
16-
- **T2:** Hands-on on the internal mobile application project that will serve as a basis for applying the performance testing tool.
17-
18-
- **T3:** Identify and document the requirements and features of the performance testing tool by collaborating with a development team of QAEs and Developers.
19-
20-
- **T4:** Implement a performance testing task – evaluating one of the metrics identified - that will serve as a Proof of Concept (POC).
21-
22-
- **T5:** Implement Database Model to record performance tests results.
23-
24-
- **T6:** Iterate on other implementations/metrics gathered and defined in T3 – depending on the results of iteration T4.
25-
26-
- **T7:** Produce technical documentation and user guides on the final state of the implemented tool.
27-
28-
- **T8:** Analyse the potential of the tool, notably identifying current advantages, improvements recorded in the projects where it was used, and identifying next iterations in the development.
29-
30-
- **T9:** Produce Final Report for University.
31-
32-
## 3. Tasks Planning
33-
34-
| Task | Fev | | Mar | | Abr | | Mai | | Jun | |
35-
|------|------|-----|------|-----|------|-----|------|-----|------|-----|
36-
| T1 | || | | | | | | | |
37-
| T2 | ||| | | | | | | |
38-
| T3 | | || | | | | | | |
39-
| T4 | | | |||| | | | |
40-
| T5 | | | | | ||| | | |
41-
| T6 | | | | | | ||| | |
42-
| T7 | | | | | | ||| | |
43-
| T8 | | | | | | ||| | |
44-
| T9 | | | | | | | ||| |
45-
46-
### Legend:
47-
48-
- **Each "█" symbol represents the time period in which the task is active.**
49-
- **Each month is divided into two columns, each representing two weeks.**
50-
- **Tasks are scheduled across multiple months.**
51-
52-
53-
## 4. Global Artifacts
54-
55-
[_`Global Artifacts`_](global-artifacts/README.md)
56-
1+
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=4E1764"/>
2+
3+
# Project Planning and Technical Documentation
4+
5+
## 1. Team Members
6+
7+
| Roles | Name | Github Profile |
8+
|:---------------------:|:-----------------:|:---------------------------------------:|
9+
| QAE Intern | Vasco Sousa | [<img src="https://avatars.githubusercontent.com/u/199751114?v=4" height="40" alt="Vasco profile"/>](https://github.com/vascosousamindera) |
10+
| QAE & Supervisor| Aires Oliveira | [<img src="https://avatars.githubusercontent.com/u/190511400?v=4" height="40" alt="Aires profile"/>](https://github.com/airesoliveira-mindera) |
11+
12+
## 2. Tasks List
13+
14+
- **T1:** Explore the concepts and fundamentals of non-functional requirements and performance in mobile applications.
15+
16+
- **T2:** Hands-on on the internal mobile application project that will serve as a basis for applying the performance testing tool.
17+
18+
- **T3:** Identify and document the requirements and features of the performance testing tool by collaborating with a development team of QAEs and Developers.
19+
20+
- **T4:** Implement a performance testing task – evaluating one of the metrics identified - that will serve as a Proof of Concept (POC).
21+
22+
- **T5:** Implement Database Model to record performance tests results.
23+
24+
- **T6:** Iterate on other implementations/metrics gathered and defined in T3 – depending on the results of iteration T4.
25+
26+
- **T7:** Produce technical documentation and user guides on the final state of the implemented tool.
27+
28+
- **T8:** Analyse the potential of the tool, notably identifying current advantages, improvements recorded in the projects where it was used, and identifying next iterations in the development.
29+
30+
- **T9:** Produce Final Report for University.
31+
32+
## 3. Tasks Planning
33+
34+
| Task | Fev | | Mar | | Abr | | Mai | | Jun | |
35+
|------|------|-----|------|-----|------|-----|------|-----|------|-----|
36+
| T1 | || | | | | | | | |
37+
| T2 | ||| | | | | | | |
38+
| T3 | | || | | | | | | |
39+
| T4 | | | |||| | | | |
40+
| T5 | | | | | ||| | | |
41+
| T6 | | | | | | ||| | |
42+
| T7 | | | | | | ||| | |
43+
| T8 | | | | | | ||| | |
44+
| T9 | | | | | | | ||| |
45+
46+
### Legend:
47+
48+
- **Each "█" symbol represents the time period in which the task is active.**
49+
- **Each month is divided into two columns, each representing two weeks.**
50+
- **Tasks are scheduled across multiple months.**
51+
52+
53+
## 4. Global Artifacts
54+
55+
[_`Global Artifacts`_](global-artifacts/readme.md)
56+
5757
<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=4E1764&section=footer"/>

0 commit comments

Comments
 (0)