Device and method for automatically carrying out software version iteration test

Through automated devices and methods, the complexity and manual dependency issues of distributed storage system software version iteration testing are resolved, an efficient and automated version iteration testing process is implemented, and testing efficiency and quality are improved.

CN120743771APending Publication Date: 2025-10-03JINAN INSPUR DATA TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510854187.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-24
Publication Date
2025-10-03

AI Technical Summary

Technical Problem

In a massive data environment, the software version iteration testing process of a distributed storage system is complex and relies on manual operations, which is time-consuming and labor-intensive, and may be subject to human interference.

Method used

It uses automated devices and methods, including version image canning module, version upgrade module, version testing module and virtual machine maintenance module, to automatically complete iterative testing of software versions, and interacts with ESXi through API interface to realize automated deployment, upgrade and testing of virtual machines.

Benefits of technology

It reduces human interference, saves time and labor costs, improves test efficiency and consistency, supports batch task scheduling and multi-cluster parallel testing, generates test reports and quickly locates problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120743771A_ABST
    Figure CN120743771A_ABST
Patent Text Reader

Abstract

The invention provides a device and a method for automatically carrying out a software version iteration test. The device comprises a version mirror image canning module, a version upgrading module, a version test module and a virtual machine maintenance module. The version mirror image canning module is used for automatically downloading, uploading and canning version mirror images and deploying clusters; the version upgrading module is used for identifying a to-be-upgraded virtual machine and performing offline upgrading after creating a snapshot; the version test module performs function test on the newly canned cluster and the upgraded cluster, records problems and notifies related personnel; and the virtual machine maintenance module performs snapshot rollback on the virtual machine after the test is completed. By means of the automatic device and method, interference of human factors is reduced, the testing efficiency and accuracy are improved, and time and labor cost are saved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of software testing, and in particular to a device and method for automatically performing iterative testing of software versions. Background Art

[0002] In massive data environments, clusters are growing in size and complexity. While maintaining high system scalability and adaptability, the management and operation and maintenance requirements for distributed clusters are becoming increasingly demanding and crucial. In distributed storage systems, a mature software product often requires multiple version iterations before becoming reliable and stable. How to quickly verify newly released software versions has become a critical issue for managers working with distributed storage systems.

[0003] Currently, iterative testing of software versions is generally done manually, including the release and maintenance of new versions, the canning and upgrading of self-test environments, and the verification of version reliability. The entire process is relatively complex and requires operators to have a certain understanding of each step. Human factors can cause great interference, and completing a version release and verification often requires a lot of manpower and time. Summary of the Invention

[0004] The present invention aims to solve one of the technical problems in the related art at least to a certain extent.

[0005] The present invention proposes a device for automatically performing software version iteration testing, which automatically completes version canning and upgrading by monitoring the latest iteration version released by the version building server, and automatically tests the functions of the latest iteration version.

[0006] Another object of the present invention is to provide a method for automatically performing iterative testing of software versions.

[0007] To achieve the above objectives, the present invention provides, on one hand, a system for automatically performing iterative testing of software versions, comprising:

[0008] The version image canning module is used to automatically download the latest version image when the version build server successfully builds a new iteration version, automatically connect to ESXi after obtaining the ESXi verification credentials through the API interface, upload the version image to ESXi, call the ESXi API interface to cannify the newly uploaded version image, and use the virtual machine of the newly canned version image as a template to automatically clone the corresponding number of virtual machines in ESXi according to the number of nodes in the cluster to be built for image testing;

[0009] The version upgrade module is used to scan the names of all virtual machines on ESXi according to the upgrade matrix supported by the current version, identify the virtual machines that need to be upgraded, and record the names of the virtual machines to be upgraded. After creating snapshots of the virtual machines to be upgraded, it obtains the latest version of the software upgrade package from the version build server and performs offline version upgrades on each virtual machine.

[0010] The version testing module is used to perform functional testing on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. It runs the corresponding automated test scripts based on the functions supported by the software to simulate the basic functions supported by the software. It also identifies the function to which each modified file belongs based on the commit record of the most recent version and calls all the automated test scripts for the corresponding function for focused testing.

