CN112199284A - Program automation testing method and corresponding device, equipment and medium - Google Patents

Program automation testing method and corresponding device, equipment and medium Download PDF

Info

Publication number
CN112199284A
CN112199284A CN202011079356.0A CN202011079356A CN112199284A CN 112199284 A CN112199284 A CN 112199284A CN 202011079356 A CN202011079356 A CN 202011079356A CN 112199284 A CN112199284 A CN 112199284A
Authority
CN
China
Prior art keywords
program
test
service flow
tested
tested program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011079356.0A
Other languages
Chinese (zh)
Inventor
郭亚斌
林祥宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Huaduo Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Huaduo Network Technology Co Ltd filed Critical Guangzhou Huaduo Network Technology Co Ltd
Priority to CN202011079356.0A priority Critical patent/CN112199284A/en
Publication of CN112199284A publication Critical patent/CN112199284A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Abstract

The application discloses a program automatic testing method and a corresponding device, equipment and medium thereof, wherein the method comprises the following steps: analyzing and executing an instruction set in the test case, and monitoring the running state of the process of the tested program; simulating a corresponding operation event according to an instruction set corresponding to the conventional test service flow represented by the test case, and controlling the tested program to run according to the conventional test service flow; when monitoring that the routine test service flow process triggers the abnormity, simulating a corresponding operation event according to an instruction set corresponding to the abnormity processing service flow represented by the test case, and controlling the tested program to continue the routine test service flow after eliminating the abnormity. The application realizes the automatic test function of the application program, can ensure the high stability in the automatic test process by automatically clearing the exception thrown out in the test process, and improves the automatic test efficiency of the application program.

Description

