Pressure testing system and pressure testing method
By integrating monitoring, code scanning, and analysis modules into a stress testing system, and combining tools such as K6 and Golang, efficient game stress testing has been achieved. This solves the problems of inefficiency and resource waste in existing technologies, provides unified testing standards and visual reports, and ensures that game projects run stably under high loads.
Patent Information
- Application Number
- CN202511285603.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-09-09
- Filing Date
- 2025-09-09
- Publication Date
- 2025-11-28
AI Technical Summary
Current technologies for stress testing game projects are inefficient, waste resources significantly, and make it difficult to establish unified testing standards, thus affecting game development and maintenance.
This document provides a stress testing system comprising a monitoring module, a code scanning module, and an analysis module. It receives stress testing requests through multiple connection methods, generates stress testing result charts, supports multiple network protocols, and integrates with tools such as K6, Golang, Prometheus, and Grafana for automated stress testing, enabling continuous integration and deployment.
It improves stress testing efficiency, reduces resource waste, ensures stable operation of game projects under high load, discovers potential performance issues, reduces operation and maintenance costs, supports stress testing of multiple network protocols, and provides visual reports and real-time monitoring.
Smart Images

Figure CN121029613A_ABST
Abstract
Description
[0001] The present disclosure claims priority to a Chinese patent application with the application number 202411260327.2, the title of "Pressure testing system and pressure testing method", which was filed with the Chinese Patent Office on September 9, 2024, and the entire content of which is incorporated herein by reference. TECHNICAL FIELD
[0002] The present application relates to the technical field of computer, in particular to an image processing pressure testing system and a pressure testing method. The present application also relates to a computing device, a computer readable storage medium and a computer program product. BACKGROUND
[0003] With the vigorous development of the game industry, the complexity and diversity of game projects are increasing, and the requirements for system stability and performance are also increasing. System-level stress testing, as a key link to ensure the stability of game projects and various application services before going online, is self-evident. However, in the traditional mode, due to the diversification of various games, the uncertainty of test requirements and other reasons, the development of stress testing tools for each project separately not only is inefficient, but also easily causes resource waste, and it is difficult to form a unified test standard within the project team, which brings many challenges to game development and maintenance.
[0004] Therefore, at present, how to realize intuitive, convenient and universal game stress testing, protect game experience, improve game stress testing efficiency, reduce game stress testing resource waste and form a unified game stress testing standard is an urgent need for current game technology innovation. SUMMARY
[0005] Therefore, the present application provides a pressure testing system and a pressure testing method. The present application also relates to a computing device, a computer readable storage medium and a computer program product to solve the above problems in the prior art.
[0006] According to a first aspect of the present application, a pressure testing system is provided, which comprises a monitoring module, a code scanning module and an analysis module, wherein: The code scanning module receives a pressure testing request and performs pressure testing on a project corresponding to the pressure testing request based on the pressure testing request to obtain pressure testing data, wherein the pressure testing request is transmitted through at least two connection modes; The monitoring module acquires the pressure testing data in the code scanning module and sends the pressure testing data to the analysis module; The analysis module receives the target test data sent by the monitoring module and generates a pressure testing result chart based on the target test data.
[0007] According to a second aspect of the embodiments of the present application, a pressure testing method is provided, comprising: receiving a pressure testing request, wherein the pressure testing request is transmitted through at least two connection modes; performing pressure testing on a project corresponding to the pressure testing request based on the pressure testing request, to obtain pressure testing data; generating a pressure testing result chart according to the pressure testing data.
[0008] According to a third aspect of the embodiments of the present application, a computing device is provided, comprising a memory, a processor, and a computer program / instruction stored in the memory and executable on the processor, wherein the processor executes the computer program / instruction to implement the steps of the pressure testing method.
[0009] According to a fourth aspect of the embodiments of the present application, a computer readable storage medium is provided, which stores a computer program / instruction, wherein the computer program / instruction is executed by a processor to implement the steps of the pressure testing method.
[0010] According to a fifth aspect of the embodiments of the present application, a computer program product is provided, comprising a computer program / instruction, wherein the computer program / instruction is executed by a processor to implement the steps of the pressure testing method.
[0011] An embodiment of the present application implements a code scanning module of a pressure testing system, receives a pressure testing request, and performs pressure testing on a project corresponding to the pressure testing request based on the pressure testing request, to obtain pressure testing data, wherein the pressure testing request is transmitted through at least two connection modes; a monitoring module acquires the pressure testing data in the code scanning module and sends the pressure testing data to an analysis module; the analysis module receives the target testing data sent by the monitoring module and generates a pressure testing result chart based on the target testing data. The pressure testing system can simulate a large number of concurrent users, high data load, and other scenarios, verify the scalability of a project under different loads, find potential performance problems before the project goes online, improve the quality of the project, and reduce operation and maintenance costs. BRIEF DESCRIPTION OF DRAWINGS
[0012] Figure 1 is a structural schematic diagram of a pressure testing system provided by an embodiment of the present application; Figure 2 is a system flow schematic diagram provided by an embodiment of the present application; Figure 3 is a processing flow schematic diagram of a pressure testing system provided by an embodiment of the present application; Figure 4is a deployment process schematic diagram provided by an embodiment of the present application. Figure 5 is a flowchart of a pressure test method provided by an embodiment of the present application. Figure 6 is a structural block diagram of a computing device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0013] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present application. However, the present application can be practiced without the specific details, and the present application is not limited to the specific embodiments described herein. In other instances, well-known methods, procedures and components have not been described in detail so as not to unnecessarily obscure aspects of the present application.
[0014] The terminology used in this disclosure is for the purpose of describing particular embodiments only and is not intended to be limiting of one or more embodiments of the present application. As used in one or more embodiments of the present application and the accompanying claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and / or "comprising," when used in one or more embodiments of the present application and the following claims, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0015] It will be understood that, although the terms first, second, etc. can be used herein to describe various information, these terms are not intended to denote a temporal or chronological order. Rather, these terms are used only to distinguish one from another. For example, without departing from the scope of one or more embodiments of the present application, first can be termed second, and similarly, second can be termed first.
[0016] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards in relevant regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0017] First, the terms involved in one or more embodiments of the present application are explained.
[0018] K6: K6 is an open source tool for performance testing and load testing, mainly used to evaluate and verify the performance and stability of an application.
[0019] Golang: (also known as Go language) is an open source programming language.
[0020] ASTS: (Automatic Static Code Scanning Tool) is a method of checking potential problems in code by directly scanning source code without running the program. This method converts source code into an Abstract Syntax Tree (AST) form, then analyzes the AST to find possible vulnerabilities or non-compliance with coding standards.
[0021] Prometheus: is an open-source service monitoring system and time-series database that provides a common data model and fast data collection, storage, and query interfaces.
[0022] pull metrics: refers to the process by which the Prometheus Server periodically obtains monitoring data from configured Jobs / exporters.
[0023] Grafana: Grafana is a cross-platform open-source data analysis and visualization suite, mainly used for infrastructure time-series data and application analysis visualization.
[0024] Git: is an open-source distributed version control system that can effectively and efficiently manage version control for small to large projects.
[0025] Git Stress test script: Git Stress Test Script is a tool script for testing the performance and stability of the Git version control system.
[0026] init interface: The init method is commonly used in Java interfaces to perform object initialization operations.
[0027] switchWorkflow interface: a logical interface that can implement data exchange functions but does not exist physically and needs to be established through configuration.
[0028] GamePlugin: is a game-related dynamic link library file (DLL file), which belongs to a computer file, and the full name is Dynamic Link Library (Dynamic Link Library).
[0029] Jenkinsfile: Jenkinsfile is a text file that defines the logic of a Jenkins Pipeline. It records the various operations that Jenkins needs to perform when executing a job.
[0030] Dockerfile: Dockerfile is a text file that contains all the instructions for building a Docker image.
[0031] Nomad job: A Nomad job is the core control unit of Nomad, used to describe the workload that needs to be run.
[0032] Consul API: A client library for interacting with the API of Consul service discovery.
[0033] CI / CD: CI / CD stands for Continuous Integration, Continuous Delivery, and Continuous Deployment, which is a software development practice aimed at accelerating the speed and quality of software delivery through automation and continuous feedback.
[0034] DevOps: DevOps is a set of processes, methods, and systems that promote communication, collaboration, and integration between development (application / software engineering), technical operations, and quality assurance (QA) departments.
[0035] In this application, a stress testing system and a stress testing method are provided. This application also relates to a computing device, a computer-readable storage medium, and a computer program product, which are described in detail in the following embodiments.
[0036] Referring to Figure 1 , Figure 1 The structure of the stress testing system provided by an embodiment of the present application is shown in the figure. As shown in the figure, the stress testing system comprises a monitoring module 102, a code scanning module 104, and an analysis module 106, wherein: Figure 1 The code scanning module 104 receives a stress testing request and performs stress testing on a project corresponding to the stress testing request based on the stress testing request to obtain stress testing data, wherein the stress testing request is transmitted through at least two connection modes. The monitoring module 102 acquires stress testing data in the code scanning module and sends the stress testing data to the analysis module. The analysis module 106 receives target testing data sent by the monitoring module and generates a stress testing result chart based on the target testing data.
[0037] Further, referring to Figure 2 An embodiment of the present application provides a system flow diagram, in a specific embodiment of the present application, based on the performance test tool K6, a set of automatic stress test system is constructed, including the following characteristics: based on the open source programming language Golang development, focusing on the development of the code written by the developer, supporting multiple network protocols TCP (transmission network protocol), UDP (user datagram protocol), HTTP (hypertext transfer protocol), WebSocket (provides a long-term, bidirectional, full-duplex communication protocol between client and server), abstracting the business model into a simple state machine and flow test unit to cope with complex business model unified stress test indicators, and stress test data is observable. The flow is as follows: First, the ASTS (automatic static code scanning tool) sends a request to the target server. Then, the monitoring and alarm system server (Prometheus Server) pulls the metrics from the target server and pushes these data to the ASTS. At the same time, the ASTS also pushes the metrics to the monitoring and alarm system server (Prometheus Server).
[0038] Finally, Grafana (cross-platform open source data analysis and visualization suite) receives the request metrics from the monitoring and alarm system server (Prometheus Server) and generates two graphs: one is the Server Graph and the other is the ASTS Graph. These two graphs can help users better understand and analyze system performance and security test results.
[0039] Referring to Figure 3 , Figure 3 The processing flow diagram of the stress test system provided by an embodiment of the present application is shown, as Figure 3 shown, the stress test system provided by the embodiment of the present application comprises a monitoring module, a code scanning module and an analysis module.
[0040] Step 302: The code scanning module receives the stress test request and performs stress test on the project corresponding to the stress test request based on the stress test request, and obtains stress test data, wherein the stress test request is transmitted through at least two connection modes.
[0041] The pressure test request refers to a request for performing pressure test on actual execution of a project, and the project can include but is not limited to a game project, an online shopping project, etc. The connection mode refers to a network connection transmission protocol, for example, tcp, http, websocket, rpc, etc. The pressure test data refers to pressure test results obtained after pressure test on the project.
[0042] In actual application, before performing pressure test on the project corresponding to the pressure test request based on the pressure test request, the method further includes: performing test deployment based on a distributed version control system. The distributed version control system can be Git.
[0043] Specifically, referring to Figure 4 An embodiment of the application provides a deployment process schematic diagram. In a product under test deployment process, a developer submits project code through a distributed version control system Git, builds the project and generates a project execution program or a docker image, deploys the product to a test environment, and the project runs in the test environment. Next, in a customized k6 deployment process, a Git stress test script is used to build k6, container images programming language Docker images golang, an extension framework xk6, and k6 are used to deploy k6, and a stress test tool runs in a running environment. Finally, in a stress test process, stress test is performed in the test environment of the project, stress test result data is collected, data is published, and stress test ends. The whole process is a process from the development stage, through deployment and stress test, to finally obtain stress test results.
[0044] Code submission through Git triggers automatic building and deployment, reduces manual operation, improves deployment speed and efficiency, and reduces the possibility of human error. Code management through Git ensures that each deployment version can be traced back, facilitating problem tracing and version rollback. Whether the product under test or the stress test tool K6 is deployed through Docker images, the consistency of development, test and production environments is ensured, and bugs caused by environment differences are reduced. The K6 deployment process can adjust the stress test script and configuration according to specific needs, providing high flexibility to simulate different user behaviors and load scenarios. The whole process supports CI / CD (continuous integration / continuous deployment) practice, so that software updates can be delivered quickly, frequently and reliably, accelerating the product iteration cycle. The data collected by the stress test process can be used to analyze system performance bottlenecks, providing a basis for optimizing system architecture, resource configuration and code logic, and ensuring that the application can still run stably under high load.
[0045] Further, before receiving the pressure test request, the method further includes: The entry file is executed based on a test tool, and the code scanning module is introduced in the entry file.
[0046] In an embodiment of the present application, the K6Engine can execute an entry JavaScript file according to the K6 script file execution rules to implement stress testing on a target game server. An ASTS module can be introduced in the entry file, and the ASTS module can execute its related init interface (initialization interface) as an initialization interface to zero all variables and states, and can execute a switchWorkflow interface (logic interface) to route the logic to different logic processing units for processing according to the specific stress testing state in the stress testing process. The ASTS module can also execute other functional interfaces.
[0047] Further, the key part of the stress testing system is an entry script EntryScript and a game plug-in GamePlugin. The EntryScript is an entry script for stress testing, which is mainly responsible for determining the specific steps of stress testing. The state machine and random method are used to control the stress testing unit to form a cyclic workflow stress testing scheme, which can simulate a real game running environment to perform stress testing on each workflow. Specifically, after UnLogin (unregistering and logging in), a Login Workflow is performed, and a Ready state is prepared, and a Wrokflow Set Random is performed, which can perform stress testing according to specific activities in the game, such as Login, Shop, Battle, and Pay.
[0048] The GamePlugin is a specific logic part of the business, which is mainly used in the following aspects. First, in the GamePlayer (game platform), it can be used to store the business data and virtual user state of each virtual user, and to process the periodic behavior of the virtual user through the OnTick instruction and to process the abnormal offline situation of the virtual user through the OnNetKick instruction. Second, in the PkgDecoder (packet decoder), it can be used to analyze the network data packet in asynchronous communication. Third, in the MessageHandler (message handler), it can be used to process the data of the specific business packet and to pass the analyzed data to the currently executing Workflow (workflow) for logical branch processing. Fourth, in the Workflow (workflow), it can be used to organize the specific process of the specific business testing unit.
[0049] In practical applications, the method for performing stress testing on the project corresponding to the stress testing request based on the stress testing request can specifically include: The code scanning module introduces a business module and performs stress testing on the project based on the business module.
[0050] In a specific embodiment of the present application, the ASTS introduces a business module (GamePlugin) and executes specific business logic; the stress testing indicators generated by the ASTS are synchronized to the ASTSOutput plug-in (output plug-in) through the K6Engine, and are synchronized to the monitoring and alarm system server PrometheusServer, and the intermediate data of the stress testing process can be transmitted to the data collection center for analysis and display; the tester and the developer can view the stress testing situation through Grafana.
[0051] In practical applications, the code scanning module sends a test data acquisition request to the target server; the monitoring module acquires test data from the target server based on the test data acquisition request and sends the test data to the code scanning module.
[0052] In a specific embodiment of the present application, the ASTS (automatic static code scanning tool) sends a request to the target server. Then, the monitoring and alarm system Prometheus server pulls (pull metrics) the indicator data from the target server and pushes the data, i.e., push metrics, to the ASTS. At the same time, the ASTS also pulls (pull metrics) the corresponding indicator data from the Prometheus server.
[0053] Step 304: The monitoring module acquires the stress testing data in the code scanning module and sends the stress testing data to the analysis module.
[0054] Specifically, the monitoring module can be a monitoring and alarm system Prometheus server; through the monitoring module, the stress testing data generated by the code scanning module can be acquired to be sent to the analysis module for analyzing the stress testing result.
[0055] Step 306: The analysis module receives the target test data sent by the monitoring module and generates a stress testing result chart based on the target test data.
[0056] In practical applications, after generating the stress testing result chart based on the target test data, the following steps are further included: The analysis module visually displays the stress testing result chart.
[0057] In a specific embodiment of the present application, the relevant index data is observed in real time in Grafana to quickly find possible problems in the target system. In combination with Prometheus and Grafana, real-time performance index monitoring and rich chart reports can be provided to quickly identify performance bottlenecks and improve the transparency and efficiency of testing.
[0058] Further, the design and implementation of the infrastructure of the stress testing system and CI / CD specifically includes: long link coded tasks are concentrated in the extension (added long link test custom function), and the configuration file Jenkinsfile and the text file Dockerfile containing a series of commands are placed in xk6-tcp (a project using the xk6 framework to extend TCP protocol support for k6). Short link tasks are concentrated in k6 scripts written by business personnel, and Jenkinsfile and Dockerfile are placed in the business loadtest (test) repository to realize continuous integration. Jenkinsfile is written in the application deployment repository, Nomadjob tasks of batch (batch processing or one-time processing) type are written, application deployment to the job scheduler Nomad cluster is completed, and continuous deployment is realized.
[0059] For the Infra infrastructure, Terraform code is written, and the node_class is a batch (batch) scalable cluster group. According to the CPU central processor or memory usage of the application, the cluster can be scaled. The lifecycle in Nomadjob (job scheduler task) supports the setting of taskblock (task block), and the stress testing service runs on the application running on multiple job scheduler nomad nodes. The lifecycle in nomadjob cannot meet the requirements. In nomadjob (job scheduler task), the service is increased, and the stress machine service is registered in the container orchestration tool consul. When the service ends, each one will send a request to the application, and the application gets the registration information of the registered stress machine by calling the ConsulAPI (programming interface) or SDK (software development kit). When the service is empty, aggregate Prometheus (monitoring and alerting system), and then send a notification.
[0060] In practical applications, the setting of the stress testing scheme needs to determine multiple dimensions of indicators. The specific stress testing scheme setting requirements include: clearly defining the stress testing target, standard and corresponding indicators, so that the quality of the code submitted in each link of the game project server program development process can be guaranteed by the stress tool, including the following aspects: Stress Testing: Also known as strength testing, test the maximum pressure resistance of a system, under heavy load (large data, high concurrency), test the maximum pressure that the system can withstand, estimate the bottleneck of the system.
[0061] Concurrency Testing: By simulating many users accessing the system at the same time or operating on a certain function of the system, test the performance of the system and find problems (concurrent read and write, thread control, resource contention).
[0062] Configuration Testing: By running the system under heavy load for a long time, test the system and machine under long-time running conditions, find problems (memory leak, database connection pool not released, resource not recycled).
[0063] The goal of stress testing is expected to achieve: the performance of a single machine is 100QPS, the website can simultaneously satisfy 100W people online, and the calculation method is as follows: Stress testing principle: 80% of the access volume is concentrated in 20% of the time every day, and this 20% of the time is called peak.
[0064] Formula: Peak time per second request number (QPS) = (total PV number * 80%) / (number of seconds per day * 20%).
[0065] Machine: The number of machines needed = peak time per second request number (QPS) / QPS of a single machine.
[0066] Through the above rules, the open source solution of stress testing is clear, the appropriate basic stress testing version is selected, the adaptation of the game project and the general component is completed, and it is ensured that the current stress testing service meets the needs of stress testing under various network links. Finally, the stress testing system needs to complete the self-service of the infrastructure, so that the project team can easily use the stress testing system in the development process, complete CI / CD, dynamic expansion and contraction operation.
[0067] In addition, a stress test service of multiple different network connection modes can be provided, and the self-service stress machine expansion and contraction can be creatively realized, and a chart visual stress test report is provided. The technical implementation mainly includes the following contents: providing a basic stress test service of tcp, http, websocket, rpc and other connection modes, establishing a stress test cluster group which can be quickly expanded and contracted through a custom continuous integration and continuous deployment scheme, to meet the stress test requirements of different magnitudes; aggregating Promentheus and grafana chart functions, which can form a chart report for each stress test and can send a notification. In the nomadjob, a service is added, and the stress machine service is registered in the consul. When the service ends, each one will send a request to the application, and the application will get the registration information of the registered stress machine by calling the Consul API or SDK. When the service is empty, aggregate Prometheus and send a notification. The above method effectively fills the gap in server stress testing, especially in long connection stress testing; the stress test system can be used alone, and can also be perfectly combined with KTDR to form a design audit and actual project data mutual verification system; through the combination of K6, Nomad and other DevOps (software development and information technology operation and maintenance) technologies and Golang language, the most advanced technology combination in the field of stress testing is formed. The system integrates some commonly used network protocols such as TCP, UDP, HTTP, WebSocket, etc. to meet the requirements of different projects on network layer transmission.
[0068] At the same time, through the integration of Prometheus plug-in, the system can synchronize the index data generated in the stress test process to the Prometheus system in real time. While correctly and efficiently generating stress, users can also observe the relevant index data in Grafana through the charts provided by the system to quickly find possible problems in the target system.
[0069] Further, in order to realize the large-scale load testing capability of the pressure testing system, the technical basis required to realize the million-level pressure test includes continuous integration and continuous deployment (CI / CD), Jenkins (an automation tool), Docker (a containerization tool), and Nomad (a scheduling tool), and the specific implementation process is as follows: the written K6 script, engine, and plug-in ASTS components are packaged into a Docker container for easy management and deployment; Jenkins is used to coordinate the entire process, and the powerful scheduling capability of Nomad is used to distribute these Docker images to each virtual machine; after the Docker image is deployed, each container will start to perform the pressure test task; assuming that each Docker instance can carry 5000 concurrent users, then only 200 such Docker instances need to be run simultaneously to achieve a million-level concurrent pressure testing capability; the above steps constitute part of the CI / CD process, and each time the pressure test is performed, it is actually an instance of running the process. By using containerization technology (Docker), automation tools (Jenkins), and scheduling tools (Nomad), combined with the CI / CD process, efficient large-scale load testing is realized.
[0070] In summary, the pressure testing system based on K6 has the following characteristics: developed based on Golang, focusing on code writing by developers, supporting multiple network protocols (TCP, UDP, HTTP, WebSocket), abstracting business models into simple state machines and flow test units to cope with complex business models, unified pressure test indicators, and observable pressure test data. Due to the lightweight and advanced nature of K6 technology, the overall pressure test based on it has the characteristics of lightweight and advanced deployment. Customized extensions can be made by combining the pressure test components generated by K6 technology to continuously evolve. It effectively avoids the limitations of pressure test targets. At the same time, it can ensure continuous follow-up and optimization of pressure test data. K6 technology is derived from the application of Golang language, combined with the foresight of current technology, and has the characteristics of high development efficiency, high execution efficiency, and high iteration from the development language level. Combined with the application of Nomad and other DevOps components, hardware resources can be used with low loss and high utilization, avoiding or eliminating the problem of waste of hardware resources. Combined with the application of Nomad and other DevOps components, automatic scaling can achieve rapid deployment, rapid production, and rapid reporting. Combined with K6, Nomad, and other core technologies, a pressure test environment with a large number of users can be realized, thereby solving the problem of being unable to accurately control the pressure and the cumbersome deployment steps. It allows users to easily and quickly view the results, and enables development iteration to be completed at a faster speed.
[0071] This project builds a highly automated, scalable and technically advanced stress testing system, effectively addressing the company's needs for stress testing various network protocols, especially long connection stress testing. In terms of specific implementation details, it includes the following specific features: (1) Comprehensive network protocol support: Integrating TCP, HTTP, WebSocket and other network protocols, it meets the testing needs of different games and systems at different network levels, ensuring comprehensive coverage.
[0072] (2) Dynamic resource management: Through Nomad, the stress testing cluster can be quickly scaled up or down, automatically adjusting resources according to testing needs, ensuring testing efficiency, optimizing resource usage, and reducing costs.
[0073] (3) Visualized reporting and real-time monitoring: Combined with Prometheus and Grafana, it provides real-time performance monitoring and rich chart reports, facilitating quick identification of performance bottlenecks and improving testing transparency and efficiency.
[0074] (4) Intelligent notification system: It implements an automatic notification mechanism after service completion, combined with Consul service registration and discovery, ensuring timely feedback of testing status and facilitating rapid response by the operations team.
[0075] (5) K6 and Golang technology stack: Developed based on lightweight K6 and high-performance Golang, it not only improves the efficiency and performance of stress testing scripts, but also lays a solid foundation for future expansion and maintenance of the system.
[0076] (6) Automation and integration capabilities: Seamless integration with Continuous Integration / Continuous Deployment (CI / CD) processes makes stress testing a standard part of the software development lifecycle, accelerating the testing feedback loop and shortening the iteration cycle.
[0077] (7) Flexibility and customizability: Supporting custom stress testing scripts and component extensions, it adapts to changing testing needs, maintaining the advanced nature and applicability of the testing framework.
[0078] (8) Efficient response and precise pressure control: It can complete the entire testing process from deployment to reporting in a short time, while allowing flexible pressure scale adjustment from a single user to millions of users, accurately simulating real user scenarios.
[0079] Through the above core technology and innovation points, the game stress test technology can discover and solve performance bottlenecks in advance through comprehensive and efficient stress testing, ensure stable operation of the game under high concurrency, improve player experience, integrate with KTDR and other systems to form a data-driven design and verification closed loop, accelerate problem positioning and repair, and reduce the cost of later modifications. The use of industry-leading stress testing technology and methodology improves test efficiency. Through automated and intelligent resource management strategies, the utilization rate of hardware resources is greatly improved, and the economic and time costs of large-scale testing are reduced. The project provides technical support for quality assurance of games and various online services through efficient, flexible, and intelligent characteristics.
[0080] Figure 5 A flowchart of a stress test method according to an embodiment of the application is shown, which specifically includes the following steps: Step 502: Receive a stress test request, wherein the stress test request is transmitted through at least two connection modes.
[0081] Step 504: Perform stress testing on the project corresponding to the stress test request based on the stress test request, and obtain stress test data.
[0082] Step 506: Generate a stress test result chart according to the stress test data.
[0083] The stress test method of the application can simulate a large number of concurrent users, high data load scenarios, and verify the scalability of the project under different loads, discover potential performance problems before the project goes online, improve project quality, and reduce operation and maintenance costs.
[0084] Figure 6 A structural block diagram of a computing device 600 according to an embodiment of the application is shown. The components of the computing device 600 include but are not limited to a memory 610 and a processor 620. The processor 620 is connected to the memory 610 through a bus 630, and a database 650 is used to save data.
[0085] The computing device 600 also includes an access device 640 that enables the computing device 600 to communicate via one or more networks 660. Examples of such networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or combinations of such networks, such as the Internet. The access device 640 can include one or more of any type of network interface (for example, a network interface card (NIC)) such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a Worldwide Interoperability for Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, or the like.
[0086] In one embodiment of the present application, the above-mentioned components of the computing device 600, as well as other components not shown in FIG. 6, can be connected to each other by a bus. It should be understood that Figure 6 the components of the computing device 600 can be connected to each other by other means, for example, through a series or parallel connection, a memory-mapped I / O, a stand-alone, or dedicated system, etc. Figure 6 The computing device structure diagram shown is merely for the purpose of example, and is not a limitation on the scope of the present application. Those skilled in the art can add or replace other components as needed.
[0087] The computing device 600 can be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (for example, a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, etc.), a mobile phone (for example, a smartphone), a wearable computing device (for example, a smart watch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 600 can also be a mobile or stationary server.
[0088] wherein the processor 620 implements the steps of the image processing method when executing the computer program / instructions.
[0089] The above is a schematic scheme of the computing device of the embodiment. It should be noted that the technical scheme of the computing device and the technical scheme of the image processing method described above belong to the same concept, and details of the technical scheme of the computing device that are not described in detail can be referred to the description of the technical scheme of the image processing method.
[0090] An embodiment of the present application further provides a computer readable storage medium storing computer programs / instructions, which are executed by a processor to implement the steps of the image processing method.
[0091] The above is a schematic scheme of the computer readable storage medium of the embodiment. It should be noted that the technical scheme of the storage medium and the technical scheme of the image processing method described above belong to the same concept, and details of the technical scheme of the storage medium that are not described in detail can be referred to the description of the technical scheme of the image processing method.
[0092] An embodiment of the present application further provides a computer program product comprising computer programs / instructions, which are executed by a processor to implement the steps of the image processing method.
[0093] The above is a schematic scheme of the computer program product of the embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the image processing method described above belong to the same concept, and details of the technical scheme of the computer program product that are not described in detail can be referred to the description of the technical scheme of the image processing method.
[0094] The specific embodiments of the present application are described above. Other embodiments are within the scope of the appended claims. In some cases, acts or steps can be performed in an order different from embodiments, and still achieve desirable results. Additionally, the process depicted in the figures can not require the particular order shown, or continuous process, in order to achieve the desired results. In certain implementations, multitasking and parallel processing can be advantageous.
[0095] The computer programs / instructions include computer program code, which can be in the form of source code, object code, executable code, or some intermediate form. The computer readable medium can include any entity or apparatus capable of carrying the computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signal, telecommunication signal, and software distribution medium, etc.
[0096] It should be noted that, for the aforementioned method embodiments, the sequences of the described actions are not the only ones that can be performed to implement the embodiments. In some embodiments, the sequences of actions can be performed in different order or concurrently. In some embodiments, certain actions can be omitted, replaced, added, or combined. In some embodiments, additional actions can be performed.
[0097] In the above embodiments, the description of each embodiment focuses on different aspects. The parts not described in detail in a certain embodiment can be referred to the relevant description of other embodiments.
[0098] The preferred embodiments of the application disclosed above are only used to explain the application. The alternative embodiments do not describe all the details and limit the application to the specific embodiments. Obviously, many modifications and changes can be made according to the content of the application. The application selects and describes these embodiments in order to better explain the principles and practical applications of the application, so that the skilled in the art can well understand and use the application. The application is limited by the claims and their full scope and equivalents.
Claims
1. A pressure testing system, characterized in that, The stress testing system includes a monitoring module, a code scanning module, and an analysis module, wherein: The code scanning module receives a stress test request and performs stress tests on the project corresponding to the stress test request based on the stress test request to obtain stress test data. The stress test request is transmitted through at least two connection methods. The monitoring module acquires the stress test data from the code scanning module and sends the stress test data to the analysis module. The analysis module receives the target test data sent by the monitoring module and generates a stress test result chart based on the target test data.
2. The pressure testing system as described in claim 1, characterized in that, Before performing stress testing on the project corresponding to the stress test request based on the stress test request, the following steps are also included: Test deployment is based on a distributed version control system.
3. The pressure testing system as described in claim 1, characterized in that, Before receiving a stress test request, the following is also included: The test tool executes the entry file and introduces the code scanning module into the entry file.
4. The pressure testing system as described in claim 1, characterized in that, Based on the stress test request, stress tests are performed on the project corresponding to the stress test request, including: The code scanning module incorporates a business module and performs stress testing on the project based on the business module.
5. The pressure testing system as described in claim 1, characterized in that, Also includes: The code scanning module sends a test data acquisition request to the target server; The monitoring module obtains test data from the target server based on the test data acquisition request, and sends the test data to the code scanning module.
6. The pressure testing system as described in claim 1, characterized in that, After generating the stress test result chart based on the target test data, the following is also included: The analysis module visualizes the stress test results in charts.
7. A pressure testing method, characterized in that, include: Receive a stress test request, wherein the stress test request is transmitted via at least two connection methods; Based on the stress test request, stress test is performed on the project corresponding to the stress test request to obtain stress test data; A stress test result chart is generated based on the stress test data.
8. A computing device, comprising a memory, a processor, and a computer program / instructions stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program / instructions, it implements the steps of the method of claim 7.
9. A computer-readable storage medium storing a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the steps of the method of claim 7.
10. A computer program product, comprising a computer program / instructions, characterized in that, When the computer program / instructions are executed by the processor, they implement the steps of the method of claim 7.