[0011] The virtual machine maintenance module is used to roll back the upgraded cluster to the latest snapshot after the latest iteration version is verified.

[0012] The apparatus for automated software version iteration testing according to the embodiment of the present invention may also have the following additional technical features:

[0013] In one embodiment of the present invention, the names of the newly canned virtual machines and the cloned virtual machines are uniformly prefixed with the current version name and added with corresponding serial numbers. Based on the canned and cloned virtual machine information, the node information and network information of each virtual machine are automatically planned, and the cluster automation deployment script is called to automatically complete the cluster deployment.

[0014] In one embodiment of the present invention, the version image canning module is further configured to receive a notification from the version building server that a new iterative version has been successfully built before automatically downloading the latest version image.

[0015] In one embodiment of the present invention, the version upgrade module is further configured to pre-set identification rules for names of virtual machines to be upgraded according to an upgrade matrix supported by the current version before identifying the virtual machines that need to be upgraded.

[0016] In one embodiment of the present invention, the version testing module is further configured to pre-set a correspondence between the automated testing scripts and the functions supported by the software before running the corresponding automated testing scripts to perform simulation tests on the basic functions supported by the software.

[0017] In one embodiment of the present invention, the virtual machine maintenance module is further configured to determine the virtual machine that needs to be rolled back based on the virtual machine name recorded by the version upgrade module before the rollback.

[0018] To achieve the above-mentioned object, the present invention further provides a method for automatically performing software version iteration testing, comprising:

[0019] When the version build server successfully builds a new iteration, it automatically downloads the latest version image, obtains ESXi authentication credentials through the API interface, automatically connects to ESXi, uploads the version image to ESXi, calls the ESXi API interface to cannulate the newly uploaded version image, and uses the virtual machine of the newly canned version image as a template. Based on the number of nodes in the cluster to be built for image testing, it automatically clones the corresponding number of virtual machines in ESXi;

[0020] Scan the names of all virtual machines on ESXi according to the upgrade matrix supported by the current version, identify the virtual machines that need to be upgraded, and record the names of the virtual machines to be upgraded. After creating snapshots of the virtual machines to be upgraded, obtain the latest version of the software upgrade package from the version build server and perform offline upgrades on each virtual machine.

[0021] Functional testing is performed on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. Based on the functions supported by the software, the corresponding automated test scripts are run to simulate the basic functions supported by the software. At the same time, the function to which each modified file belongs is identified based on the commit record of the latest version, and all automated test scripts for the corresponding function are called for focused testing.

[0022] After the latest iteration version is verified, the upgraded cluster is rolled back according to the latest snapshot.

[0023] An apparatus and method for automating software version iteration testing according to an embodiment of the present invention can programmatically complete cluster version filling testing and cluster version upgrade testing. Compared with the original manual method, it reduces the interference of human factors and greatly saves time and labor costs.

[0024] Additional aspects and advantages of the present invention will be set forth in part in the description which follows and, in part, will be obvious from the description which follows, or may be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] The above and / or additional aspects and advantages of the present invention will become apparent and readily understood from the following description of the embodiments in conjunction with the accompanying drawings, in which:

[0026] Figure 1 is a structural diagram of an apparatus for automatically performing software version iteration testing according to an embodiment of the present invention;

[0027] Figure 2 This is a flowchart of implementing the mirror version canned module according to an embodiment of the present invention;

[0028] Figure 3 The present invention is a flowchart of a method for automating software version iteration testing according to an embodiment of the present invention. DETAILED DESCRIPTION

[0029] It should be noted that, in the absence of conflict, the embodiments and features of the embodiments of the present invention can be combined with each other. The present invention will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.

[0030] In order to enable those skilled in the art to better understand the solutions of the present invention, the technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the embodiments described are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of the present invention.

[0031] The following describes an apparatus and method for automatically performing software version iteration testing according to an embodiment of the present invention with reference to the accompanying drawings.

