As part of Mindera's 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.
Planning and Technical Documentation
To set up and work on this project, ensure you have the following tools and dependencies installed:
- Requirement: JDK 17 or higher (the backend is developed in Kotlin).
- Download: Adoptium
- Purpose: Build automation for compiling, running, and testing the project.
- Installation:
- Install manually (Guide), or use the project’s Gradle wrapper (
./gradlew
).
- Install manually (Guide), or use the project’s Gradle wrapper (
- Purpose: Required for running performance tests on Android devices or emulators.
- Notes:
- Ensure
adb
is available in your systemPATH
. - Install via Android Studio
- Install platform tools, system images, and emulator support.
- Ensure
- Purpose: Required for iOS performance testing.
- Notes:
- Uses
xcodebuild
,simctl
, and other Xcode utilities. - Install Command Line Tools:
xcode-select --install
- Download Xcode from the Mac App Store
- XCUI tests are written in Swift and executed via
xcodebuild test-without-building
.
- Uses
- Android: Real device or emulator.
- iOS: Real device or simulator (macOS required).
To generate the Gradle wrapper, you can run the following command in the root directory of your project:
./gradlew wrapper --gradle-version=7.6.1
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.
To build the project, you can use the Gradle wrapper. Run the following command in the root directory of your project:
./gradlew build
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:
./gradlew build -x test
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:
./gradlew test
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:
./gradlew test --tests "com.example.YourTestClass"
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:
./gradlew run
This command starts the application, allowing you to interact with it.
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.
Example using curl
:
curl -X GET http://localhost:8080/api/endpoint
Replace GET
with the desired HTTP method and update the URL to match your application's endpoint.
You can find API usage examples at docs/global-artifacts/script.md
. This document provides detailed, step-by-step instructions on how to create test plans and execute them using the API.
To configure CI/CD workflows, you can use tools like GitHub Actions, GitLab CI, or Jenkins.
You can find example workflow files in the .github/workflows
directory. These files are clickable and define how your project is built, tested, and deployed.
Click on a workflow file to view or edit its configuration directly in your repository.
Note: The workflow templates provided are static. If you need to change any parameters (such as environment variables, build steps, or triggers), you must edit the workflow YAML files and commit the changes to your repository for them to take effect.