Program automation testing method and corresponding device, equipment and medium
Technical Field
The present disclosure relates to the field of computer software testing, and in particular, to a method and an apparatus for automatically testing a program, and an electronic device and a non-volatile storage medium thereof.
Background
The developed application program (APP) of the terminal device needs to be released after testing to test various performances of the APP in the running process of the terminal device, and to find potential various running problems in time, such as whether a popup window is normal, whether a business logic is correct, whether a human-computer interaction function is smooth, whether an abnormality occurs, and the like.
Due to the fact that environmental factors such as touch interaction and screen size difference exist in the testing requirements of the application program on the terminal equipment side, interaction experience of the application program is more important, and therefore the testing requirements are different from software testing on traditional desktop computer equipment, and touch response testing in the aspect of man-machine interaction is more important. Another problem with applications on the terminal device side is that the versions are changed frequently, sometimes a new version is released a week or several days, and the code involved in the new version is modified in some ways, and these modifications are sometimes also made in a whole body, so that the program testing team is often faced with a lot of testing work. Program testing is usually done manually, taking into account the randomness of human-computer interaction itself. Although manual testing may maximize user usage habits and perform some touch interaction testing, the efficiency of manual testing is conceivable. Therefore, when a new version is released, factors such as timeliness and low manual efficiency are considered, release is often promoted without comprehensive testing, new problems are often caused, and use experience is influenced.
In theory, some scripts can be written for the tested program to run, and complicated manual test operations are converted into operation commands which are automatically executed, but due to the complex and changeful state of the tested program, various exceptions can be thrown out in the running process of the tested program due to the occurrence of various business popup windows, the change of network state quality, the high and low processing speed of equipment and the like in the testing process, so that the test is interrupted. Therefore, it becomes extremely difficult and cumbersome to mechanically compile a stable and reliable test case, and it is difficult to put it into practical use.
On the other hand, in the process of developing a new program to be tested, many running performances may be affected by code modification, but the business process related to the actual interface operation is not substantially changed, in this case, the multiplexing rate of the test case is high, which is helpful to improve the test efficiency, and therefore, the multiplexing value of the test case is not negligible.
In order to integrate the existing dilemma of the test cases and the potential value thereof, in the face of the reality that a large number of application programs are continuously changed, some solutions which are helpful for improving the stability of the automatic test of the application programs are urgently needed.
Disclosure of Invention
A primary objective of the present application is to solve at least one of the above problems and provide a program automation testing method and a corresponding apparatus, an electronic device, and a non-volatile storage medium, so as to improve stability of an application automation test.
In order to meet various purposes of the application, the following technical scheme is adopted in the application:
the program automation testing method provided by adapting to one of the purposes of the application comprises the following steps:
analyzing and executing an instruction set in the test case, and monitoring the running state of the process of the tested program;
simulating a corresponding operation event according to an instruction set corresponding to the conventional test service flow represented by the test case, and controlling the tested program to run according to the conventional test service flow;
when monitoring that the routine test service flow process triggers the abnormity, simulating a corresponding operation event according to an instruction set corresponding to the abnormity processing service flow represented by the test case, and controlling the tested program to continue the routine test service flow after eliminating the abnormity.
In some embodiments, the conventional test service flow includes the following steps:
simulating a first operation event to control the process of the tested program to display a first page;
and simulating a second operation event to act on a control in the first page/simulating the second operation event to input predefined data to the first page, so that the process activates and displays the second page in response to the second operation event.
In some embodiments, the conventional test service flow includes the following steps:
triggering a simulated operational event according to the instruction set;
and judging whether the current display page switched by the tested program process in response to the operation event contains a target element object of an expected display page, and executing different branch flows in the conventional test service flow according to a judgment result.
In a preferred embodiment, when a popup is displayed in the execution process of the conventional test service flow, it is determined that an exception is thrown, so as to trigger the exception handling service flow, and in the execution process of the exception handling service flow, a corresponding operation event is simulated to close the popup.
In a further embodiment, when the instruction set in the test case is analyzed and executed, the monitoring of the running state of the process of the program to be tested is implemented according to the corresponding instruction set according to the following specific steps:
hooking an object positioning interface carried by a specific example object and used for positioning an element object of a tested program, wherein the example object encapsulates an element object list of a process of the tested program;
intercepting the call of the process of the tested program to any element object so as to enable the process of the tested program to jump and execute the next step;
calling the object positioning interface to search whether the called element object exists in the process of the tested program from the element object list, if so, returning the element object to enable the process of the tested program to continue executing, and if the element object is not searched, triggering the abnormal processing service flow.
In another embodiment adapted to the improvement of the previous embodiment, the exception handling business process includes the following steps:
checking whether the tested program process currently displays any popup window of a known type, if any popup window exists, simulating a corresponding operation event to close the corresponding operation event to finish exception clearing so as to return to the conventional test service flow;
and when any popup window of a known type is not found after the checking, calling the object positioning interface again to search whether the called element object exists in the process of the tested program, and if the searching is successful, returning to the conventional test service flow.
In a preferred embodiment, the method comprises the following pre-steps: and acquiring a test case corresponding to the characteristic information of the tested program from the server.
A program automation test device adapted to one of the objectives of the present application is provided, which includes:
the analysis execution module is used for analyzing and executing the instruction set in the test case and monitoring the running state of the process of the tested program;
the test execution module is used for simulating a corresponding operation event according to an instruction set corresponding to a conventional test service flow represented by the test case and controlling the tested program to run according to the conventional test service flow;
and the exception clearing module is configured to simulate a corresponding operation event according to an instruction set corresponding to the exception handling service flow represented by the test case when the exception triggered by the routine testing service flow process is monitored, and control the tested program to continue the routine testing service flow after the exception is eliminated.
The electronic device comprises a central processing unit and a memory, wherein the central processing unit is used for calling and running a computer program stored in the memory to execute the steps of the program automation test method.
A non-volatile storage medium, which is provided in accordance with another object of the present application, stores a computer program implemented according to the program automation testing method in the form of computer readable instructions, and when the computer program is called by a computer, executes the steps included in the method.
Compared with the prior art, the application has the following advantages:
firstly, the complicated manual operation required when the target application program is tested is converted into the conventional test service flow implemented when the test case instruction set runs, the operation event corresponding to the manual operation is simulated in a simulation mode when the instruction set in the test case runs, the tested program is driven to run according to the preset conventional test service flow, and display is switched among different service pages, so that automatic program test is realized. In the process, technical monitoring is carried out on the process of the tested program, the exceptions thrown out in the process are identified, and the exception handling business process represented by the test case is suitable for clearing the exceptions, so that the problem that the tested program cannot run according to the preset conventional test business process because the exceptions are thrown out is avoided, the business process can be continuously executed after the exceptions of the process of the tested program are cleared, the whole expected test process is smoothly completed, the automation of the application program test is realized, and the stability of the automatic test process is improved.
Secondly, the application takes the test case as a carrier, embodies the technical scheme thereof in the form of an instruction set into the test case, and the test case can be analyzed, so the application is suitable for being realized in a script form easy to edit.
In addition, the technical simulation is carried out on the operation events acting on the tested program, so that the process of the tested program can respond to the simulated operation events to call and execute corresponding interfaces, methods and functions, therefore, the same effect as that of manual operation of the tested program can be realized, and because testers are generally familiar with the relationship among display pages of the tested program during the program test, the operation events needing simulation can be referred to, so that test case codes based on the operation events are more intuitive and efficient for writers during the test case writing, and the overall efficiency of testing the application program is obviously improved.
Additional aspects and advantages of the present application will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the present application.
Drawings
The foregoing and/or additional aspects and advantages of the present application will become apparent and readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
FIG. 1 is a schematic diagram of a typical deployment architecture associated with implementing the subject technology;
FIG. 2 is a schematic flow chart diagram of an exemplary embodiment of a process automation test method of the present application;
FIG. 3 is a detailed flowchart of step S11 shown in FIG. 2;
FIG. 4 is a functional block diagram of an exemplary embodiment of a program automated test equipment of the present application;
Detailed Description
Reference will now be made in detail to embodiments of the present application, examples of which are illustrated in the accompanying drawings, wherein like or similar reference numerals refer to the same or similar elements or elements having the same or similar function throughout. The embodiments described below with reference to the drawings are exemplary only for the purpose of explaining the present application and are not to be construed as limiting the present application.
As used herein, the singular forms "a", "an", "the" 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 this specification, 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. It will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element or intervening elements may also be present. Further, "connected" or "coupled" as used herein may include wirelessly connected or wirelessly coupled. As used herein, the term "and/or" includes all or any element and all combinations of one or more of the associated listed items.
It will be understood by those within the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the prior art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
As will be appreciated by those skilled in the art, "client," "terminal," and "terminal device" as used herein include both devices that are wireless signal receivers, which are devices having only wireless signal receivers without transmit capability, and devices that are receive and transmit hardware, which have receive and transmit hardware capable of two-way communication over a two-way communication link. Such a device may include: cellular or other communication devices such as personal computers, tablets, etc. having single or multi-line displays or cellular or other communication devices without multi-line displays; PCS (Personal Communications Service), which may combine voice, data processing, facsimile and/or data communication capabilities; a PDA (Personal Digital Assistant), which may include a radio frequency receiver, a pager, internet/intranet access, a web browser, a notepad, a calendar and/or a GPS (Global Positioning System) receiver; a conventional laptop and/or palmtop computer or other device having and/or including a radio frequency receiver. As used herein, a "client," "terminal device" can be portable, transportable, installed in a vehicle (aeronautical, maritime, and/or land-based), or situated and/or configured to operate locally and/or in a distributed fashion at any other location(s) on earth and/or in space. The "client", "terminal Device" used herein may also be a communication terminal, a web terminal, a music/video playing terminal, such as a PDA, an MID (Mobile Internet Device) and/or a Mobile phone with music/video playing function, and may also be a smart tv, a set-top box, and the like.
The hardware referred to by the names "server", "client", "service node", etc. is essentially an electronic device with the performance of a personal computer, and is a hardware device having necessary components disclosed by the von neumann principle such as a central processing unit (including an arithmetic unit and a controller), a memory, an input device, an output device, etc., a computer program is stored in the memory, and the central processing unit calls a program stored in an external memory into the internal memory to run, executes instructions in the program, and interacts with the input and output devices, thereby completing a specific function.
It should be noted that the concept of "server" as referred to in this application can be extended to the case of a server cluster. According to the network deployment principle understood by those skilled in the art, the servers should be logically divided, and in physical space, the servers may be independent from each other but can be called through an interface, or may be integrated into one physical computer or a set of computer clusters. Those skilled in the art will appreciate this variation and should not be so limited as to restrict the implementation of the network deployment of the present application.
Referring to fig. 1, the hardware basis required for implementing the related art embodiments of the present application may be deployed according to the architecture shown in the figure. The server 80 referred to in this application can be used as a front-end application server, and is responsible for further connecting with related data servers, so as to form a logically related server cluster, so as to provide services for related terminal devices, such as the smart phone 81 and the personal computer shown in the figure. Both the smart phone and the personal computer may establish a data communication link with the server 80 via a known network access. The server and the smart phone can be physically connected in a USB data line or wireless mode, so that the server can make relevant technical support for the smart phone for implementing the convenience of the application, for example, an installation package of a tested process is transmitted to the smart phone and is controlled to be installed on the smart phone, and test cases are transmitted to the smart phone.
The terminal device of the application is provided with a related operating system, such as an IOS (operating system), an HMS (grand Mongolian language), an Android and other operating systems providing equivalent functions, under the support of the operating system, data communication can be performed between the server and the terminal device through a communication link agreed with each other, application programs developed for the operating systems can also run normally in the terminal device, and human-computer interaction and remote interaction are realized through the terminal device. It should be noted that the terminal device referred to in this application is a device under test, and the solution required by this application is implemented therein, although the aforementioned server 80 can provide relevant support, it is not necessary to rely on it, that is, even if the server 80 is not involved, the implementation of this application is not affected.
The application program of the present application is generally referred to as an application program running on an electronic device such as a server or a terminal device, and the application program implements the related technical solution of the present application in a programming manner, and a program code of the application program can be saved in a non-volatile storage medium that can be identified by a computer in the form of a computer executable instruction, and is called into a memory by a central processing unit to run, and the related apparatus of the present application is constructed by running the application program on the computer.
The person skilled in the art will know this: although the various methods of the present application are described based on the same concept so as to be common to each other, they may be independently performed unless otherwise specified. In the same way, for each embodiment disclosed in the present application, it is proposed based on the same inventive concept, and therefore, concepts of the same expression and concepts of which expressions are different but are appropriately changed only for convenience should be equally understood.
Referring to fig. 2, in an embodiment of a method for testing program automation, which is implemented by an application program on a terminal device side, the method includes the following steps:
step S11, analyzing and executing the instruction set in the test case, and performing monitoring on the running state of the process of the tested program:
the program under test referred to in the present application is an application program to be tested. After the tested program is installed in terminal electronic equipment such as a smart phone and runs, the tested program runs in a process mode, and program instructions are executed to realize various functions. Such electronic devices, or terminal devices, may also be referred to herein as "devices under test".
When testing a program to be tested, a tester usually triggers a series of various computer operation events corresponding to a certain business process according to the business process to complete the program test. Due to frequent version alternation, some codes are required to be tested each time, related business processes required by each test are repeated under the condition that the updating change is not large, so the business processes used by the tests can be compiled into instruction sets for analysis and execution, the instruction sets are packaged into test cases, the test cases are provided for the tested equipment to be analyzed and executed in the form of code files, and automatic testing is realized through a Hook monitoring mechanism of the tested program by a process supporting the analysis and execution of the test cases in the tested equipment.
The test case can be written in a plurality of computer languages, as long as the corresponding process at the tested device can be analyzed and executed, for example, written in python language, and in one embodiment, the process at the terminal device side in the Appium open source technology framework can be used for interpreting and executing the test case. Each test case is made into a script in a form of an instruction set formed by writing codes. As its basic function, the main task of these instruction sets is to simulate a series of operational events so that the computer system can recognize these operational events and thereby trigger the corresponding functional module of the program under test to make further responses to the corresponding operational events. It can be understood that the test case converts complex manual operation into an automatically executed operation command, thereby greatly reducing the repetitive operation of testers and improving the test efficiency.
The Appium is an open source test automation framework that can be used for native, hybrid, and mobile Web application testing, using the WebDriver protocol to drive iOS, Android, and Windows applications. The apple can simultaneously support Android and iOS in a cross-platform mode, and supports multiple languages: java, python, php, Ruby, etc. The application provides client-side Clients (WebDriverAgent in IOS and uiautomation in Android) of Server components on the Server side, and is suitable for being deployed between the tested device and the control-end device (Server 80) thereof for implementation of the test case so as to provide basic technical support related to application of the test case. This is not elaborated since the skilled person is also aware of it.
Simulation can be performed on the operation event in various ways, and one implementation way is to broadcast an event message to the system, for example, a touch event related message is broadcast in an Android system, which will cause the touch event related message to be recognized by a tested program process and trigger execution of corresponding interface, method, function and other codes in the process; in another mode, since when a certain operation event needs to be simulated, a method (function) responding to the operation event is actually to be executed, it is sufficient to directly call the method (function) responding to the operation event when the certain operation event needs to be simulated by directly monitoring the execution of the process of the target program under test. Different operating systems and development tools may allow different technical means to be used for implementing the simulation means, and even not limited to the two manners given above, and those skilled in the art can flexibly adapt the technical means provided by the operating systems or the operation tools according to the disclosure herein to achieve the purpose of simulating the operation events.
When writing a test case, a programmer generally needs to write according to a certain service flow, for example, in order to test whether switching between display pages of an application program normally complies with a certain design logic, a conventional test service flow may be written according to a change relationship between corresponding operation steps and page activities; for another example, in order to process the exception thrown in the test process, an exception handling business process may be compiled according to logic required for troubleshooting during exception handling. The exception referred to herein refers to an abnormal condition that affects the smooth execution of the test business process, including the effect caused by the occurrence of a popup on the user interface.
For example, when the application program operates normally, and a user touches a 'submit' key in a login page, a key touch operation event is theoretically generated, so that the application program executes user identity authentication, the user enters a program home page after the user identity authentication is successful, a popup is prompted after the user authentication is failed, and the user returns to the login page to re-input user authentication information for retry after canceling the popup. If a test case aiming at the process needs to be compiled, a corresponding instruction set can be compiled for the test case according to the process disclosed herein, so that when the login page is monitored to appear, a first operation event generated by touch control acting on a 'submit' key is simulated, then the change of a display page is detected, and when the interface is switched to a program home page, a second operation event adaptive to the home page can be continuously simulated to perform next test; when the interface is switched to the popup window, the third operation event corresponding to the popup window can be continuously simulated and closed. Therefore, the test case simulates a series of operation events in the form of an instruction set according to the business process to perform a test on the program under test. In this case, a test case usually includes a plurality of operation events, and an organization relationship among the operation events has a temporal precedence relationship and may also have a branch relationship, and depending on a specific situation of a service flow required during testing, the test case is written in a computer sentence that can be analyzed and executed by a device under test. It can be understood that, in the conventional test business process, there is at least one execution branch, where the time sequence relationship in which the multiple operation events are applied conforms to the scheduling sequence relationship between the display pages displayed when the program under test runs, that is, the operation events are deployed according to the normal switching sequence of the display pages when the target program runs normally.
For example, sometimes, in the process of performing a routine test on a program to be tested, due to reasons such as a logic disorder or other bugs that are not well considered in programming, an exception may be generated, and some exceptions often cause the test flow to be unable to be successfully completed as expected. Under the circumstance, the test case needs to be considered, so that the instruction set written in the test case has a business flow related to executing exception handling, and the whole test flow can be ensured to be smoothly carried out when the tested program is abnormal. In the login page of the foregoing example, if the legal user login information cannot be provided for the user, the user may not enter the home page of the tested program, and thus the conventional test service flow cannot be continued. This situation is common for applications under test provided by new shelf services, as such new shelf services may not have established a valid user account. For this situation, it is necessary to try to skip the login page and enter the home page of the program to be tested, and at this time, it is necessary that the exception handling service flow of the test case can simulate the third operation event that has been successfully logged in, and related parameters can be transmitted as needed, so that the program to be tested can be switched to the home page. In addition, in another scenario, the data acquisition interface of the program to be tested needs to acquire compliance information input by the user, but the test process cannot provide effective compliance information, which also causes the program to be tested to throw an exception, at this time, the exception handling business process can capture the exception, and then new data is provided again for trying, until the data is regarded as compliance information, exception handling can be completed, and the normal test business process is continued. It can be seen that, in the exception handling service flow, because an exception occurs, the display page that is supposed to be in the active state is converted into the inactive state by the background, possibly due to the abnormal throwing or popup, and is placed on the lower layer of the memory stack, and in this case, the page needs to be switched back to the active state from the inactive state, so that one of the third operation events may be triggered, and the inactive page is changed into the active state from the inactive state by closing the currently active popup or directly acting on the page that is currently in the inactive state.
As can be understood from the above description of the test case, the test case is essentially a program text composed of an instruction set, and it needs to be adapted to different test business processes for personalized development. On the other hand, for an application program which iterates frequently, a test case developed for an old version of the application program is generally suitable for testing a new version of the application program if page switching business processes of relevant parts do not change obviously, so that repeated development of the test case is avoided by storing and managing the test case in a server, and software engineering management efficiency is improved.
In order to store and manage a plurality of test cases of a massive target application program to be tested, a database can be established, the database is used for maintaining the mapping relation between the unique characteristics of the program to be tested and the test cases of the program to be tested, and one test case and the unique characteristic information of the corresponding program to be tested form a data record of the database together, so that the unique characteristics of a certain application program to be tested can be utilized subsequently, and one or more test cases related to the application program can be inquired and obtained from the database and used for testing the application program subsequently. Generally, the package name of the application program is the unique characteristic thereof, and the unique characteristic information can be used as the unique characteristic information to be stored in association with the test case. The database can be stored in a storage medium deployed for implementation of the technical scheme of the application, and also can be stored in the server 80 or other cloud servers as long as the process of the relevant support analysis test case in the tested device of the application can be called, so that the corresponding test case can be obtained according to the package name of the tested program. Therefore, the method and the device for testing the application programs are not only beneficial to realizing the automatic testing of the application programs, but also suitable for improving the management capacity of software engineering, and for a development team or organization responsible for developing a large number of application programs, the test cases are managed through the technical scheme of the method and the device for testing the application programs, so that the capacity of the whole organization for meeting the testing requirements of a large number of software products under the flag can be greatly improved, and the technical development cost of the organization can be further greatly saved.
In order to ensure that the instruction set of the test case can perform related tests on the tested program according to the service flow represented by the test case when the tested device is analyzed and executed, the code related to a program Hook can be embedded in the test case, namely, a Hook technology is applied to the test case, so that the specific running state of the tested program can be identified in time through a Hook related function during the running of the test case, and therefore, related operation events can be triggered on the basis of simulation, and related exceptions are processed, so that the whole test process is promoted.
It can be known that, in each operating system, to support program development testing, various information in the program running process can be packaged into objects that can be acquired, so that developers can acquire various states and data of program running through the objects, thereby supporting various program control technologies including Hook technology.
In order to enable the test case to be better analyzed and executed, a class can be customized, the class is used for carrying out extended encapsulation on the relevant states and data of the running process provided for the application program running in the operating system of the tested device, an instance object is provided on the basis, so that the relevant states and data can be more conveniently referred through the instance object, and the test case can more efficiently call various states and data of the tested program in the running process. This class may be implemented at the discretion of the developer in the implementation of the present application, according to the actual needs.
As a special case, the app technical framework extends the API of the WebDriver and basically meets the requirement of the application for calling the test case, so that when the application parses and executes the test case, as long as the WebDriver instance object provided by the app can meet the requirement of the test case and provide related state and data, the trouble of self-development can be eliminated.
It can be understood that when the device under test parses the instruction set for executing the test case, the related technical support on the device under test is already pre-configured, and therefore, the embodiment and exertion of the inventive spirit of the present application are not affected.
When the step is executed, a test case matched with the tested program provided by a user or related test cases are called from the database according to the packet name of the tested program and are led into the tested equipment, after the tested equipment completes the receiving of the test case, the analysis and the execution of the test case are started automatically or in response to an external control instruction, and the application program is tested and operated under the action of the instruction set of the test case to monitor the process of the tested program.
The corresponding process in the tested device, which is responsible for implementing the test, firstly triggers various operation events according to the conventional test service flow contained in the instruction set, controls and guides the tested program to complete the switching of each interface component, and can acquire relevant embedded point data to upload to the data server if meeting embedded point instructions. If an exception occurs in the middle, corresponding disaster recovery processing can be performed according to the exception processing business flow contained in the instruction set, and finally the execution of the whole test case is completed. Taking the above-mentioned Appium technical framework as an example, this process can be completed by the client process, as long as the relevant basic configuration is completed in advance according to the implementation requirement of the present application, so that the present application is suitable for being matched with the technical solution of the present application.
It can be understood that, in accordance with the foregoing special case regarding exception handling, when an exception handling service flow is triggered by the running of the program under test, at least one of the operation events is generated according to the description of the exception handling service flow included in the instruction set of the test case, so that one interface component of the program under test is switched from an inactive state to an active state. Therefore, the exception handling capability is provided, even if some development bugs or exception service logics exist in the tested program, the tested program can be compatible with the exception handling service flow in the test process, so that the whole test process is not interrupted or mistaken, and the test efficiency is greatly improved.
Referring to fig. 3, in an exemplary embodiment, when monitoring a process of a program under test by using the Hook technique, the monitoring may be performed according to the following steps:
step S111, hooking an object positioning interface carried by a specific instance object for positioning an element object of the tested program, where the instance object encapsulates an element object list of the process of the tested program:
the Webdriver packages an instance object, the instance object holds various states and data of a tested program process, the related states and data of each element object contained in the tested program are stored in the instance object, the instance object defines a corresponding object positioning interface for inquiring and acquiring the states and data of a target element object, the information is packaged into an element object list, and when various related information needs to be acquired, the element object list is inquired. The element object mainly refers to a computer memory object realized by basic elements of any interface component or control suitable for control in a programming level.
When an instruction set is written in a test case, a function which is relevant to realize the Hook monitoring technology is adopted to Hook an object positioning interface in the instance object. The object location interface is designed to be first responsive by the object location interface to locate an entry to the execution of the interface code segment of an element object when the element object is called. Therefore, when the object location interface is hooked, the tested program process will be heard by the test case when executing the call of any element object.
Step S112, intercepting the call of the tested program process to any element object, so that the tested program process jumps to execute the next step:
since the object positioning interface is technically hooked to realize interception, when a tested program process calls a certain element object, the tested program process is intercepted by the step, so that corresponding processing is performed after interception. Generally, the program to be tested jumps to the hook function set for monitoring to execute, and when the instruction execution of the hook function is completed, the program to be tested jumps back to the breakpoint of the program to be tested to execute. Such hook functions may be flexibly written by those skilled in the art based on the functionality disclosed herein.
Step S113, invoking the object positioning interface to search whether the called element object exists in the tested program process from the element object list, if yes, returning the element object to continue the tested program process, and if the element object is not searched, triggering the exception handling service flow:
in order to complete the monitoring process, the hook function firstly calls the object positioning interface, searches the element object which is called by the current program to be tested from the element object list, namely the element object which is called by the program to be tested before the interruption occurs because the program to be tested is intercepted, if the element object exists in the element object list, the process of the program to be tested can successfully call the element object (target element object) which the program to be tested wants to call, so that the normal execution of the conventional test service flow can be ensured, the operation of the hook function is finished, the hook function returns to the breakpoint of the program to be tested to continue the execution, and the operation of the conventional test service flow is recovered. If the target element object does not exist in the element object list, which results in a failure to find the element object, it means that the current page of the tested program process in the active state is not an expected page, and in this case, usually, a popup window is reproduced, that is, it means that an exception occurs in the normal test business process during the running process of the normal test business process, so that the hook function directly triggers the exception handling business process to clear the exception.
Through the disclosure of the specific implementation mode proposed for implementing monitoring, it can be understood that each time a tested program process calls an expected element object, a hook function provided for monitoring in a test case is triggered, then, by further checking the expected element object, whether the expected element object means that a popup window appears in a current user interface is determined, and whether a conventional test service flow is recovered or an abnormal processing service flow is triggered is determined according to an actual situation.
According to the specific steps for implementing the Hook technology, the example object adapted to the Webdriver package is programmed by adopting the Python code, and the partial reference code is as follows:
Def hookDemo(cls,driver)
accessibility_func=getattr(driver,‘find_element_by_accessibility_id)
Def wrapped)accessibility_func(*args,**kwargs):
return cls.exceptionHandleMethod(accessibility_func,driver,args,kwargs)
setattr(driver,‘find_element_by_accessibility_id’,wrapped_accessibility_func)
wherein:
driver is Webdriver instance object, the object positioning interface (api) for searching element object is the member method of the instance object;
getattr: a built-in function of Python for returning an attribute value of an element object;
find _ element _ by _ access _ id: one of the element object positioning methods is one of the member methods of the above example object. Other options for alternative implementations may be find _ element _ by _ xpath.
Drawn _ access _ function: in the method actually executed after Hook, the exceptinonhandleset called internally is a corresponding exception handling service flow, which is specifically described later.
setattr: and the Python built-in function is used for setting an attribute value and realizing the jump to the exception handling service flow by setting the attribute value through the instruction.
The basic principle of the segment code is as follows: the method comprises the steps of obtaining an object positioning interface corresponding to a Webdriver instance object through a built-in getattr function of Python, packaging the interface method and logic corresponding to a series of customized exception handling business processes into a new method, and replacing the original attribute value of the Webdriver instance object with the new function by using the built-in getattr function of Python so as to realize jump execution.
Indeed, the implementation code is only used to explain the implementation principles of the present application, and in practical applications, the present application is adapted to different programming languages and operating environments, and is not limited thereto, and those skilled in the art can flexibly deduce the present disclosure.
Step S12, simulating a corresponding operation event according to the instruction set corresponding to the conventional test service flow represented by the test case, and controlling the tested program to run according to the conventional test service flow:
in the process that the process of the tested program is resident in the memory, different computer methods are executed in response to various computer events, the execution flow of the computer methods is formed according to the occurrence sequence of the computer events, and the execution flow is different according to the occurrence types and the occurrence sequences of the computer events, so that whether and when all instructions represented by the full-scale code written in the tested program can be executed depends on whether the instructions are triggered by a certain event or not.
According to the aforementioned conventional test service flow, according to the design in advance, when the corresponding instruction set is analyzed, a series of operation events are simulated in sequence according to the instruction execution sequence, and if necessary, various preset related parameters are provided correspondingly, and the operation events cause the processes of the program to be tested to respond one by one and execute corresponding interface functions, so as to realize the call of various functions of the program to be tested. Under normal conditions, the program process to be tested completes normal operation according to the design intention of the conventional test business process.
In a schematic embodiment, in order to use the capability of the test case specific flexible multi-branch test, the conventional test business process includes the following steps:
first, an emulated operational event is triggered based on an instruction set. Specifically, the test case triggers a simulated operation event under the action of the analysis execution of the pre-written instruction set thereof, so as to act on the program under test, thereby driving the program under test to continue running.
And then, judging whether the current display page switched by the tested program process in response to the operation event contains a target element object of an expected display page, and executing different branch flows in the conventional test service flow according to a judgment result. Specifically, because a tester in the process of a tested program knows the effect of a certain operation event according to a conventional test service flow, what display page is expected to appear next, when different operation events are triggered in the same display page of the tested program, the same display page may be switched to different display pages, and the corresponding display pages are two different branch flows in the conventional test service flow, so under such a condition, sometimes it is necessary to determine which page is the current display page of the tested program. When the process needs to judge whether the tested program process displays a specific page currently, the process can be determined by searching whether the current display page of the tested program process contains a target element object of an expected display page, and if the current display page of the tested program process contains the target element object, the current display page of the tested program process is the expected display page, so that the conventional testing business process is supposed to execute a first branch process; if the target element object is not found, it indicates that the current display page of the tested program process should be another display page, and therefore means that the conventional testing business process should execute its second branch process, and so on. That is, a plurality of branch flows can be designed in the conventional test service flow by combining with a conditional judgment statement, and then different branch flows are adapted to the tested program in some links by judging the current display page of the process of the tested program in the execution process of the conventional test service flow, so that the flexibility of the program test is adapted.
To pictorially illustrate the interface operations of test cases, in some exemplary embodiments compatible with the previous embodiments, the conventional test business process may include the following steps:
firstly, for example, when the instruction set of the test case detects that the program to be tested is currently located at the interface home page, a preset first operation event is simulated, and under the action of the first operation event, the process of the program to be tested makes a corresponding response, calls and executes a corresponding interface, and controls the process of the program to be tested to display a first page;
secondly, simulating a second operation event to act on a control in the first page enables the process to activate and display the second page in response to the second operation event. The first page as previously described may include a plurality of controls, such as a link jump control, adapted to respond to the second operational event in accordance with the original design of the program under test. In this case, the test case simulates the second operation event according to the design of its own service flow, thereby causing the tested program process to make a corresponding response, and invoking and executing an interface corresponding to the test case, so that the second page in the memory is activated and displayed. On the other hand, sometimes, the simulation is not limited to the touch-control operation event, and the requirement of inputting the predefined data to the sum-line page can be met, and the second operation event is simulated to input the predefined data to the first page, so that the second page is activated and displayed.
It can be seen that through the effect of the conventional test business process, the program under test will be controlled to run, the running performance of which generally conforms to the design of the conventional test business process, unless an exception occurs as revealed by the subsequent steps.
Step S13, when it is monitored that the routine test service flow process triggers an exception, simulating a corresponding operation event according to an instruction set corresponding to the exception handling service flow represented by the test case, and controlling the tested program to continue the routine test service flow after the exception is cleared:
as described above, during the running process of the conventional test service flow, an exception may be thrown by the tested program, so as to suspend the execution of the conventional test service flow. When the test case monitors the exception in the process of analyzing and executing, the preset exception handling service flow is started to carry out further exception clearing treatment, so that the conventional test service flow is recovered after the exception is cleared, and the test process is ensured to be completely executed.
The execution process of the exception handling business process mainly comprises the following steps:
firstly, checking whether the process of the tested program is currently displaying any popup window of a known type, if any popup window exists, simulating a corresponding operation event to close the corresponding operation event, completing exception clearing, and returning to the conventional test service flow.
As described above, when the tested program process throws an exception, it will usually pop windows to the user interface, and these pop windows are also of known various types, so that it is only necessary to identify whether there is a certain known type of pop window in the current user interface and perform corresponding processing on it on the basis of implementing process monitoring. The types of the pop-up windows are generally known at the programming stage, so that a programmer can perform detection one by one according to a list of known pop-up window types.
For example, it is detected in advance whether the current pop-up window is a first type pop-up window, if so, a third operation event, that is, a touch event acting on the pop-up window is triggered, so that the detected program process receives and responds to the third operation event to close the current pop-up window, and as the pop-up window is closed by the third operation event, theoretically, the page below the pop-up window in the memory stack will be switched from the inactive state to the inactive state because the pop-up window pops up; if not, it continues to check if the current pop is a second type pop … … and so on until all known types of pops have been checked.
By implementing such detection, it is also possible to call up an element object list in an instance object provided by Webdriver, for example, to find whether there is a popup of a known type in the element object list, to determine whether the current popup belongs to the corresponding popup.
And then, when any popup window of a known type is not found after the checking, calling the object positioning interface again to search whether the called element object exists in the process of the tested program, and if the searching is successful, returning to the conventional test service flow.
It can be understood that after one-to-one detection, no popup window of any known type is found, which indicates that, in general, the current user interface should have returned to the state expected by the conventional test service flow, but other types of accidents cannot be completely eliminated, therefore, in the abnormal test service flow, the object locating interface is preferably called again to search for a target element object expected to be called by the program process at the early stage of the breakpoint of the program process to be tested, if the search is successful, it can be confirmed that the program process to be tested has run normally, and then the program process is returned to the conventional test service flow according to the test case to continue execution, otherwise, the running of the whole test case can be directly terminated, and an error is directly reported.
It can be seen that, through the above exemplary disclosure of specific steps of the exception handling business process, those skilled in the art can clearly know how to effectively handle exceptions thrown by the program process under test, thereby ensuring robust operation of the conventional test business process.
Further, a program automation test device of the present application can be constructed by functionalizing the steps of the method disclosed in the above embodiments, and according to this idea, please refer to fig. 4, wherein in an exemplary embodiment, the device includes:
the analysis execution module 11 is used for analyzing and executing the instruction set in the test case and monitoring the running state of the process of the tested program;
the test execution module 12 is configured to simulate a corresponding operation event according to an instruction set corresponding to a conventional test service flow represented by the test case, and control the program to be tested to run according to the conventional test service flow;
and the exception clearing module 13 is configured to, when it is monitored that the routine test service flow process triggers an exception, simulate a corresponding operation event according to an instruction set corresponding to the exception handling service flow represented by the test case, and control the tested program to continue the routine test service flow after eliminating the exception.
Further, to facilitate the implementation of the present application, the present application provides an electronic device, including a central processing unit and a memory, where the central processing unit is configured to call and run a computer program stored in the memory to perform the steps of the program automation test method in the foregoing embodiments.
It can be seen that the memory is suitable for adopting a nonvolatile storage medium, the aforementioned method is implemented as a computer program and installed in an electronic device such as a mobile phone or a computer, the related program code and data are stored in the nonvolatile storage medium of the electronic device, and further the program is executed by a central processing unit of the electronic device and is called from the nonvolatile storage medium to a memory for execution, so as to achieve the desired purpose of the present application. It is therefore to be understood that in an embodiment of the present application, a non-volatile storage medium may be provided, in which a computer program implemented according to various embodiments of the described method for automated testing of a program is stored, and when the computer program is called by a computer, the steps included in the method are executed.
To sum up, this application has realized the automatic test function of application, can guarantee the high stability in the automatic test process through the exception of throwing out in the automatic clear test process, promotes the automatic efficiency of software testing of application.
As will be appreciated by one skilled in the art, the present application includes apparatus that are directed to performing one or more of the operations, methods described herein. These devices may be specially designed and manufactured for the required purposes, or they may comprise known devices in general-purpose computers. These devices have computer programs stored in their memories that are selectively activated or reconfigured. Such a computer program may be stored in a device (e.g., computer) readable medium, including, but not limited to, any type of disk including floppy disks, hard disks, optical disks, CD-ROMs, and magnetic-optical disks, ROMs (Read-Only memories), RAMs (Random Access memories), EPROMs (Erasable Programmable Read-Only memories), EEPROMs (Electrically Erasable Programmable Read-Only memories), flash memories, magnetic cards, or optical cards, or any type of media suitable for storing electronic instructions, and each coupled to a bus. That is, a readable medium includes any medium that stores or transmits information in a form readable by a device (e.g., a computer).
It will be understood by those within the art that each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions. Those skilled in the art will appreciate that the computer program instructions may be implemented by a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, implement the aspects specified in the block or blocks of the block diagrams and/or flowchart illustrations disclosed herein.
Those of skill in the art will appreciate that the various operations, methods, steps in the processes, acts, or solutions discussed in this application can be interchanged, modified, combined, or eliminated. Further, other steps, measures, or schemes in various operations, methods, or flows that have been discussed in this application can be alternated, altered, rearranged, broken down, combined, or deleted. Further, steps, measures, schemes in the prior art having various operations, methods, procedures disclosed in the present application may also be alternated, modified, rearranged, decomposed, combined, or deleted.
The foregoing is only a partial embodiment of the present application, and it should be noted that, for those skilled in the art, several modifications and decorations can be made without departing from the principle of the present application, and these modifications and decorations should also be regarded as the protection scope of the present application.