[0032] First, the technical terms mentioned in this invention are introduced:

[0033] Webhook: A mechanism for implementing real-time event notifications via HTTP callbacks (HTTP POST).

[0034] HashiCorp Vault: Helps organizations protect confidential data across their infrastructure through centralized storage, dynamic generation, and strict access controls.

[0035] Figure 1 : is a structural diagram of an apparatus for automatically performing software version iteration testing according to an embodiment of the present invention, such as Figure 1 Shown, including:

[0036] The version image canning module 100 is used to automatically download the latest version image when the version building server successfully builds a new iteration version, automatically connect to ESXi after obtaining the ESXi verification credentials through the API interface, upload the version image to ESXi, call the ESXi API interface to cannify the newly uploaded version image, and use the virtual machine of the newly canned version image as a template to automatically clone a corresponding number of virtual machines in ESXi according to the number of nodes in the cluster to be built for image testing;

[0037] The version upgrade module 200 is used to scan the names of all virtual machines on the ESXi according to the upgrade matrix supported by the current version, identify the virtual machines that need to be upgraded, record the names of the virtual machines to be upgraded, create snapshots of the virtual machines to be upgraded, obtain the latest version of the software upgrade package from the version build server, and perform offline upgrades on each virtual machine;

[0038] The version testing module 300 is used to perform functional testing on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. It runs the corresponding automated test scripts based on the software's supported functions to simulate the basic functions supported by the software. It also identifies the function to which each modified file belongs based on the commit history of the most recent version and calls all the automated test scripts for the corresponding function for focused testing.

[0039] The virtual machine maintenance module 400 is used to roll back the upgraded cluster according to the latest snapshot after the latest iteration version verification is completed.

[0040] Specifically, the implementation steps of each module are as follows:

[0041] Version image canning module. When the version build server successfully builds a new iterative version, it will immediately notify the version image canning module, and the version image canning module will automatically download the latest version image from the version build server. Secondly, after the version image canning module obtains the verification credentials of ESXi through the API interface, it automatically connects to ESXi and automatically uploads the newly built software iterative version image obtained from the version build server to ESXi; then the module calls the ESXi API interface to cannulate the newly uploaded version image, and uses the virtual machine of the newly canned version image as a template. According to the number of nodes in the cluster to be built for image testing, the corresponding number of virtual machines is automatically cloned in ESXi. The names of the newly canned virtual machines and the cloned virtual machines are uniformly prefixed with the current version name and added with the corresponding serial number to facilitate subsequent upgrades and maintenance. Finally, based on the canned and cloned virtual machine information, the module automatically plans the node information, network and other information of each virtual machine, and calls the cluster automation deployment script to automatically complete the cluster deployment.

[0042] Version Upgrade Module. This module automatically identifies which VMs require a version upgrade by scanning the names of all VMs on ESXi and comparing them with the upgrade matrix supported by the current version. It also records the names of all VMs to be upgraded. Before performing a version upgrade, a snapshot must be created for the VM to be upgraded so that the VM can be rolled back after testing is complete. After the VM snapshot is created, the Version Upgrade Module retrieves the latest software upgrade package from the build server and then performs an offline version upgrade on each VM.

[0043] Version testing module. This module uniformly performs functional testing on clusters that are newly canned through the version image canning module and clusters that are upgraded through the version upgrade module. First, according to the functions currently supported by the software, the corresponding automated test scripts are run to simulate the various basic functions supported by the software and record the problematic functions. Then, based on the submission record of the most recent version, the module will identify the function to which each modified file belongs and call all the automated test scripts of the corresponding function for key testing to confirm whether the newly modified file has an impact on the original function. If the corresponding function fails the automated test, the submission will be recorded. For functions that fail the automated test script verification, the code submitter and the person in charge of the function will be notified by email for processing. For functions that pass the automated test script verification, a corresponding test report will be generated.

[0044] Virtual machine maintenance module. After the latest iteration version verification is completed, the upgraded cluster needs to be rolled back. The virtual machine name recorded in the version upgrade module is rolled back according to the latest snapshot. This ensures that after each round of testing, the virtual machines of various versions are still retained on exsi.

