Header image

SupremeTech’s Expertise in the Process of Performance Testing

10/12/2024

261

Vu Nguyen Q.

In the previous article discussing The Importance of Performance Testing and SupremeTech’s Expertise, we understood the overview of performance testing and its significance for businesses. Let me introduce how SupremeTech manages performance and the process of performance testing to ensure our products are always ready to face real-world challenges.

At SupremeTech, product performance is not just a priority but a commitment. So how to do performance testing? Below is a detailed process of performance testing that we implement to ensure applications operate stably and efficiently under any usage conditions.

For more insights into Performance Testing, check out our blogs below:

How to do performance testing

Step 1: Application Optimization

  1.1 Optimizing OPCache

Infrastructure Team

  • Responsible for configuring and fine-tuning OPCache on the server.
  • Ensures that JIT (Just-In-Time) caching is enabled and that parameters align with system resources.

1.2 Database Optimization

Back End Team

  • Designs composite indexes to enhance query speed.
  • Rewrites or optimizes SQL queries to improve efficiency and reduce execution time.
  • Analyzes common queries and data flows.

1.3 Optimizing Laravel During Deployment

Back End Team

  • Considers activating Production Mode in Laravel.
  • Executes the command php artisan optimize to optimize application configurations.

Infrastructure Team

  • Manages caching for configurations, routes, and views.
  • Supports the deployment and integration of queues or jobs on the server system.

Step 2: Preparing for Performance Testing

Collaboration among teams is crucial to ensure that every preparation step is accurate and ready for the performance testing process.

2.1 Developing a Plan and Initial Estimates

QC Team, Back-End Team

  • Creates a detailed plan for each phase of performance testing.
  • Proposes resource, time, and data requirements.

Project Technical Leader (PTL)

  • Reviews and approves the testing plan.
  • Coordinates appropriate resources based on preliminary estimates.

2.2 Security Checklist

Project Technical Leader (PTL)

  • Develops a checklist of security factors to protect the system during testing.

QC Team, Back End Team

  • Review the checklist to ensure completeness and accuracy.

2.3 Preparing Test Data

QC Team

  • Creates accounts, test data, and detailed test scenarios.
  • Writes test scripts to automate testing steps.

Back End Team

  • Assists in building complex test data or necessary APIs.
  • Reviews and tests scripts to ensure logic aligns with the actual system.

Step 3: Setting Up the Testing Environment

Coordination between the QC and Infrastructure teams is essential to ensure an optimized testing environment is ready for subsequent phases.

3.1 Estimating Server Specifications

Infrastructure Team

  • Determines appropriate server configurations based on application needs and testing requirements.
  • Provides optimal specifications based on available resources and product scale.
  • Supplies information about physical resources and infrastructure to support testing.

3.2 Establishing the Testing Environment

Infrastructure Team

  • Installs and configures virtual machines for performance testing.
  • Adjusts server parameters (CPU, RAM, Disk I/O) to meet testing criteria.

QC Team

  • Confirms that the environment is ready for testing based on established criteria.

3.3 Adjusting Parameters According to Testing Requirements

Infrastructure Team

  • Modifies server configurations based on optimal parameters suggested after initial tests.
  • Ensures configuration changes do not affect system stability.

Step 4: Conducting Tests

4.1 Performing Performance Tests

QC Team

  • Executes load tests on APIs and key functionalities.
  • Utilizes testing tools (JMeter, k6, Postman, etc.) to measure performance.

Infrastructure Team

  • Supports environment management and monitors system resources during testing.

4.2 Reporting Results

QC Team, Infrastructure Team

  • Compiles test results (response times, CPU load, RAM usage, etc.) from various tools.
  • Compares results against established performance targets.
  • Sends detailed reports to stakeholders (PTL, Backend Team).

4.3 Post-Test Optimization

Backend Team

  • Analyzes test results and fixes bugs or optimizes source code and application logic.

Infrastructure Team

  • Adjusts server configurations or optimizes system resources based on test outcomes.

QC Team

  • Re-run tests after optimization to ensure improved performance is achieved.
  • Compiles final test results and confirms with stakeholders.

