Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the present application is further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative of the present application and are not intended to limit the present application. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
The test case generation method provided by the embodiment of the invention can be applied to the application environment shown in fig. 1. Wherein the client 102 communicates with the server 104 via a network. The server 104 acquires test case information sent by the client 102, analyzes the test case information and extracts case keywords; and then analyzing and converting the test case information according to the extracted case keywords to obtain a target test case, and storing the target test case into a preset database when the target test case obtained by analysis is legal. Therefore, the purpose of generating the test case based on the latest software requirement is achieved. The client 102 and the server 104 are connected through a network, the network may be a wired network or a wireless network, the client 102 may be but is not limited to various personal computers, notebook computers, smart phones, tablet computers and portable wearable devices, and the server 104 may be implemented by an independent server or a server cluster formed by a plurality of servers.
In an embodiment, as shown in fig. 2, a test case generation method is provided, which is described by taking the application of the method to the server in fig. 1 as an example, and includes the following steps:
step 202, receiving test case information sent by the client.
The test case information is the test case information of the latest software requirement filled by the test case applicant through the client, if a product manager or a service person needs to update certain software, the update information needs to be notified to a developer, but a general tester cannot know the latest software requirement, and the tester cannot make a corresponding test case according to the latest software requirement to test the requirement.
In this embodiment, a product manager or a service person may serve as an applicant to send test case information generated according to the latest software requirements to a server through a client.
And 204, if the preset test requirement corresponding to the test case information is not acquired from the preset requirement database, identifying case keywords in the test case information, and analyzing and converting the test case information according to the identified case keywords to obtain a target test case corresponding to the test case information.
The preset requirement database stores a large number of preset test requirements, the preset test requirements are test requirements corresponding to original functions of the product, or test requirements which do not correspond to the original functions of the product, and the preset requirement database generally comprises a large number of test requirements which may be required by one product to be used by an applicant.
The server side extracts case keywords capable of representing the piece of test case information from the received test case information, translates the case keywords into programming language keywords of a preset programming language, and then obtains a grammatical structure of the test case information according to the sequence of the programming language keywords in the whole test case information; and finally, obtaining a target test case corresponding to the test case information according to the syntactic structure and the programming language keywords.
Further, if the test case information is: if a is equal to b, c is assigned to 1; then the key extracted from the piece of test case information may be: if, equal, valued, and parameters a, b, c, and the number 1, etc.; in addition, if the preset programming language is Python and the recognized grammar structure is a selection structure, the piece of test case information can be converted into:
it should be noted that the specific content of the test case information and the preset programming language can be set according to actual requirements, and are not limited herein.
And step 206, performing word segmentation processing on the target test case by adopting a preset word segmentation mode to obtain a character string to be analyzed, and performing legality analysis on the character string to be analyzed to obtain an analysis result.
When the target test case is subjected to validity analysis, whether each character string in the target test case meets the regulations or not needs to be acquired; because the programming language generally adopts English, the target test case needs to be divided into independent character strings in advance by a word segmentation mode. The word segmentation method generally obtains character strings such as word groups, numbers, operation symbols and the like according to spaces, symbols and paragraphs, and then removes dry words such as stopword and the like through filtering, so as to achieve the purpose of extracting word stems.
The legality analysis is used for detecting whether the target test case is a complete executable test case.
And 208, if the analysis result is that the character string to be analyzed is legal, storing the target test case serving as an executable test case into a preset database.
If the analysis result is that the character string to be analyzed is legal, the target test case is stored in a preset database as an executable test case, and a tester can directly obtain the item mapping trial case from the preset database to compile and run.
According to the embodiment, the technical problem of low accuracy of a software test result caused by the fact that the test case cannot be generated based on the latest software requirement in the traditional technology can be solved by identifying the case keywords in the test case information sent by the client and generated according to the latest software requirement, converting the test case information according to the case keywords to obtain the target test case which can be compiled and executed, and then storing the target test case into the database or directly executing the target test case after legality analysis.
Further, after step 202, the test case generating method further includes:
and step 210, if the analysis result is that the character string to be analyzed is illegal, sending a case generation instruction to the client, wherein the case generation instruction is used for indicating the client to display reminding information for regenerating the test case information.
The server sends an instruction for regenerating test case information to the client so as to remind the applicant of mapping the generation failure and the failure reason of the test case, whether case keywords are selected again to regenerate the target test case and other information.
The embodiment can remind the applicant of the reason of the generation failure and the like after the target test case is failed to be generated, so that the applicant can obtain the failure information in time to adjust the selection of the case keywords.
Further, as shown in fig. 2, before step 202, the method for generating a test case further includes:
and 212, receiving a test case generation request sent by the client, generating a test case filling instruction according to the test case generation request, and sending the test case filling instruction to the client, wherein the test case filling instruction is used for indicating the client to generate test case information according to case keywords selected by the applicant.
Generally, a service person or a product manager initiates a request for generating a test case through a client, and if the server receives the request for generating the test case, a test case filling instruction is generated according to the request for generating the test case and is sent to the client.
When the functions of the product are various and complex, the test case generation request can include keywords of a certain or some functional modules filled by an applicant, the server extracts module keywords from the test case generation request, indexes case keywords corresponding to the module according to the module keywords, and sends the case keywords of the module to the client through a test case filling instruction. And finally, the client generates test case information according to the case keywords selected by the applicant and sends the test case information to the server.
If the product has simple functions, the server side can directly send a preset test case filling instruction to the client side according to the test case generation instruction sent by the client side, and the test case filling instruction comprises all preset case keywords for an applicant to select.
According to the embodiment, the plurality of case keywords are preset at the server, the case keywords are contained in the test case filling instruction and are sent to the client, the client generates the test case information according to the case keywords selected by the application party from the preset case keywords and sends the test case information to the server, the time for the application party to write the case keywords is reduced, and the efficiency for generating the test case information is improved.
In one embodiment, as shown in FIG. 3, step 204 comprises:
step 302, obtaining a target grammatical structure of the test case information according to the sequence of the recognized case keywords in the test case information.
Specifically, if the preset programming language is Python and the test case information is "if a is equal to b, then c is assigned to 1", then identifying each word in the test case information and obtaining a case keyword as follows:
if/if
Is equal to
Then the value is assigned
Then, according to the obtained category of the case keywords, the appearance sequence and the appearance frequency of each case keyword in the test case information, the target grammatical structure of the test case information is a selected structure in the programming language.
And 304, converting the recognized case keywords into programming language keywords, and combining the programming language keywords according to the target grammatical structure to generate the target test case.
According to a preset corresponding table, identifying the identified use case keywords as corresponding programming language keywords:
if it is "if"
Equal to ═ ═ "
Assigned as ═ i "
Wherein, then ═ print () ".
Further, the recognition result is determined by the type of the selected structure, for example, a single selection generally recognizes "then" as "print" according to a predetermined rule; if the grammar structure is a nested selection structure, the word "then" may be identified as "else … … print" or "elif … … print", or the like.
Then, combining the syntactic structure and the programming language keywords, so that the target test case corresponding to the test case information that if a is equal to b, c is assigned to 1 is as follows:
if a==b:
c=1
further, the Test case may be added to the Test module Test in the form of a function for testing:
the above programming language keywords, operation symbols, numbers, and the like are stored in a preset database in advance. Different types of keywords, symbols are stored in different databases, for example: programming language keywords are stored in a preset programming language database, operator symbol keywords are stored in a preset symbol database, and so on.
Specifically, assuming that the character of the test case information is a _ bc, in the preset character database, it is necessary to first obtain a storage path of a and bc corresponding to the a _ bc, and then extract the a and bc according to the storage path.
According to the embodiment, the server side can generate the target test case corresponding to the test case information by using the preset programming language by combining the case keyword and the possible grammar structure of the test case information in the programming language.
In one embodiment, as shown in FIG. 4, step 206, comprises:
and step 402, performing word segmentation processing on the target test case by adopting an NLTK word segmentation mode to obtain a character string to be analyzed.
NLTK is an efficient Python-built platform for processing natural language data, providing easy-to-use interfaces through which more than 50 corpora and lexical resources (e.g., WordNet) can be accessed, as well as a set of text processing libraries for classification, tokenization, stemming, parsing, and semantic reasoning.
When the word segmentation processing is performed on the target test case, an NLTK is generally adopted.
When obtaining each character string in the target test case (the target test case is used as a text for processing), firstly reading the target test case as a text file, and filtering special symbols in the target test case, such as a double quotation mark, a colon mark and the like; and then, carrying out word segmentation processing on the target test case based on the blank space and the line feed to obtain keywords, such as ' if ', else, print ', ' if ', and the like, and recording the frequency and the sequence of the occurrence of each keyword in the target test case.
And step 404, if the character string to be analyzed meets the preset case conditions, determining that the analysis result is that the character string to be analyzed is legal.
The server side adopts a preset word segmentation mode to segment words of the target test case, and the character string to be analyzed after the word segmentation is obtained comprises the following steps: programming keywords, operation symbols, characters, numbers and the like, and then analyzing whether the segmented programming keywords, operation symbols, characters, numbers and the like meet preset use case conditions or not; that is, whether the keywords, operation symbols, characters and numbers after word segmentation contain the basic elements of a test case is analyzed. When the characters are consistent, namely, the analyzed keywords, the operation symbols, the characters and the numbers after the word segmentation contain all basic elements of one test case, the analysis result of the target test case is determined to be that the character string to be analyzed is legal.
The script rule of a test case includes a test case number, a test title, an importance level, test input, an operation step, an expected result, correctness of grammar logic, and the like.
Further, the comparison character string matched with the character string to be analyzed can be searched from the preset operation database, and whether the character string to be analyzed is legal or not can be determined.
And if the comparison character string matched with the character string to be analyzed is found from the preset operation database, determining that the analysis result is that the character string to be analyzed is legal. The preset operation database comprises preset use case specification data such as keywords, operation symbols, punctuation mark types, writing specifications of programming languages and the like of various pre-stored programming languages. And searching a comparison character string corresponding to the operation symbol, the programming language keyword and other character strings to be analyzed, which are obtained after word segmentation, in a preset operation database by taking the operation symbol, the programming language keyword and the like character strings to be analyzed as keywords, wherein the comparison character string can be the operation symbol or the programming language keyword, and then comparing the operation symbol and the programming language keyword to obtain whether the character strings to be analyzed correspond to the comparison character string or not.
And 406, if the character string to be analyzed does not accord with the preset case condition, determining that the analysis result is that the character string to be analyzed is illegal.
And when the analyzed keywords, the operation symbols, the characters and the numbers after word segmentation do not contain all basic elements of one test case, determining that the analysis result of the target test case is that the character string to be analyzed is illegal. And when the character string to be analyzed is not matched with the character string to be analyzed, namely when the analyzed and segmented keywords, the operation symbols, the characters and the numbers do not contain all basic elements of the test case, determining that the analysis result of the target test case is that the character string to be analyzed is illegal.
Further, if the comparison character string matched with the character string to be analyzed is not found from the preset operation database, the analysis result is determined to be that the character string to be analyzed is illegal.
Specifically, If the character string to be analyzed is "If", the comparison character string is "If", and the initials of "If" and "If" are capital one and lowercase one, because of the case distinction in Python, such an illegal character string to be analyzed that does not correspond to the comparison character string in the preset operation database may be obtained.
In addition, if the test case information is not filled in the specification, the recognized grammar structure is not the expected grammar structure, for example, two "ifs" are obtained or the "if" is lacked in the same line, so that the target test case grammar obtained by the conversion is wrong, or the data overflow caused by the wrong filling of the numerical value is illegal.
The target test case generating method and the device are used for filtering the target test cases which cannot be executed or can make errors in execution by performing validity analysis on the target test cases, and are used for improving the quality of generation of the target test cases.
Further, as shown in fig. 2, after step 202 and before step 206, the test case generation method further includes:
in step 214, if the preset test requirement corresponding to the test case information is obtained from the preset requirement database, the test case of the preset test requirement is obtained from the preset target case database as the target test case.
If the preset test requirements corresponding to the test case information are obtained from the preset requirement database, the test case information filled by the representative applicant is input into the preset requirement database in advance, and the server can directly obtain the test cases with the preset test requirements from the preset target case database to serve as the target test cases. The preset target database stores test cases of each test requirement in the preset requirement database, and each test requirement is compiled through different programming languages so as to be suitable for different test environments.
It should be noted that although the preset test requirement corresponding to the test case information can be queried in the preset requirement database, in order to ensure the accuracy of the target test case, the validity of the character string after the word segmentation processing in the target test case still needs to be checked.
Further, as shown in fig. 2, before step 202, the method further includes:
step 216, receiving a test case selection request sent by the client, generating a test case selection instruction according to the test case selection request, and sending the test case selection instruction to the client, wherein the test case selection instruction includes preset test case information. Generally, a service person or a product manager can initiate a request for generating a test case through a client, and if the request is a test case selection request, the server generates a test case selection instruction according to the test case selection request and sends the test case selection instruction to the client.
When the functions of the product are various and complex, the test case selection request can include keywords of a certain or some functional modules filled by an applicant, the server extracts module keywords from the test case generation request, indexes a test requirement group corresponding to the module according to the module keywords, and sends the test requirement group corresponding to the module to the client for selection by the applicant through a test case selection instruction. The applicant selects one or more test requirements from the test requirement group according to the requirements and sends the test requirements as test case information to the server.
If the product has simple functions, the server side can directly send a preset test case selection instruction to the client side according to the test case selection instruction sent by the client side, and the test case selection instruction comprises all preset test requirements for an applicant to select.
In the embodiment, different test requirements are stored in the database in advance at the server so that one or more test requirements can be selected by the application party and sent to the server as the test case information, so that the time for the application party to write the test case information is reduced, and the efficiency of generating the test case information is improved.
In an embodiment, as shown in fig. 5, the test case generation method further includes:
step 502, if a test case browsing request sent by a client is received, a language conversion tool is obtained from a preset conversion system according to a browsing language identifier of a browsing language in the test case browsing request.
The client side sends a test case browsing request to the server side, and meanwhile, the test case browsing request carries a browsing language identifier of a client side browsing language. The method comprises the steps that a case browsing party requests to browse a test case, a test case browsing request user applies for a request instruction for browsing a target test case, a language conversion tool is a case conversion tool for converting the target test case written by other programming languages into a browsing language expression of the case browsing party, and the other programming languages are all possible programming languages except the browsing language.
Step 504, converting the target test case into the target browsing case through the obtained language conversion tool according to the grammatical structure of the browsing language.
Specifically, according to a grammatical structure and a program structure of the browsing language, a language conversion tool is adopted to convert the target test case to obtain a converted target browsing case.
Supposing that the target test case is a case compiled in C language, the language conversion tool is a Tencent cloud platform, and the target case is converted by adopting the Tencent cloud platform according to the grammatical structure of the C language to obtain the converted target case expressed by JAVA. The Tencent cloud platform is a programming language on-line conversion platform.
And step 506, sending the converted target browsing use case to a client for displaying.
The browsing case party can browse the converted target case through the client, and the browsing requirements of different browsing case parties are met.
In this embodiment, the test case written in one programming language is converted into the test case written in another programming language by the language conversion tool, so as to meet the browsing requirements of different browsing case parties.
In an embodiment, as shown in fig. 6, the test case generation method further includes:
step 602, if a preset case execution time sent by the case tester through the client is received, a spring timer is started.
Specifically, if a preset case execution time initiated by a case tester at a client is received, a spring timer is started. The case execution time is a time for starting and executing the test case, for example, the case execution time may be "16.04.2019, 10 am", the Spring timer is a timer pre-configured by a Spring frame, and the Spring frame refers to a software frame with light-weight control inversion and facing to the tangent plane.
And step 604, when the time of the spring timer is the preset case execution time, executing the target test case to obtain a case execution result.
Specifically, after the spring timer is started, the time of the timer is moved forward all the time, and when the time of the spring timer is the preset case execution time, the executable test case is executed and processed to obtain a case execution result, where the case execution result is an execution success or an execution failure.
The target test case can be executed through multiple threads, so that the case execution efficiency is improved.
Specifically, an idle thread is selected for each executable target test case from a preset thread pool.
The preset thread pool is specially used for storing idle threads, and the idle threads comprise definitions of executable use case execution interfaces. The preset thread pool can be created by Java-based ExecutorService thread pool technology.
And then, finishing the execution processing of each executable target test case by adopting each selected idle thread, wherein the idle thread comprises the definition of an executable test case execution interface.
Specifically, each selected idle thread is adopted to perform parallel execution processing on each executable target test case, and the execution processing of each executable target test case is known to be completed.
And if the selected idle thread is successfully executed, acquiring an execution result returned by the selected idle thread to obtain an execution result of each executable test case.
In this embodiment, each idle thread corresponds to an output interface, for example, each idle thread corresponds to an I/O output interface.
Step 606, obtaining the number of target test cases with successful execution, the total execution time length and the number of target test cases with failed execution as case execution results.
Specifically, the starting execution time of each target test case, that is, the case execution time of each target test case, is first obtained, then the execution end time of each target test case is recorded, finally, the case execution result is selected from the execution end times of all the target test cases as the execution end time of the target test case with successful execution, and then the difference between the execution end time and the execution start time is calculated to obtain the total execution duration.
And 608, filling the total number, success number, failure number, execution market and success ratio of the executed target test cases into a test report template to obtain a test report, and sending the test report to the client.
According to the embodiment, the test report is generated by acquiring the number of successes and failures after the target test case is executed, the execution duration of the successfully executed target test case and other data, so that a tester can intuitively browse the test report.
It should be understood that although the various steps in the flowcharts of fig. 2-6 are shown in order as indicated by the arrows, the steps are not necessarily performed in order as indicated by the arrows. The steps are not performed in the exact order shown and described, and may be performed in other orders, unless explicitly stated otherwise. Moreover, at least some of the steps in fig. 2-6 may include multiple sub-steps or multiple stages that are not necessarily performed at the same time, but may be performed at different times, and the order of performing the sub-steps or stages is not necessarily sequential, but may be performed in turn or alternately with other steps or at least some of the sub-steps or stages of other steps.
In an embodiment, as shown in fig. 7, a test case generation apparatus is provided, and the test case generation apparatus corresponds to the test case generation methods in the foregoing embodiments one to one. The test case generation apparatus includes a case information detection module 702, a first target test case generation module 704, a string synthesis analysis module 706, and a first target case processing module 708, wherein,
the use case information detection module 702 is configured to receive test case information sent by a client.
The first target test case generating module 704 is configured to identify a case keyword in the test case information if the preset test requirement corresponding to the test case information is not obtained from the preset requirement database, and analyze and convert the test case information according to the identified case keyword to obtain a target test case corresponding to the test case information.
And the character string combination analysis module 706 is configured to perform word segmentation processing on the target test case by using a preset word segmentation mode to obtain a character string to be analyzed, and perform validity analysis on the character string to be analyzed to obtain an analysis result.
The first target use case processing module 708 is configured to, if the analysis result is that the character string to be analyzed is legal, store the target test case as an executable test case in a preset database.
Further, as shown in fig. 7, the test case generation apparatus further includes:
and the second target use case processing module 710 is configured to send a use case generation instruction to the client if the analysis result is that the character string to be analyzed is illegal, where the use case generation instruction is used to instruct the client to display a prompt message for regenerating the test use case information.
Further, as shown in fig. 7, the test case generation apparatus further includes:
the case request processing module 712 is configured to receive a test case generation request sent by the client, generate a test case filling instruction according to the test case generation request, and send the test case filling instruction to the client, where the test case filling instruction is used to instruct the client to generate test case information according to a case keyword selected by the application party.
Further, as shown in fig. 7, the first target test case generation module 704 includes:
and the grammar structure recognition sub-module 7042 is configured to obtain a target grammar structure of the test case information according to the sequence of the recognized case keywords in the test case information.
And the target use case combination generation sub-module 7044 is configured to convert the recognized use case keywords into programming language keywords, and combine the programming language keywords according to the target grammatical structure to generate the target test case.
Further, as shown in fig. 7, the string combination analysis module 706 includes:
and the text word segmentation sub-module 7062 is configured to perform word segmentation on the target test case in an NLTK word segmentation manner to obtain a character string to be analyzed.
A legality analysis submodule 7064 configured to determine that the analysis result is that the character string to be analyzed is legal if the character string to be analyzed meets the preset case condition; and if the character string to be analyzed does not accord with the preset case conditions, determining that the analysis result is that the character string to be analyzed is illegal.
Further, as shown in fig. 7, the test case generation apparatus further includes:
the second target test case generating module 714 is configured to, if the preset test requirement corresponding to the test case information is obtained from the preset requirement database, obtain a test case of the preset test requirement from the preset target case database, as the target test case.
Further, as shown in fig. 7, the test case generation apparatus further includes:
the case request selecting module 716 is configured to receive a test case selection request sent by the client, generate a test case selection instruction according to the test case selection request, and send the test case selection instruction to the client, where the test case selection instruction includes preset test case information.
The test case generation device obtains the target test case which can be compiled and executed by identifying the case keywords in the test case information which is sent by the client and generated according to the latest software requirement, and then converts the test case information according to the case keywords, and stores the target test case into the database or directly executes the target test case after legality analysis, so that the technical problem that the accuracy of a software test result is low due to the fact that the test case cannot be generated based on the latest software requirement in the traditional technology can be solved.
For specific limitations of the test case generation apparatus, reference may be made to the above limitations of the test case generation method, which is not described herein again. The modules in the test case generation device may be implemented in whole or in part by software, hardware, and a combination thereof. The modules can be embedded in a hardware form or independent from a processor in the computer device, and can also be stored in a memory in the computer device in a software form, so that the processor can call and execute operations corresponding to the modules.
In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as shown in fig. 8. The computer device includes a processor, a memory, a network interface, and a database connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device comprises a nonvolatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of an operating system and computer programs in the non-volatile storage medium. The database of the computer device is used for storing test case data. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program is executed by a processor to implement a test case generation method.
Those skilled in the art will appreciate that the architecture shown in fig. 8 is merely a block diagram of some of the structures associated with the disclosed aspects and is not intended to limit the computing devices to which the disclosed aspects apply, as particular computing devices may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
In one embodiment, a computer device is provided, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor, and when the processor executes the computer program, the steps of the test case generation method in the above embodiments are implemented, for example, in steps 202 to 208 shown in fig. 2, or when the processor executes the computer program, the functions of the modules/units of the test case generation apparatus in the above embodiments are implemented, for example, the functions of modules 702 to 708 shown in fig. 7. To avoid repetition, further description is omitted here.
In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored, and the computer program when executed by a processor implements the steps of the test case generation method in the above-described embodiment, for example, the steps 202 to 208 shown in fig. 2, or the processor implements the functions of the modules/units of the test case generation apparatus in the above-described embodiment, for example, the functions of the modules 702 to 708 shown in fig. 7. To avoid repetition, further description is omitted here.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by hardware instructions of a computer program, which can be stored in a non-volatile computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. Any reference to memory, storage, database, or other medium used in the embodiments provided herein may include non-volatile and/or volatile memory, among others. Non-volatile memory can include read-only memory (ROM), Programmable ROM (PROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDRSDRAM), Enhanced SDRAM (ESDRAM), Synchronous Link DRAM (SLDRAM), Rambus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM).
It will be apparent to those skilled in the art that, for convenience and brevity of description, only the above-mentioned division of the functional units and modules is illustrated, and in practical applications, the above-mentioned function distribution may be performed by different functional units and modules according to needs, that is, the internal structure of the apparatus is divided into different functional units or modules to perform all or part of the above-mentioned functions.
The technical features of the above embodiments can be arbitrarily combined, and for the sake of brevity, all possible combinations of the technical features in the above embodiments are not described, but should be considered as the scope of the present specification as long as there is no contradiction between the combinations of the technical features.
The above-mentioned embodiments only express several embodiments of the present application, and the description thereof is more specific and detailed, but not construed as limiting the scope of the invention. It should be noted that, for those skilled in the art, without departing from the spirit and scope of the present invention, several changes, modifications and equivalent substitutions of some technical features may be made, and these changes or substitutions do not make the essence of the same technical solution depart from the spirit and scope of the technical solution of the embodiments of the present invention. Therefore, the protection scope of the present patent shall be subject to the appended claims.