[0045] Through the above four modules and the introduction of a programmed testing mechanism, cluster version filling and upgrade testing can be completed efficiently and automatically. Compared with traditional manual operation methods, programmed testing can accurately execute each step according to the preset process, which not only significantly reduces the uncertainty and risk of operational errors caused by human factors, but also greatly improves the consistency and repeatability of testing. The entire testing process can be completed unattended, greatly saving time costs and human resources. In addition, programmed testing supports batch task scheduling and multi-cluster parallel testing, making it possible to complete the execution of a large number of test cases in a short period of time. The system can also automatically collect test results, generate reports, and record and alert abnormal situations, making it easier for testers to quickly locate problems. This automated testing model not only improves testing efficiency and quality, but also provides strong technical support for enterprises in version iteration and quality assurance before launch.

[0046] The present invention monitors the latest iteration version released by the version building server, automatically completes version canning and upgrading, and automatically tests the functions of the latest iteration version.

[0047] In one embodiment of the present invention, the image version canning module implements iterative version image canning and cluster building. The specific implementation is as follows:

[0048] a) After the build server is configured with a Webhook notification, the image version canned module will be notified when the latest iteration is built. The version image canned module will automatically download the latest version image from the version build server.

[0049] like Figure 2 The following diagram shows the interaction between "canned modules", "Vault", and "ESXi":

[0050] Request ESXi credentials:

[0051] When a canned module needs to access ESXi, it first sends a request to Vault to obtain the necessary authentication credentials. These credentials typically include a username, password, or other authentication information. Providing credentials through Vault ensures that sensitive data is not directly exposed to canned modules, while also enabling centralized management and secure control of credentials.

[0052] Returns the encrypted credentials:

[0053] When Vault receives a request from a canned module, it generates or retrieves the relevant credentials and encrypts them to ensure secure transmission. The encrypted credentials are returned to the canned module, making them indecipherable to attackers even if intercepted during transmission. This approach not only improves security but also reduces the risk of storing and using plaintext credentials.

[0054] Initiate a connection (with credentials):

[0055] The canned module receives the encrypted credentials from Vault and uses them to establish a connection with ESXi. The canned module includes these credentials in the connection request, allowing ESXi to authenticate. Because the credentials are encrypted, the entire connection process is more secure and eliminates the need to store or hardcode credentials on the client.

[0056] Returns the API Token (token to be reused for subsequent operations):

[0057] After successfully verifying the credentials, ESXi generates a temporary API token and returns it to the canned module. This token can be reused for subsequent operations within a certain period of time, eliminating the need to re-provide the original credentials each time. This not only improves system performance but also further enhances security, as tokens typically have a short validity period and can be revoked at any time. This ensures convenience while effectively preventing potential threats from credential leaks.

[0058] b) The version image canned module uses HashiCorp Vault to store the username and password of ESXi, and after obtaining the authentication credentials of ESXi through the API interface, it automatically connects to ESXi and automatically uploads the newly built software iteration version image obtained from the version build server to ESXi.

[0059] c) Call the ESXi API to cannify the newly uploaded version image. Using the virtual machine of the newly canned version image as a template, ESXi automatically clones a corresponding number of virtual machines based on the number of nodes in the cluster to be built for image testing. The names of the newly canned and cloned virtual machines are uniformly prefixed with the current version name and given a corresponding serial number to facilitate subsequent upgrades and maintenance.

[0060] d) Based on the canned and cloned virtual machine information, automatically plan the node information, network and other information of each virtual machine, and call the cluster automatic deployment script to automatically complete the cluster deployment.

[0061] In one embodiment of the present invention, the version upgrade module automatically implements the cluster upgrade based on the upgrade matrix supported by the current version. The specific implementation is:

[0062] a) Obtain a list of all virtual machines on ESXi through the scanning engine;

[0063] b) Since the format of ESXi virtual machine names is uniformly version number + serial number, a regular expression can be used to match the software version numbers corresponding to all virtual machines.

