|
1 | | -<img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=3A4A51&reversal=true&textBg=false§ion=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§ion=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 | + |
25 | 107 | <img width=100% src="https://capsule-render.vercel.app/api?type=waving&height=120&color=3A4A51&reversal=true&textBg=false§ion=footer"/> |
0 commit comments