Claims (10)

1. A program automation test method is characterized by comprising the following steps:
analyzing and executing an instruction set in the test case, and monitoring the running state of the process of the tested program;
simulating a corresponding operation event according to an instruction set corresponding to the conventional test service flow represented by the test case, and controlling the tested program to run according to the conventional test service flow;
when monitoring that the routine test service flow process triggers the abnormity, simulating a corresponding operation event according to an instruction set corresponding to the abnormity processing service flow represented by the test case, and controlling the tested program to continue the routine test service flow after eliminating the abnormity.
2. The method of claim 1, wherein the regular test traffic flow comprises the steps of:
simulating a first operation event to control the process of the tested program to display a first page;
and simulating a second operation event to act on a control in the first page/simulating the second operation event to input predefined data to the first page, so that the process activates and displays the second page in response to the second operation event.
3. The method of claim 1, wherein the regular test traffic flow comprises the steps of:
triggering a simulated operational event according to the instruction set;
and judging whether the current display page switched by the tested program process in response to the operation event contains a target element object of an expected display page, and executing different branch flows in the conventional test service flow according to a judgment result.
4. The method according to claim 1, wherein when a popup is displayed during the execution of the regular test service flow, it is determined that an exception is thrown, thereby triggering the exception handling service flow, and during the execution of the exception handling service flow, a corresponding operation event is simulated to close the popup.
5. The method according to claim 1, wherein when the instruction sets in the test cases are parsed and executed, the monitoring of the running state of the program process under test is performed according to the corresponding instruction sets according to the following specific steps:
hooking an object positioning interface carried by a specific example object and used for positioning an element object of a tested program, wherein the example object encapsulates an element object list of a process of the tested program;
intercepting the call of the process of the tested program to any element object so as to enable the process of the tested program to jump and execute the next step;
calling the object positioning interface to search whether the called element object exists in the process of the tested program from the element object list, if so, returning the element object to enable the process of the tested program to continue executing, and if the element object is not searched, triggering the abnormal processing service flow.
6. The method of claim 5, wherein the exception handling business process comprises the steps of:
checking whether the tested program process currently displays any popup window of a known type, if any popup window exists, simulating a corresponding operation event to close the corresponding operation event to finish exception clearing so as to return to the conventional test service flow;
and when any popup window of a known type is not found after the checking, calling the object positioning interface again to search whether the called element object exists in the process of the tested program, and if the searching is successful, returning to the conventional test service flow.
7. Method according to any of claims 1 to 6, characterized in that the method comprises the following pre-steps: and acquiring a test case corresponding to the characteristic information of the tested program from the server.
8. A program automation test device, comprising:
the analysis execution module is used for analyzing and executing the instruction set in the test case and monitoring the running state of the process of the tested program;
the test execution module is used for simulating a corresponding operation event according to an instruction set corresponding to a conventional test service flow represented by the test case and controlling the tested program to run according to the conventional test service flow;
and the exception clearing module is configured to simulate a corresponding operation event according to an instruction set corresponding to the exception handling service flow represented by the test case when the exception triggered by the routine testing service flow process is monitored, and control the tested program to continue the routine testing service flow after the exception is eliminated.
9. An electronic device comprising a central processor and a memory, wherein the central processor is configured to invoke execution of a computer program stored in the memory to perform the steps of the program automation test method according to any one of claims 1 to 7.
10. A non-volatile storage medium, characterized in that it stores, in the form of computer-readable instructions, a computer program implemented according to the method for automated testing of programs of any of claims 1 to 7, which, when invoked by a computer, performs the steps comprised by the corresponding method.
CN202011079356.0A 2020-10-10 2020-10-10 Program automation testing method and corresponding device, equipment and medium Pending CN112199284A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011079356.0A CN112199284A (en) 2020-10-10 2020-10-10 Program automation testing method and corresponding device, equipment and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011079356.0A CN112199284A (en) 2020-10-10 2020-10-10 Program automation testing method and corresponding device, equipment and medium