[0064] c) Compare the software versions of the virtual machines with those of the upgrade matrix. If the software version of the current virtual machine meets the requirements of the upgrade matrix, the virtual machine is placed in the queue of virtual machines to be upgraded and sorted from low to high according to the version number.

[0065] d) Before performing a version upgrade, you need to create a snapshot of the virtual machine to be upgraded. The snapshot name should be in the format of virtual machine name + current date, so that you can roll back the snapshot after the test is completed or the upgrade fails.

[0066] e) After the virtual machine snapshot is created, the version upgrade module obtains the latest version of the software upgrade package from the version build server and then performs offline version upgrades sequentially according to the queue of virtual machines to be upgraded. If all multiple virtual machines of the same version are successfully upgraded, the version upgrade is considered successful and the successfully upgraded virtual machines are recorded. If one of the multiple virtual machines of the same version fails to upgrade, the version upgrade is considered failed and a snapshot rollback is performed on all virtual machines corresponding to that version, and the failed virtual machine is recorded.

[0067] In one embodiment of the present invention, the version testing module uniformly performs functional testing on clusters newly canned by the version image canning module and clusters upgraded by the version upgrading module.

[0068] a) Smoke testing: Verify the availability of basic services, run automated test scripts to simulate the basic functions of the software, and record any problematic functions.

[0069] b) Incremental testing: Based on the code change analysis engine and the commit history of the most recent version, the system identifies the function to which each modified file belongs and calls all the corresponding automated test scripts for focused testing to confirm whether the newly modified file affects the original function. If the corresponding function fails the automated test, the commit is recorded. For functions that fail the automated test script verification, the code submitter and the function responsible are notified by email for processing. For functions that pass the automated test script verification, a corresponding test report is generated.

[0070] c) Regression testing: Perform regression verification on related functions based on bug resolution records.

[0071] In one embodiment of the present invention, the virtual machine maintenance module completes the rollback of the virtual machine. The specific implementation is as follows:

[0072] a) After the latest iteration version is verified, start the snapshot rollback process for the upgraded cluster.

[0073] b) Based on the successfully upgraded virtual machines recorded by the version upgrade module, obtain the latest snapshot generated before the upgrade of each virtual machine, and group the virtual machine snapshots according to the version number to ensure that each group covers all virtual machines in a cluster.

[0074] c) A distributed transaction coordinator achieves cross-host rollback consistency, ensuring that each group can achieve cluster-level atomic rollbacks, achieving a true all-or-nothing rollback and preventing VMs within each group from experiencing intermediate states. After the rollback is complete, exsi retains all historical VM versions, providing a complete sandbox environment for subsequent version upgrade and iteration testing.

[0075] The beneficial effects of the present invention are:

[0076] 1) Fully automated process: This automates the entire process from version image download, automatic ESXi upload, virtual machine canning / cloning to cluster deployment, significantly reducing manual intervention and improving efficiency.

[0077] 2) Efficient version management: The version image canned module automatically names virtual machines (version name + serial number) to facilitate subsequent maintenance. The upgrade matrix automatically identifies virtual machines to be upgraded, improving version management accuracy.

[0078] 3) Improved testing efficiency and coverage: The version testing module uses automated scripts to complete basic functional testing and code submission-related testing, focusing on detecting the impact of modifications, generating test reports and quickly providing feedback on issues, thereby improving test coverage and accuracy.

[0079] 4) Risk Control and Traceability: Automatically create a virtual machine snapshot before upgrading, and quickly roll back in case of test failure to ensure the stability of the test environment; retain historical versions of virtual machines for easy retrospective verification.