Step 5: Clearing Test Data

5.1 Restoring Server Configuration to Initial State

Infrastructure Team

  • Resets server configurations to their original state to reduce unnecessary resource consumption.
  • Deletes or powers down virtual machines used during testing.
  • Ensures no temporary configurations or unnecessary test environments remain in the system.

5.2 Removing All Test Data from Databases

QC Team

  • Identifies test data that needs deletion to prevent junk data from affecting the live system.

Back End Team

  • Safely deletes test data from the database while ensuring no production data is mistakenly removed.
  • Verifies that the database is clean after deletion.
5 steps of process of performance testing

This process of performance testing enables SupremeTech to optimize each stage effectively, ensuring our products achieve optimal performance before delivery to partners. With our experienced workforce, we consistently prioritize product efficiency and quality.

Related Blog

Knowledge

+0

    The Importance of Performance Testing and SupremeTech’s Expertise

    Hello everyone, I’m Vu, a dedicated Quality Control professional committed to delivering software and applications that provide the best user experience. With over 12 years of experience in the industry, I am excited to share valuable insights on Performance Testing—an essential step to ensure that software functions smoothly and effectively before it reaches users. Even a slight delay can lead to customer loss in today's fast-paced era, making performance testing crucial for all businesses. How can systems maintain smooth operation during unexpected traffic spikes? How can we prevent crashes during peak times? The solution lies in performance testing. At SupremeTech, we provide high-quality performance testing solutions that guarantee your systems remain stable and efficient. 6 Notable Technology Incidents From the Past Healthcare.gov (2013): This insurance website crashed completely when it launched, leading to significant confusion among American citizens.Amazon Prime Day (2018): The e-commerce giant lost substantial revenue on the epic sale because the platform had crashed.Google Cloud (2019): A configuration issue caused Google Cloud to crash, affecting numerous primary services and highlighting the importance of performance testing.Zoom During the Covid Pandemic (2020): To meet the surge in online work demand, Zoom had to build its infrastructure rapidly.Facebook Outage (2021): A configuration error caused the entire Meta ecosystem to go down for 6 hours, resulting in significant reputational and financial losses.PlayStation Network (2023): Shortly after launching a new game on PlayStation 5, Sony was unprepared for gamers' inability to download it. These incidents serve as a wake-up call for all businesses. No system is immune to performance issues if it hasn't been thoroughly tested and optimized. Here are some key reasons why companies should prioritize Performance Testing for their products: Prevent Revenue Loss: A slow or crashing system can drive customers away, leading to lost revenue.Protect Brand Reputation: Major performance incidents often leave a negative impression, damaging credibility.Prepare for Growth: Testing allows you to scale operations confidently without worrying about system issues. What is Performance Testing? Performance testing is a method of testing, measuring, and evaluating a system's speed, stability, and load capacity to ensure it operates effectively under various conditions. Overview of Performance Testing: Load Capacity Assessment: Determining the maximum load limit that the system can handle.Identifying Bottlenecks: Finding weaknesses as a way to enhance performance.Improving User Experience: Ensuring users have a smooth experience while protecting brand reputation. Types of Performance Testing Load Testing: Evaluating load capacity by simulating large numbers of concurrent users. We identify the system's load threshold and address weaknesses before issues arise.Stress Testing: Pushing the system to its maximum limits to test its response in worst-case scenarios, ensuring safety.Endurance Testing: Assessing system durability when operating continuously over long periods to ensure stable performance.Spike Testing: Simulating sudden spikes in traffic, such as during major sales campaigns, helping businesses prepare for peak hours. SupremeTech's Exceptional Capabilities Flexible Integration with Various Platforms: We can conduct tests across diverse platforms, from mobile applications and websites to complex systems, ensuring optimal performance for all platforms.Detailed Data Analysis: We not only identify bugs but also provide detailed reports with optimization recommendations based on real data.  This helps you effectively address performance issues.Flexible Automated Updates: SupremeTech's automated systems allow businesses to adjust and optimize their processes easily as they grow.Dedicated Consulting Team: SupremeTech's experienced experts are ready to support you from planning through implementation and maintain high efficiency. SupremeTech - Your Partner for Optimal Performance At SupremeTech, we are committed to researching advanced technologies, maintaining professional workflows, and employing a passionate team to deliver exceptional value in all our products and services. Performance testing is more than just a technical task; it is essential for maintaining your reputation and achieving market success. Allow SupremeTech to enhance your products for today and the future. For more insights into Performance Testing, check out our blogs below: The Process of Performance Testing at SupremeTechThe Ultimate Guide to an Essential JMeter Performance Testing ToolPerform API Testing using Postman

    10/12/2024

    233

    Vu Nguyen Q.

    Knowledge

    +0

      The Importance of Performance Testing and SupremeTech’s Expertise

      10/12/2024

      233

      Vu Nguyen Q.

      Knowledge

      Software Development

      +0

         Exploring API Performance Testing with Postman

        Hello, tech enthusiasts and creative developers! I’m Vu, the author of SupremeTech’s performance testing series. In the article “The Ultimate Guide to JMeter Performance Testing Tool,” we explored JMeter's strengths and critical role in performance testing. Today, I’m introducing an exciting and straightforward way to do API performance testing using Postman. What is Postman? Postman is a robust API (Application Programming Interface) platform that empowers developers to quickly design, test, document, and interact with APIs. It is a widely used tool for testing APIs, which is valuable in software development, primarily web or mobile app development. Why Use Postman for API Testing? Postman is favored by software developers, testers, and API specialists because of its many advantages: User-Friendly Interface: Postman’s intuitive design makes it easy to use.Supports Diverse HTTP Methods: It handles requests such as GET, POST, PUT, DELETE, PATCH, OPTIONS, and more.Flexible Configuration: Easily manage API request headers, parameters, and body settings.Test Automation with Scripts: Write JavaScript code within the Tests tab to automate API response validation.Integration with CI/CD: Postman's CLI tool, Newman, seamlessly integrates with CI/CD pipelines, enabling automated API testing in development workflows.API Documentation and Sharing: Create and share API documentation with team members or clients effortlessly. Performance API Testing on Postman As of mid-2024, Postman introduced a new feature allowing users to perform API performance testing quickly and conveniently. With just a few simple steps, you can evaluate your API’s performance under high load and ensure its strength. Step 1: Select the Collection for Performance Testing Open Postman and navigate to the Collections tab on the left sidebar.Choose the Collection or Folder you want to test. Step 2: Launch the Collection Runner After selecting your desired Collection or Folder, click Run Collection to open the Collection Runner window.In the Runner, select the APIs you want to include in the performance test.Switch to the Performance tab and choose a simulation method:Fixed: Simulates a fixed number of users.Ramp Up: Starts with a few users and gradually increases.Spike: Introduces a sudden surge in traffic followed by a reduction.Peak: Increases traffic to a high level and sustains it for a period. Step 3: Adjust Virtual Users and Test Duration Configure the Virtual Users and Test Duration settings to simulate the desired load.Start with smaller values, then gradually increase them to gain a clear understanding of your API's performance under varying conditions. Step 4: Run the Test Click Run to start the performance test.During the test, Postman will send API requests and provide real-time data on:Response Time: The API's duration to respond to a request.Error Rate: The percentage of failed requests.Throughput: The number of API requests the system can handle per second. Step 5: Analyze the Report Once the test is complete, Postman generates a detailed report, including: Response Time: Tracks the duration it takes for APIs to process requests.Error Rate: Highlights any issues encountered during testing.Throughput: Measures the system's capacity to process requests under load. Use these metrics to evaluate whether your API performs efficiently under heavy traffic. These insights will guide you in optimizing your API for better performance. Leverage Customization for Realistic User Simulation Postman allows you to customize request data for each virtual user. You can upload a CSV or JSON file with unique datasets if you want different data for each user. This feature enables a more accurate simulation of real-world user behavior. After each test run, Postman provides an easy-to-understand report highlighting the areas for improvement. You can track performance changes and compare test results to identify weaknesses and refine your API. Test and Optimize Your API with Postman With Postman’s new performance testing feature, API optimization has never been easier. It helps you quickly identify and address potential issues to ensure your system is always ready to handle user demands effectively and reliably.   For more details and step-by-step guidance, check out the following resources on the Postman website:   OverviewRun a performance testView performance test metricsDebug performance test errorsInject data into virtual users Start your API performance optimization journey with Postman and prepare your system to meet every demand seamlessly. >>> Explore more articles about performance testing: SupremeTech’s Expertise in the Process of Performance Testing

        23/12/2024

        249

        Vu Nguyen Q.

        Knowledge

        +1

        • Software Development

         Exploring API Performance Testing with Postman

        23/12/2024

        249

        Vu Nguyen Q.

        Knowledge

        +0

          The Ultimate Guide to JMeter Performance Testing Tool

          At SupremeTech, we are dedicated to creating technology products that provide the best user experience. In this article, I will introduce you to JMeter performance testing, a powerful and flexible tool that significantly enhances the quality of technology products. With its ability to support various protocols, JMeter allows you to test the performance of a wide range of applications, from web services to APIs and even real-time applications. Let’s explore the types of applications JMeter can be applied to and the outstanding features it offers! For more insights into Performance Testing, check out our blogs below: The Process of Performance Testing at SupremeTechPerform API Testing using Postman Applications Suitable for JMeter Web Applications For applications using HTTP/HTTPS protocols, such as e-commerce sites, blogs, or corporate websites, JMeter can help assess response times and system performance. RESTful APIs JMeter supports load testing for APIs, measuring response times, and checking stability. Real-Time Applications (WebSocket Applications) For applications that require real-time communication, such as chat applications or online games, JMeter offers performance testing with the WebSocket Sampler Plugin, ideal for messaging systems or online monitoring. Mobile Applications JMeter can simulate requests from mobile applications to their backend APIs, such as food delivery apps or digital banking services. Database-Driven Applications For applications that rely on database queries, like CRM or ERP systems, JMeter supports performance testing using the JDBC Request Plugin to evaluate database efficiency. Custom Protocol Applications For applications using unique protocols like TCP or UDP, JMeter allows for performance simulation and testing using the TCP Sampler, which benefits  IoT applications or data transmission over local networks. Why Should Use JMeter Performance Testing Tool? Advantages Free and open source: JMeter is a cost-free tool that is easy to use.Multi-protocol support: It supports protocols like HTTP, FTP, SOAP, REST, etc.User-friendly interface: It provides an intuitive graphical interface suitable for beginners.Scalability: Supports plugins and can integrate with CI/CD tools like Jenkins.Detailed measurement: Offers comprehensive reports on performance metrics such as latency, error rates, and response times.Distributed testing: Allows load testing across multiple servers to simulate high traffic volumes. Disadvantages    Performance limitations under heavy load: JMeter may struggle with extremely high loads due to resource consumption.Not optimized for UI testing: JMeter might not be the best choice if you need to test complex user interfaces.Limited scripting flexibility: While it uses BeanShell and Groovy scripts, it lacks the flexibility of some other tools.Complex result analysis: Default reports from JMeter may not be intuitive and require external tools for advanced analysis.Learning curve: The complex features of JMeter can take time to master. What You Should Know About JMeter Plugins Plugins are an integral part of JMeter that significantly enhance its testing capabilities. Some notable plugins include: JMeter Plugins Manager: Easily manage plugins without manual configuration.PerfMon Metrics Collector: Monitors system resources like CPU, RAM, Disk, and Network during tests.JDBC Request Plugin: Tests database performance through JDBC.WebSocket Sampler: Supports WebSocket protocol testing for real-time applications.Throughput Shaping Timer: Adjusts request rates to achieve desired throughput.ElasticSearch Backend Listener: Integrates with ElasticSearch and Kibana for data analysis and visualization. Types of Reports Provided by JMeter JMeter offers various reports to help analyze and evaluate system performance: Dashboard Report: Provides an overview with graphs and data tables to track throughput, response times, and error rates.Aggregate Report: Supplies detailed aggregated data about each sampler or group of requests.Graph Results: Displays graphs showing changes in response times and throughput over time.Response Time Distribution: Shows response time distribution to identify acceptable thresholds. JMeter is a necessary tool for testers performing performance testing across various applications and protocols. Despite some limitations, its support for plugins and detailed reporting makes monitoring and analyzing system performance easy. Best of all, it is completely free! Make the most of JMeter to ensure your application runs smoothly in testing and production environments.

          10/12/2024

          255

          Vu Nguyen Q.

          Knowledge

          +0

            The Ultimate Guide to JMeter Performance Testing Tool

            10/12/2024

            255

            Vu Nguyen Q.

            Our success stories

            +0

              How to Upgrade Aurora MySQL Databases: Lessons Learned from SupremeTech

              Upgrading a critical database like Aurora MySQL can feel daunting. We want better performance and a smooth system, but downtime and data risks can loom large. At SupremeTech, we’ve tackled this challenge head-on and shared our proven approach.  This insight comes from Mr. Phuoc Pham, our Infrastructure Manager, who presented at the morning session of "Harnessing AI on AWS: Transforming Software Builders for the Future" event by AWS and MegazoneCloud. The event focused on giving software companies tools, strategies, and real-world solutions to innovate, boost performance, and grow globally with AI. In his talk, Mr. Phuoc revealed our 6-step process that minimizes risks, protects data, and increases efficiency. Here’s how we did it, key lessons learned, and how you can ensure a smooth and risk-free database upgrade. Mr. Phuoc Pham, our Infrastructure Manager, presented the lesson learned from Aurora MySQL upgrades SupremeTech’s contribution to the AWS and Megazone event SupremeTech partners with AWS and MegazoneCloud to share our expertise in tackling technical challenges. In the morning session, Mr. Phuoc Pham delivered a presentation on lessons learned from Aurora MySQL upgrades, offering practical tips for software companies to optimize their infrastructure. In the afternoon, our chairman, Mr. Truong Dinh Hoang, joined a panel discussion on future trends for ISVs, highlighting strategies for growth and innovation. These contributions underscored SupremeTech’s commitment to helping businesses enhance performance and scale smarter. In the afternoon panel discussion, Mr. Truong Dinh Hoang shared about the market expansion and future trends for ISVs. The Challenges of Upgrading Aurora MySQL Mr. Phuoc kicked off by sharing real-world challenges we faced with a client’s Aurora MySQL upgrades: Minimal downtime: We had to finish in under 2 hours, including rollback time if needed.System stability: Our database powers multiple services, so it had to stay reliable post-upgrade.Fast rollback: We needed a quick way to revert without losing data if something went wrong.User impact: Our process had to keep disruptions low and customer trust high. These hurdles might sound familiar if you’ve upgraded a system. The key to achieving this is a structured and well-tested upgrade process. Mr. Phuoc Pham presented the challenges of upgrades for our client’s system. The 6-Step Database Upgrade Process At SupremeTech, we follow a 6-step upgrade process to ensure a smooth transition. Step 1: Collect and Analyze Data Before the Upgrade Preparation is everything. Before making any changes, assessing your current database setup is essential. This helps identify potential risks and prepare for a smooth transition. Mr. Phuoc emphasized checking: Database Schema & Objects – Make sure there are no conflicts with the new version.Connected Applications – Identify all services using the database.Custom Database Settings – Compare parameter changes between versions.Performance Metrics – Monitor CPU, memory, query latency, and transaction speed. We gather this information using tools like database logs, security groups, and queries like SHOW FULL PROCESSLIST. This step prepares us for a smooth upgrade. Mr. Phuoc shared one of our 6-step upgrade processes. Step 2: Choose the Right Upgrade Method with C.I.D.D.E.R Framework Not all upgrade methods are the same. Depending on your system’s needs, you may choose one of the following: Snapshot Restore – Reliable but requires full backup and longer downtime.Clone Cluster – Fast rollback but requires additional storage.In-Place Upgrade – Minimal downtime but higher risk.Blue/Green Deployment – Safest rollback option but costly. At SupremeTech, we use the C.I.D.D.E.R framework to decide the best method based on: Complexity: How hard is the upgrade?Infrastructure Cost: What’s the budget hit?Downtime: How long will it take?Dependencies: What else relies on our database?Expertise: Do we have the skills?Rollback Strategy: How easy is it to undo? Choosing the right upgrade method can reduce risk and save time. For this case—a 10GB database, multiple services, and a team still building experience—we chose an in-place upgrade with a clone cluster backup for quick rollback by renaming the database cluster. It kept the endpoint intact and downtime under 2 hours. Step 3: Test with a Dry Run “There’s no place like production,” Mr. Phuoc quipped, stressing the need for practice.  A dry-run is a test upgrade performed in a staging environment to catch problems before they affect real users. We run dry runs on a cloned database and DEV/STG environments to: Detects issues before they impact production.Reduces unexpected downtime.Helps estimate the actual upgrade time. This extra step can save hours of troubleshooting later. Step 4: Fine-Tuning Based on Dry-Run Results After testing, we adjust the process: Adjust database settings.Fix errors from the dry run.Shorten execution time for less downtime.Refine rollback procedures.Update guides for our team. A few small tweaks before the upgrade can prevent major issues after it. Step 5: Deployment – The Actual Upgrade With everything tested and fine-tuned, it's time to execute the upgrade in production. How we ensure success: Perform the upgrade during low-traffic hours.Keep the rollback plan ready.Monitor logs in real time for any errors. Having a clear step-by-step deployment plan prevents last-minute surprises. Step 6: Monitor After the Upgrade Post-upgrade, we track key metrics like: Resources: CPU, memory, disk usage.Performance: Query response time, QPS, TPS.Errors: Any glitches or slow queries.Data Integrity: No data loss or corruption. Continuous monitoring after the upgrade helps us spot issues quickly, reducing troubleshooting time and minimizing the impact on our customers. We monitor key performance metrics for both the new and old databases to compare. We also watch the four golden signals—latency, traffic, errors, and saturation—to get a full picture of system health. At SupremeTech, we use AI-powered tools like Amazon Q to analyze database logs and detect anomalies faster than manual monitoring. Why post-upgrade monitoring matters: Quickly identifies hidden performance issues.Ensures the upgrade was 100% successful.Helps optimize for better database efficiency. Boosted performance and customer trust are critical criteria when we implement upgrades. Results & Lessons Learned Our Results By following this 6-step process, SupremeTech successfully upgraded Aurora MySQL with: Done in under 2 hours of downtime.Lowered infra costs with smarter planning.Boosted performance and customer trust. Key Takeaways Mr. Phuoc wrapped up with these gems: Prep is everything: Gathering and analyzing info before the upgrade is critical to spot risks early.Plan for data checks: We ensure data integrity with a solid verification plan.Pick the right approach: We choose deployment and rollback methods that fit our clients’ operations.Keep monitoring: Continuous tracking helps us stay ahead of issues.Automate with AI: Using AI and tools speeds us up and cuts errors. Wrapping Up Upgrading a database doesn’t have to be a risky, stressful process. You can confidently upgrade with the right preparation, testing, and monitoring. Thanks to Mr. Phuoc Pham’s presentation at the AWS and MegazoneCloud event, our 6-step process at SupremeTech proves you can keep risks low, protect data, and emerge stronger when doing Aurora MySQL upgrades. If your company is planning a database upgrade and needs expert guidance, contact our team at SupremeTech. We help businesses upgrade critical databases without disruption. Want to learn more about cloud database best practices? Stay tuned for more insights from our tech experts! Related articles about AWS: Mastering AWS Lambda: An Introduction to Serverless ComputingCreate Your First AWS Lambda Function (Node.js, Python, and Go)Triggers and Events: How AWS Lambda Connects with the WorldBest Practices for Building Reliable AWS Lambda Functions

              21/03/2025

              40

              Our success stories

              +0

                How to Upgrade Aurora MySQL Databases: Lessons Learned from SupremeTech

                21/03/2025

                40

                Customize software background

                Want to customize a software for your business?

                Meet with us! Schedule a meeting with us!