Publications (1)

Publication Number Publication Date
CN112199284A true CN112199284A (en) 2021-01-08

Family

ID=74013993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011079356.0A Pending CN112199284A (en) 2020-10-10 2020-10-10 Program automation testing method and corresponding device, equipment and medium

Country Status (1)

Country Link
CN (1) CN112199284A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988575A (en) * 2021-02-10 2021-06-18 北京声智科技有限公司 Automatic test method and device for multi-device system and test device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112988575A (en) * 2021-02-10 2021-06-18 北京声智科技有限公司 Automatic test method and device for multi-device system and test device

Similar Documents

Publication Publication Date Title
US7263632B2 (en) Programmatic computer problem diagnosis and resolution and automated reporting and updating of the same
US8412984B2 (en) Debugging in a cluster processing network
US20150100829A1 (en) Method and system for selecting and executing test scripts
US20150100832A1 (en) Method and system for selecting and executing test scripts
US8839202B2 (en) Test environment managed within tests
US9069902B2 (en) Software test automation
WO2007031415A2 (en) Automation structure for software verification testing
US10853227B2 (en) Systems and methods for modular test platform for applications
US20150100831A1 (en) Method and system for selecting and executing test scripts
US20150100830A1 (en) Method and system for selecting and executing test scripts
US20120005520A1 (en) Simplifying automated software maintenance of data centers
CN108399132B (en) Scheduling test method, device and storage medium
US8739146B2 (en) Systems and methods for generating and distributing executable procedures for technical desk-side support
CN106095621A (en) The restoration methods of Launcher operation exception and system in a kind of Android system
CN104487935A (en) Recording external processes
CN112199284A (en) Program automation testing method and corresponding device, equipment and medium
CN107800757B (en) User behavior recording method and device
US20140109056A1 (en) Scheduled software item testing
US20140109050A1 (en) Altering a test
CN111124919A (en) User interface testing method, device, equipment and storage medium
CN109947635B (en) Data reporting method, device, storage medium and terminal equipment
CN114297056A (en) Automatic testing method and system
CN112199283A (en) Program test control and execution method and corresponding device, equipment and medium
CN113672502A (en) Program multi-system testing method and corresponding device, equipment and medium
US20120272103A1 (en) Software operability service

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210120

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 29th floor, building B-1, Wanda Plaza, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.