[0080] According to the device for automating software version iteration testing according to an embodiment of the present invention, the version image canning module monitors the iterative versions released by the version build server in real time, and realizes the automation of the entire process from version image download, esxi automatic upload, virtual machine canning / cloning to cluster deployment. The version upgrade module automatically identifies which virtual machines need to be upgraded by scanning the names of all virtual machines on esxi based on the upgrade matrix supported by the current version, creates snapshots of the virtual machines to be upgraded, and performs offline upgrades. The version testing module completes basic functional testing and code submission-related testing through automated scripts, focusing on detecting the impact of modifications, generating test reports and quickly feedbacking problems, thereby improving test coverage and accuracy. The virtual machine maintenance module automatically creates a virtual machine snapshot before upgrading, and can quickly roll back if the test fails to ensure the stability of the test environment; historical version virtual machines are retained for easy retrospective verification.

[0081] In order to implement the above embodiment, Figure 3 As shown, this embodiment also provides a method for automatically performing software version iteration testing, including:

[0082] S1, when the version build server successfully builds a new iteration version, automatically downloads the latest version image, obtains ESXi verification credentials through the API interface, automatically connects to ESXi, uploads the version image to ESXi, calls the ESXi API interface to cannulate the newly uploaded version image, and uses the virtual machine of the newly canned version image as a template. According to the number of nodes in the cluster to be built for image testing, the corresponding number of virtual machines are automatically cloned in ESXi;

[0083] S2 scans the names of all virtual machines on ESXi according to the upgrade matrix supported by the current version, identifies the virtual machines that need to be upgraded, and records the names of the virtual machines to be upgraded. After creating snapshots of the virtual machines to be upgraded, it obtains the latest version of the software upgrade package from the version build server and performs an offline upgrade on each virtual machine.

[0084] S3 performs functional testing on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. Based on the software's supported functions, the corresponding automated test scripts are run to simulate the basic functions supported by the software. The function to which each modified file belongs is identified based on the commit history of the most recent version, and all the automated test scripts for the corresponding function are called for focused testing.

[0085] S4: After the latest iteration version is verified, the upgraded cluster is rolled back according to the latest snapshot.

[0086] Furthermore, the names of newly canned virtual machines and cloned virtual machines are uniformly prefixed with the current version name and added with the corresponding serial number. Based on the canned and cloned virtual machine information, the node information and network information of each virtual machine are automatically planned, and the cluster automation deployment script is called to automatically complete the cluster deployment.

[0087] Furthermore, before automatically downloading the latest version image, a notification is received from the version building server that a new iteration version has been successfully built.

[0088] Furthermore, before identifying the virtual machines that need to be upgraded, identification rules for the names of the virtual machines to be upgraded are pre-set according to the upgrade matrix supported by the current version.

[0089] According to the method for automating software version iteration testing according to an embodiment of the present invention, the version image canning module monitors the iterative versions released by the version build server in real time, and realizes the automation of the entire process from version image download, esxi automatic upload, virtual machine canning / cloning to cluster deployment. The version upgrade module automatically identifies which virtual machines need to be upgraded by scanning the names of all virtual machines on esxi based on the upgrade matrix supported by the current version, creates snapshots of the virtual machines to be upgraded, and performs offline upgrades. The version testing module completes basic functional testing and code submission-related testing through automated scripts, focusing on detecting the impact of modifications, generating test reports and quickly feedbacking problems, thereby improving test coverage and accuracy. The virtual machine maintenance module automatically creates a virtual machine snapshot before upgrading, and can quickly roll back if the test fails to ensure the stability of the test environment; historical version virtual machines are retained for easy retrospective verification.

[0090] In the description of this specification, the reference terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" mean that the specific features, structures, materials or characteristics described in conjunction with the embodiment or example are included in at least one embodiment or example of the present invention. In this specification, the schematic representations of the above terms do not necessarily refer to the same embodiment or example. Moreover, the specific features, structures, materials or characteristics described can be combined in any one or more embodiments or examples in a suitable manner. In addition, those skilled in the art can combine and combine different embodiments or examples described in this specification and features of different embodiments or examples without contradiction.

[0091] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of the technical features being referred to. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one such feature. In the description of the present invention, "plurality" means at least two, such as two, three, etc., unless otherwise specifically defined.

Claims

1. A device for automatically performing software version iteration testing, characterized in that: include: The version image canning module is used to automatically download the latest version image when the version build server successfully builds a new iteration version, automatically connect to ESXi after obtaining the ESXi verification credentials through the API interface, upload the version image to ESXi, call the ESXi API interface to cannify the newly uploaded version image, and use the virtual machine of the newly canned version image as a template to automatically clone the corresponding number of virtual machines in ESXi according to the number of nodes in the cluster to be built for image testing; The version upgrade module is used to scan the names of all virtual machines on ESXi according to the upgrade matrix supported by the current version, identify the virtual machines that need to be upgraded, and record the names of the virtual machines to be upgraded. After creating snapshots of the virtual machines to be upgraded, it obtains the latest version of the software upgrade package from the version build server and performs offline version upgrades on each virtual machine. The version testing module is used to perform functional testing on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. It runs the corresponding automated test scripts based on the functions supported by the software to simulate the basic functions supported by the software. It also identifies the function to which each modified file belongs based on the commit record of the most recent version and calls all the automated test scripts for the corresponding function for focused testing. The virtual machine maintenance module is used to roll back the upgraded cluster to the latest snapshot after the latest iteration version is verified.

2. The device according to claim 1, characterized in that The names of the newly canned virtual machines and cloned virtual machines are uniformly prefixed with the current version name and added with the corresponding serial number. Based on the canned and cloned virtual machine information, the node information and network information of each virtual machine are automatically planned, and the cluster automation deployment script is called to automatically complete the cluster deployment.

3. The device according to claim 1, characterized in that The version image canning module is further configured to receive a notification from the version building server that a new iterative version has been successfully built before automatically downloading the latest version image.

4. The device according to claim 1, characterized in that The version upgrade module is further configured to pre-set an identification rule for the name of the virtual machine to be upgraded according to an upgrade matrix supported by the current version before identifying the virtual machine that needs to be upgraded.

5. The device according to claim 1, characterized in that The version testing module is further used to pre-set the corresponding relationship between the automated testing script and the functions supported by the software before running the corresponding automated testing script to perform simulation tests on each basic function supported by the software.

6. The device according to claim 1, characterized in that The virtual machine maintenance module is further configured to determine the virtual machine that needs to be rolled back according to the virtual machine name recorded by the version upgrade module before rolling back.

7. A method for automated software version iteration testing, characterized in that: include: When the version build server successfully builds a new iteration, it automatically downloads the latest version image, obtains ESXi authentication credentials through the API interface, automatically connects to ESXi, uploads the version image to ESXi, calls the ESXi API interface to cannulate the newly uploaded version image, and uses the virtual machine of the newly canned version image as a template. Based on the number of nodes in the cluster to be built for image testing, it automatically clones the corresponding number of virtual machines in ESXi; Scan the names of all virtual machines on ESXi according to the upgrade matrix supported by the current version, identify the virtual machines that need to be upgraded, and record the names of the virtual machines to be upgraded. After creating snapshots of the virtual machines to be upgraded, obtain the latest version of the software upgrade package from the version build server and perform offline upgrades on each virtual machine. Functional testing is performed on clusters newly canned using the version image canning module and clusters upgraded using the version upgrade module. Based on the functions supported by the software, the corresponding automated test scripts are run to simulate the basic functions supported by the software. At the same time, the function to which each modified file belongs is identified based on the commit record of the latest version, and all automated test scripts for the corresponding function are called for focused testing. After the latest iteration version is verified, the upgraded cluster is rolled back according to the latest snapshot.

8. The method according to claim 7, characterized in that The names of newly canned virtual machines and cloned virtual machines are uniformly prefixed with the current version name and added with the corresponding serial number. Based on the canned and cloned virtual machine information, the node information and network information of each virtual machine are automatically planned, and the cluster automation deployment script is called to automatically complete the cluster deployment.

9. The method according to claim 7, characterized in that Before automatically downloading the latest version image, receive notifications that the version build server has successfully built a new iteration version.

10. The method according to claim 7, characterized in that Before identifying the virtual machines that need to be upgraded, a rule for identifying the names of the virtual machines to be upgraded is pre-set according to the upgrade matrix supported by the current version.