CN113726609A - System test method and device, electronic device and medium - Google Patents

System test method and device, electronic device and medium Download PDF

Info

Publication number
CN113726609A
CN113726609A CN202111011537.4A CN202111011537A CN113726609A CN 113726609 A CN113726609 A CN 113726609A CN 202111011537 A CN202111011537 A CN 202111011537A CN 113726609 A CN113726609 A CN 113726609A
Authority
CN
China
Prior art keywords
data packet
segments
segment
determining
target
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.)
Granted
Application number
CN202111011537.4A
Other languages
Chinese (zh)
Other versions
CN113726609B (en
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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and 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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111011537.4A priority Critical patent/CN113726609B/en
Publication of CN113726609A publication Critical patent/CN113726609A/en
Application granted granted Critical
Publication of CN113726609B publication Critical patent/CN113726609B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The present disclosure provides a system testing method, an apparatus, an electronic device, a computer-readable storage medium, and a computer program product, which relate to the field of computers, and in particular, to the technical field of system testing and data transmission. The implementation scheme is as follows: acquiring N data packet segments sent by a sending end, wherein the data packet segments are determined based on the preset maximum message segment length, and N is a positive integer; determining a target data packet segment in the N data packet segments, wherein a target data packet field is the last data packet segment in the data packet segments sent by the sending end in the same communication process; injecting a delay of a predetermined period of time into the target data packet segment; and sending the N data packet segments to the receiving end.

Description

System test method and device, electronic device and medium
Technical Field
The present disclosure relates to the field of computers, and in particular, to the field of system testing and data transmission technologies, and in particular, to a system testing method and apparatus, an electronic device, a computer-readable storage medium, and a computer program product.
Background
Under the micro-service architecture, a plurality of modules for providing services are arranged in the system, the dependency relationship among the modules is very complex, and the traditional test is difficult to explain the performance of the system in various states, particularly abnormal states. Therefore, the industry is doing "chaotic engineering": various abnormal scenes are constructed for the system, and the system is found to have defects in fault tolerance and is promoted to be repaired.
The chaotic engineering comprises a plurality of fault experiments, wherein one of the fault experiments is of great importance, namely delay is injected between a client and a server link, and the performance of the system under the condition that the server processing is overtime is simulated. For example, the anomalies observed in this scenario may be: the client thread is filled and cannot receive new requests and service is denied. However, under the micro-service architecture, the programming languages, framework type selection and scheduling strategies of a plurality of modules have great differences, and at present, no general scheme with low enough cost is available to realize the delay injection between all client clusters and server clusters in the system.
Disclosure of Invention
The present disclosure provides a system test method, apparatus, electronic device, computer-readable storage medium, and computer program product.
According to an aspect of the present disclosure, there is provided a system testing method, the system including a transmitting end and a receiving end coupled via a network, wherein the method includes: acquiring N data packet segments sent by the sending end, wherein the data packet segments are determined based on a preset maximum message segment length, and N is a positive integer; determining a target data packet segment in the N data packet segments, wherein the target data packet field is the last data packet segment in the data packet segments transmitted by the transmitting end in the same communication process; injecting a delay of a predetermined period of time into the target data packet segment; and sending the N data packet segments to the receiving end.
According to another aspect of the present disclosure, there is provided a system test apparatus, the system including a transmitting end and a receiving end coupled via a network, wherein the apparatus includes: an obtaining unit, configured to obtain N data packet segments sent by the sending end, where the data packet segments are determined based on a preset maximum packet segment length, and N is a positive integer; a determining unit, configured to determine a target data packet segment of the N data packet segments, where the target data packet field is a last data packet segment of data packet segments sent by the sending end in a same communication process; a delay unit configured to inject a delay of a predetermined period of time into the target data packet segment; and a transmitting unit configured to transmit the N data packet segments to the receiving end.
According to another aspect of the present disclosure, there is provided an electronic device including: at least one processor; and a memory communicatively coupled to the at least one processor; the memory stores instructions executable by the at least one processor to cause the at least one processor to perform the method of the present disclosure.
According to another aspect of the present disclosure, there is provided a non-transitory computer readable storage medium storing computer instructions for causing a computer to perform the method described in the present disclosure.
According to another aspect of the disclosure, a computer program product is provided, comprising a computer program which, when executed by a processor, implements the method described in the disclosure.
According to one or more embodiments of the present disclosure, the delay of the service layer is selected to be simulated from a lower layer, namely, the network layer, without modifying service code logic, and the method has high universality and low access cost.
It should be understood that the statements in this section do not necessarily identify key or critical features of the embodiments of the present disclosure, nor do they limit the scope of the present disclosure. Other features of the present disclosure will become apparent from the following description.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the embodiments and, together with the description, serve to explain the exemplary implementations of the embodiments. The illustrated embodiments are for purposes of illustration only and do not limit the scope of the claims. Throughout the drawings, identical reference numbers designate similar, but not necessarily identical, elements.
FIG. 1 illustrates a schematic diagram of an exemplary system in which various methods described herein may be implemented, according to an embodiment of the present disclosure;
FIG. 2 shows an exemplary diagram of a client-server communication process;
FIG. 3 shows a flow diagram of a system testing method according to an embodiment of the present disclosure;
FIG. 4 illustrates a flow diagram for determining data packet fragmentation for which the data portion length is not an integer multiple of the maximum packet length in accordance with an embodiment of the disclosure;
FIG. 5 shows a schematic diagram of an operating system controlling outlet flow, according to an embodiment of the present disclosure;
FIG. 6 illustrates a flow diagram for determining a target data packet segment according to an embodiment of the present disclosure;
FIG. 7 illustrates a schematic diagram of implementing delay injection based on a queue structure, according to an embodiment of the disclosure;
FIG. 8 shows a schematic diagram of system testing at a client according to an embodiment of the present disclosure;
FIG. 9 shows a block diagram of a system test apparatus according to an embodiment of the present disclosure; and
FIG. 10 illustrates a block diagram of an exemplary electronic device that can be used to implement embodiments of the present disclosure.
Detailed Description
Exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, in which various details of the embodiments of the disclosure are included to assist understanding, and which are to be considered as merely exemplary. Accordingly, those of ordinary skill in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope of the present disclosure. Also, descriptions of well-known functions and constructions are omitted in the following description for clarity and conciseness.
In the present disclosure, unless otherwise specified, the use of the terms "first", "second", etc. to describe various elements is not intended to limit the positional relationship, the timing relationship, or the importance relationship of the elements, and such terms are used only to distinguish one element from another. In some examples, a first element and a second element may refer to the same instance of the element, and in some cases, based on the context, they may also refer to different instances.
The terminology used in the description of the various described examples in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context clearly indicates otherwise, if the number of elements is not specifically limited, the elements may be one or more. Furthermore, the term "and/or" as used in this disclosure is intended to encompass any and all possible combinations of the listed items.
Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings.
Fig. 1 illustrates a schematic diagram of an exemplary system 100 in which various methods and apparatus described herein may be implemented in accordance with embodiments of the present disclosure. Referring to fig. 1, the system 100 includes one or more client devices 101, 102, 103, 104, 105, and 106, a server 120, and one or more communication networks 110 coupling the one or more client devices to the server 120. Client devices 101, 102, 103, 104, 105, and 106 may be configured to execute one or more applications.
In embodiments of the present disclosure, the server 120 and one or more client devices 101, 102, 103, 104, 105, and 106 may each run one or more services or software applications that enable the method of system testing to be performed.
In some embodiments, the server 120 may also provide other services or software applications that may include non-virtual environments and virtual environments. In certain embodiments, these services may be provided as web-based services or cloud services, for example, provided to users of client devices 101, 102, 103, 104, 105, and/or 106 under a software as a service (SaaS) model.
In the configuration shown in fig. 1, server 120 may include one or more components that implement the functions performed by server 120. These components may include software components, hardware components, or a combination thereof, which may be executed by one or more processors. A user operating a client device 101, 102, 103, 104, 105, and/or 106 may, in turn, utilize one or more client applications to interact with the server 120 to take advantage of the services provided by these components. It should be understood that a variety of different system configurations are possible, which may differ from system 100. Accordingly, fig. 1 is one example of a system for implementing the various methods described herein and is not intended to be limiting.
A user may use client devices 101, 102, 103, 104, 105, and/or 106 to enter test instructions, etc. The client device may provide an interface that enables a user of the client device to interact with the client device. The client device may also output information to the user via the interface. Although fig. 1 depicts only six client devices, those skilled in the art will appreciate that any number of client devices may be supported by the present disclosure.
Client devices 101, 102, 103, 104, 105, and/or 106 may include various types of computer devices, such as portable handheld devices, general purpose computers (such as personal computers and laptops), workstation computers, wearable devices, smart screen devices, self-service terminal devices, service robots, gaming systems, thin clients, various messaging devices, sensors or other sensing devices, and so forth. These computer devices may run various types and versions of software applications and operating systems, such as MICROSOFT Windows, APPLE iOS, UNIX-like operating systems, Linux, or Linux-like operating systems (e.g., GOOGLE Chrome OS); or include various Mobile operating systems such as MICROSOFT Windows Mobile OS, iOS, Windows Phone, Android. Portable handheld devices may include cellular telephones, smart phones, tablets, Personal Digital Assistants (PDAs), and the like. Wearable devices may include head-mounted displays (such as smart glasses) and other devices. The gaming system may include a variety of handheld gaming devices, internet-enabled gaming devices, and the like. The client device is capable of executing a variety of different applications, such as various Internet-related applications, communication applications (e.g., email applications), Short Message Service (SMS) applications, and may use a variety of communication protocols.
Network 110 may be any type of network known to those skilled in the art that may support data communications using any of a variety of available protocols, including but not limited to TCP/IP, SNA, IPX, etc. By way of example only, one or more networks 110 may be a Local Area Network (LAN), an ethernet-based network, a token ring, a Wide Area Network (WAN), the internet, a virtual network, a Virtual Private Network (VPN), an intranet, an extranet, a Public Switched Telephone Network (PSTN), an infrared network, a wireless network (e.g., bluetooth, WIFI), and/or any combination of these and/or other networks.
The server 120 may include one or more general purpose computers, special purpose server computers (e.g., PC (personal computer) servers, UNIX servers, mid-end servers), blade servers, mainframe computers, server clusters, or any other suitable arrangement and/or combination. The server 120 may include one or more virtual machines running a virtual operating system, or other computing architecture involving virtualization (e.g., one or more flexible pools of logical storage that may be virtualized to maintain virtual storage for the server). In various embodiments, the server 120 may run one or more services or software applications that provide the functionality described below.
The computing units in server 120 may run one or more operating systems including any of the operating systems described above, as well as any commercially available server operating systems. The server 120 may also run any of a variety of additional server applications and/or middle tier applications, including HTTP servers, FTP servers, CGI servers, JAVA servers, database servers, and the like.
In some implementations, the server 120 may include one or more applications to analyze and consolidate data feeds and/or event updates received from users of the client devices 101, 102, 103, 104, 105, and 106. Server 120 may also include one or more applications to display data feeds and/or real-time events via one or more display devices of client devices 101, 102, 103, 104, 105, and 106.
In some embodiments, the server 120 may be a server of a distributed system, or a server incorporating a blockchain. The server 120 may also be a cloud server, or a smart cloud computing server or a smart cloud host with artificial intelligence technology. The cloud Server is a host product in a cloud computing service system, and is used for solving the defects of high management difficulty and weak service expansibility in the traditional physical host and Virtual Private Server (VPS) service.
The system 100 may also include one or more databases 130. In some embodiments, these databases may be used to store data and other information. For example, one or more of the databases 130 may be used to store information such as server addresses or the like. The data store 130 may reside in various locations. For example, the data store used by the server 120 may be local to the server 120, or may be remote from the server 120 and may communicate with the server 120 via a network-based or dedicated connection. The data store 130 may be of different types. In certain embodiments, the data store used by the server 120 may be a database, such as a relational database. One or more of these databases may store, update, and retrieve data to and from the database in response to the command.
In some embodiments, one or more of the databases 130 may also be used by applications to store application data. The databases used by the application may be different types of databases, such as key-value stores, object stores, or regular stores supported by a file system.
The system 100 of fig. 1 may be configured and operated in various ways to enable application of the various methods and apparatus described in accordance with the present disclosure.
Under the micro-service architecture, in a scene that delay is injected between a client and a server link to simulate system performance under the condition that the server processes overtime, the injected delay needs to be accurate enough, otherwise, the experimental effect is not convincing or user flow loss which cannot be borne may be caused. Also, in order to cover all client and server links in the system, the cost of developing the experiment must be low enough and there should be no additional resource cost consumption.
Generally, the service logic of the client may be modified, so that after the server sends the request or reads a result packet returned by the server, a delay of a period of time is added in a sleep mode or the like, so as to simulate an increase in processing time of the server. However, in a distributed system, the programming languages and scheduling frameworks of different modules are greatly different, and for each link of "client- > server" that needs to be subjected to delay injection, the code needs to be modified to increase the switch, configuration and the like, and such modification needs to invade business logic, so that the cost is high.
Or, an envoy-like proxy module may be inserted into the interactive link between the client and the server, the network request of the client is sent to the server through the proxy module, and the result of the server is returned to the client through the proxy module. And when the proxy module forwards the request packet or the result packet, a delay of a period of time is increased by means of sleep and the like. However, for each "client- > server" link that needs delay injection, a proxy module needs to be inserted, and the involved work includes: modifying the configuration, adding switches, etc., while not necessarily intruding on business logic, is also costly. In addition, the proxy module typically runs in an online environment and forwards traffic, which results in resource consumption and performance loss.
Both of the above methods are very costly for large scale applications.
In some scenarios, network tools such as tc (traffic control) may be used to inject delay into the network plane of the client and server links. Because the service interaction is based on the underlying network, the client feels like "the server gets slower" when the network delay increases. The principle is to increase the service-perceived delay by increasing the delay of the network packets. The network packets include not only the request packet and the result packet, but also a syn (synchronization) packet for establishing a connection, a fin (fin) packet for closing a connection, and the like. And when the request packet sent by the client (or the result packet returned by the server) is too large, the operating system splits the request packet into N parts for sending due to the network current-limiting policy, and each part is injected and delayed, so that the simulation effect is amplified by N times. Moreover, because a fault is injected in the network phase, the connection phase and the result reading phase of the client may be over time and fail, and the target of "increase in time consumption of the service end processing" to be simulated is greatly different. As shown in fig. 2, the request packet of the client is divided into 6 packet segments (segments) and sent to the server. When the network of the client and the server injects the delay, in addition to the impact of the SYN packet for establishing the connection, since the 6 segments of the client are sent out in 3 batches, the delay of about 3 times is injected in effect, and the expected effect cannot be achieved.
Therefore, a system test method is provided according to an embodiment of the present disclosure, the system including a transmitting end and a receiving end coupled via a network. As shown in fig. 3, the method 300 may include: acquiring N data packet segments sent by a sending end, wherein the data packet segments are determined based on a preset maximum message segment length, and N is a positive integer (step 310); determining a target data packet segment of the N data packet segments, wherein the target data packet field is a last data packet segment of the data packet segments transmitted by the transmitting end in the same communication process (step 320); injecting a delay into the target data packet segment for a predetermined period of time (step 330); and transmitting the N data packet fragments to the receiving end (step 340).
According to the embodiment of the disclosure, in order to reduce the cost of access in a link, the delay of a service layer is simulated from a lower layer, namely a network layer, without modifying service code logic, so that the universality is high and the access cost is low.
In some examples, one interaction process of the client and the server can be divided into 4 stages: (1) establishing connection between the client and the server; (2) a client sends a request; (3) the server processes the request and returns a result; (4) and the client and the server are disconnected. Although the client and the server generally use a long connection in a production environment (after the connection is established, the client and the server perform multiple interactions through the connection), the long connection between the client and the server is not always valid due to operations such as upgrading of the client or the server or reloading (reloading) of the connection relationship between the client and the server, and the client and the server need to re-establish the connection. Therefore, the requests of the client and the server to establish the connection are frequent and not negligible.
Taking the stage of sending the request by the client as an example, the client program calls the send function to send the request packet, and after the function is successfully returned, the client enters a state of waiting for the return of the server. However, at this time, the request packet of the client is not really sent to the server, and the real sending operation is performed by the underlying operating system. Therefore, if the process of sending the request packet by the operating system becomes slow, the phenomenon perceived by the client program is: "the self-sending is successful, and the return of the server terminal becomes slow". It is therefore feasible to simulate the server slowing down from the network level.
According to some embodiments, the sending end may be any one of the client and the server, and the receiving end is the other one of the client and the server. That is, the method 300 may be implemented at a client, or the method 300 may be implemented at a server.
In some examples, modules of the online system are maintained by different teams, and part of the servers are services of third parties and are not authorized to operate; alternatively, a server cluster serves multiple client clusters, and if operating in a server cluster, other traffic using the cluster may be affected. In this case, the delay injection test method needs to be performed at the client.
According to some embodiments, the method according to the present disclosure may further comprise the step of receiving a test instruction. The test instruction may include a predetermined period of time to be injected.
According to some embodiments, the test instruction may further include a target address of the receiving end to test a predetermined link. Thus, determining a target data packet segment of the N data packet segments may comprise: determining one or more first data packet segments in the N data packet segments, wherein the first data packet segment is the last data packet segment in the data packet segments transmitted by the transmitting end in the same communication process; and determining a first data packet segment with an address to be sent as the target address to serve as the target data packet segment.
In some examples, when data is transmitted via a network protocol (e.g., TCP protocol) during a communication, the data link layer defines the size of a network packet, i.e., the Maximum Transmission Unit (MTU). Taking the process of sending a request by a client based on the TCP protocol as an example, when a request packet sent by the client is too large, the operating system will split the request packet into N segments (segments), and send out the N segments, where each segment includes header information and a data portion. Wherein the header information may be predetermined and stored when the network is configured. The size of the data portion is called the maximum segment length (MSS), which is equal to the MTU minus the length of the header information. Since the first N-1 segments need to carry as much data as possible, their packet length is fixed, i.e. the length of the maximum transmission unit: sum of MSS and header information length. And the minimum value of the data part length of the last 1 segment is 1 and the maximum value is equal to the MSS. Usually, the MSS is larger than 1000, so when the size distribution of the request packets is relatively uniform, the probability that the data part length of the last 1 packet is equal to the MSS is less than 0.1%. Other possible network protocols are similar and will not be described in detail herein.
In some examples, because of network throttling, modern operating systems typically turn on segment offload (segmentation offload) functionality to improve network efficiency. The segmentation and load sharing function is a technology for carrying out segmentation on a large data packet by using a network card to replace a CPU (central processing unit) so as to reduce the load of the CPU. Taking Linux operating system as an example, after the function is opened, a packet that the operating system gives to the network card is called skb (socket buffer), and is the most basic data structure in Linux network codes. That is, the N segments (segments) obtained by splitting the operating system described above may be divided into one or more SKBs for issuing, and each SKB may include data of one or more segments. Specifically, each SKB includes the data portion of the one or more segments and a header. After the network card receives the SKB segment of which the data part length is greater than that of the MSS, the SKB segment is split into a plurality of data packet segments and sent out. Because the current-limiting queue of the Linux system acts before the network card, the strategies for network traffic delay, packet loss and the like can be based on the SKB. That is, the delay injection can be performed for the last 1 SKB segment. Therefore, in this scenario, each SKB may be fragmented as a packet. At this time, the data part length of the SKB segments other than the last SKB segment is equal to an integer multiple of the MSS, i.e., SKB ═ MSS × n + header information. The data part length of the last SKB segment may not be an integer multiple of the MSS, so the last 1 SKB segment is almost certainly not divisible by the MSS.
Thus, according to some embodiments, determining one or more first data packet segments of the N data packet segments may comprise: and determining the data packet segment of which the data part length is not integral multiple of the maximum message length in the N data packet segments as the first data packet segment. The integer multiple here includes 0 to exclude the packet fragmentation at the concatenation stage. In a general case, the obtained N data packet segments are data packet segments obtained by splitting based on a maximum message segment length (MSS) (the data part length of the first N-1 data packet segments is MSS), and at this time, the data packet segments determining that the data part length in the N data packet segments is not an integral multiple of the maximum message length are: determining a packet segment of the N packet segments whose data portion length is not MSS N (N is 0,1) to identify a last packet segment. Under the condition that an operating system generally opens a segmentation offload (SKB) function, the acquired N data packet segments are SKB segments, and at this time, a data packet segment determining that the data part length in the N data packet segments is not an integer multiple of the maximum message length is: a packet segment of the N packet segments having a data portion length of not MSS × N (where N is 0,1,2,3 …) is determined to identify the last 1 SKB segment.
Therefore, the purpose of accurate test can be achieved by identifying the last segment obtained by splitting the request packet sent in the same communication process to inject time delay into the segment. In addition, the communication process of the server side for returning the result is similar, and is not described herein again.
In the above example of data transmission via network protocol, taking the client sending request process as an example, when the request packet sent by the client is too large, the operating system will split the request packet into N segments (segments) and send out the N segments. In this case, the last 1 segment must carry a PUSH wakeup flag (e.g., PSH flag under TCP/IP protocol), which does not exist during the connection establishment and connection shutdown phases of the client and the server. The PUSH wake-up flag has a function of waking up a program of a client or a server for receiving a packet. Therefore, the PUSH wakeup flag can be identified, so that the testing phase can be more accurately limited to the client sending request phase. In addition, the communication process of the server side for returning the result is similar, and is not described herein again.
According to some embodiments, in order to precisely control the delay to 1 (rather than multiple) transmission process of the request-to-transmit stage (or the result packet return stage), determining one or more first data packet segments of the N data packet segments may include: determining data packet segments of which the data part length is not integral multiple of the maximum message length in the N data packet segments as candidate data packet segments; and in response to determining that a PUSH wakeup flag is included in a candidate data packet segment, determining the candidate data packet segment as the first data packet segment. It will be appreciated that, based on the PUSH wakeup flag, the integer multiple here may be a positive integer multiple. By identifying (1) that the data portion length is not an integer multiple of the maximum packet length and (2) that the data packet segment includes a PUSH wakeup flag, a more accurate delay control is achieved.
It will be understood that it is not required that all of the described steps or operations be performed in the particular order described, nor that all of the described steps or operations be performed to achieve desirable results. For example, the step of determining whether the data packet fragment contains a wakeup flag may also be performed before the step of determining whether the data portion length is an integer multiple of the maximum packet length.
Thus, according to some embodiments, as shown in fig. 4, determining a data packet segment of the N data packet segments whose data portion length is not an integer multiple of the maximum packet length may include: obtaining a packet length for each of the N data packet segments (step 410); determining a header information length of the packet fragment (step 420); and determining data packet fragments of which the data part length is not an integral multiple of the maximum message length among the N data packet fragments based on the packet length and the header information length (step 430).
Illustratively, after acquiring the packet length of one of the data packet segments, the preset header information length may be further determined. Therefore, whether the data part length obtained by subtracting the header information length from the packet length is an integral multiple of the maximum message length can be further determined.
In some examples, the data portion length of the data packet segment may also be directly obtained, and is not limited herein.
In some embodiments, system traffic may be assigned different processing orders according to different priorities, such as traffic interacting with the system after a user logs into the system should be assigned a higher priority than downloaded traffic. Therefore, in order to implement the capability of controlling network traffic according to priority, etc., taking the Linux system as an example, fig. 5 shows a basic mode of controlling egress traffic by Linux. As shown in fig. 5, the traffic sent by the system kernel first enters the root queue, then enters a certain sub-queue and a sub-queue of the sub-queue according to a specified manner, and is sent out through the network card. And some queues can be assigned with customized strategies such as priority, delay, packet loss and the like.
According to some embodiments, the method of the present disclosure may further comprise: a queue structure is constructed that includes a root queue and a plurality of child queues. It is to be understood that the plurality of sub-queues may include a sub-queue of the root queue and a sub-queue of the sub-queue, and is not limited herein. The plurality of sub-queues includes a target sub-queue. Thus, as shown in fig. 6, determining a target data packet segment of the N data packet segments (step 320) may comprise: sending the N data packet segments to a root queue (step 610); sequentially judging whether the N data packet segments are target data packet segments (step 620); storing the determined target data packet segment into a target sub-queue (step 630); and storing the other of the N data packet segments except the target data packet segment into the other of the sub-queues except the target sub-queue (step 640).
According to some embodiments, injecting a delay of a predetermined period of time into the target data packet segment may include: a delay of a predetermined period of time is injected into each data packet segment in the target sub-queue.
In some examples, the hierarchy of the constructed queues, the connection mode, and the selection policy of traffic among the plurality of sub-queues, and the simulated failure of network traffic may be controlled by, for example, a tc (traffic control) tool. It is understood that any other suitable method of modifying the network configuration of the operating system is possible and not limiting herein.
According to the above, taking the client sending the request packet as an example, as long as the control operating system delays the last 1 segment (or SKB) of the request packet sent by the client by the specified time, the time consumed by the server processing can be accurately simulated and increased by the time. In some embodiments, the means for identifying the last packet segment includes: "has a PUSH flag and the data section length is not divisible by the MSS". The TC tool can identify any field in the network packet, and can determine whether the request packet is the last data packet segment by taking the packet length and 2 pieces of information about the PUSH flag from the header information of the request packet. If yes, the request packet is added into a queue (namely a target sub-queue) needing delay injection, and the request packet in the queue is delayed for a specified time and then sent out through the network card.
In some embodiments, modifications may be made to the network configuration of the operating system by the TC tool. Therefore, the network traffic sent by all programs running on the os is checked to determine whether the size of the data portion is an integer multiple of the MSS, or further determine whether the to-be-sent address (ip: port) of the packet is in the address list of the server. Since the data part size in the SKB is generally expressed by 16 bits (bit), and the maximum can express 65535 bytes, the integral multiple of the MSS has 65535/MSS. Similarly, in a distributed system, the size of a server cluster may reach thousands (set to X) of servers, and so many addresses need to be compared in sequence. If each data packet sent by the system is compared (65535/MSS) + X times, a large amount of CPU resources are consumed.
Therefore, according to some embodiments, when determining whether the data part length of the N data packet fragments is an integer multiple of the maximum message length (MSS), the method may include: acquiring packet length information of each data packet segment of the N data packet segments; and performing bucket splitting on the N data packet segments based on the packet length information to determine the data packet segments with the packet length not being integral multiple of the maximum message length based on the bucket splitting result.
For example, a bucket operation may be performed for the fourth byte of a network packet (the lower byte of a 2-byte network packet length), then it may be determined which bucket or buckets the packet falls into is most likely an integer multiple of the maximum packet length. In particular, it can be determined how many possibilities an integer multiple of the MSS is possible given the maximum byte currently achievable. For example, it is determined that the data portion of a packet fragment may be 60 times the MSS maximum, and then all values of the packet length (equal to MSS x n + header information) are possible when n is sequentially valued in {0,1,2 …,60 }. Thus, after performing a binning operation based on the packet length information, it can be determined which of the buckets have a data packet fragment that is most likely an integer multiple of the maximum packet length. Thus, the data packet segments in other buckets may be deemed to have data portion lengths that are not integer multiples of the maximum packet length. Therefore, the comparison times are greatly reduced, and the resource consumption is reduced.
It is understood that the number of buckets and the allocation policy of the data packet fragments in each bucket (based on the packet length information) can be specifically set, and is not limited herein.
According to some embodiments, determining the first packet segment whose address to be sent is the destination address may comprise: acquiring a to-be-sent address of each of one or more first data packet segments; and based on preset bytes in the address to be sent, performing bucket dividing on one or more first data packet segments, and determining the address to be sent as the first data packet segment of the target address based on a bucket dividing result.
According to some embodiments, the preset byte may include one or more IP fields, port numbers, and the like.
For example, a bucket operation may be performed for the third byte of the "destination IP" field in the network packet, and then the address of the network packet falling into the 255 th bucket must satisfy x.x.255.x. If the 3 rd byte of the IP address of only 1 server is 255, say equal to 10.10.255.10:8000, then for network packets falling in this bucket, it can be considered as traffic sent to the server cluster as long as it is further determined that its address to be sent IP is equal to 10.10.255.10 and the destination port number is 8000. And meanwhile, the comparison times are greatly reduced, and the resource consumption is reduced.
In some embodiments, the predetermined bytes in the address to be sent and the packet length information may be respectively subjected to a bucket dividing operation, so that the comparison times are further reduced, and thus the resource consumption of the system during fault injection may be negligibly low.
In the above embodiment of modifying the network configuration of the operating system by using the TC tool, the above bucket dividing operation may be implemented based on a hash key (hashkey) function of a u32 filter of the TC tool. This function may compute a hash value based on a field (consecutive 1 or more bytes) of the network packet and perform the binning based on the hash value.
Thus, according to some embodiments, bucketing the N data packet segments based on packet length information may include: performing hash calculation on preset bytes of the packet length information; and performing bucket partitioning on the N data packet segments based on the calculation result.
According to some embodiments, the bucketing of the one or more first packet segments based on the preset bytes in the address to be sent may comprise: performing Hash calculation on data of preset bytes; and bucketing the one or more first packet segments based on the computation.
In one embodiment according to the present disclosure, a queue structure as shown in FIG. 7 is constructed. As shown in fig. 7, the queue structure includes 3 queues, i.e. 1 root queue and 2 sub-queues (other queues and target queues), where a "target queue" is a queue that needs to perform a delay operation and is allocated to a determined target packet queue as long as it is the determined target packet queue. The basic logic of the queue is: after network flow enters a root queue, the packet length is matched in a high priority mode, if the size of a data part in a packet is an integral multiple of MSS, the data part is put into other queues, and in the process, barrel dividing operation can be carried out based on a hash result to accelerate comparison speed. The "other queue" may be one or more queues, wherein when the "other queue" includes a plurality of queues, the allocation policy of the data packet segments in the plurality of queues may be specifically configured in any suitable manner, and is not limited herein. Further, if the size of the data part in the packet is not an integral multiple of the MSS, low-priority matching is performed again, and the low-priority matching only needs to consider whether the target address to be sent of the SKB is the ip: port of the server. If the target address to be sent of the SKB is in the ip: port list corresponding to the server, the target address to be sent of the SKB is added into a target queue, otherwise, the target address to be sent of the SKB is distributed to other queues. It will be appreciated that in high-priority operation, in addition to matching packet lengths, it may be determined whether it contains a corresponding PUSH wakeup flag.
FIG. 8 shows a schematic diagram of system testing at a client according to an embodiment of the disclosure. As shown in FIG. 8, the central control module may be used to interact with a user to receive test instructions from the user. After receiving a delay injection instruction of a user, deploying and starting an agent module on a specified machine of the client cluster. The central control module can send the ip: port list of the target server cluster and the delay time needing to be injected to the proxy module. After the agent module is started, a TC command can be called to construct a queue structure and a distribution strategy of flow among the queue structures, and then the corresponding data packets can be injected with preset delay time in a segmented mode.
Illustratively, the commands to implement the desired allocation policy may be as follows:
Figure BDA0003239116030000151
Figure BDA0003239116030000161
according to the method disclosed by the invention, the service code logic does not need to be modified, the requirements on the realization language, the programming framework and the like of the client and the service end module are not required, the universality is very high, and the access cost is very low; and the on-line state can be recovered after the test is quitted, and the resources are not occupied in a normal state.
According to an embodiment of the present disclosure, as shown in fig. 9, a system test apparatus 900 is also provided. The system includes a transmitting end and a receiving end coupled via a network. The apparatus 900 may include: an obtaining unit 910, configured to obtain N data packet segments sent by the sending end, where the data packet segments are determined based on a preset maximum packet segment length, and N is a positive integer; a determining unit 920, configured to determine a target data packet segment of the N data packet segments, where the target data packet field is a last data packet segment of data packet segments sent by the sender in a same communication process; a delay unit 930 configured to inject a delay of a predetermined period of time into the target data packet segment; and a transmitting unit 940 configured to transmit the N data packet fragments to the receiving end.
Here, the operations of the above units 910 to 940 of the system testing apparatus 900 are similar to the operations of the steps 310 to 340 described above, and are not described herein again.
In the technical scheme of the disclosure, the collection, storage, use, processing, transmission, provision, disclosure and other processing of the personal information of the related user are all in accordance with the regulations of related laws and regulations and do not violate the good customs of the public order.
According to an embodiment of the present disclosure, there is also provided an electronic device, a readable storage medium, and a computer program product.
Referring to fig. 10, a block diagram of a structure of an electronic device 1000, which may be a server or a client of the present disclosure, which is an example of a hardware device that may be applied to aspects of the present disclosure, will now be described. Electronic device is intended to represent various forms of digital electronic computer devices, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions, are meant to be examples only, and are not meant to limit implementations of the disclosure described and/or claimed herein.
As shown in fig. 10, the apparatus 1000 includes a computing unit 1001 that can perform various appropriate actions and processes according to a computer program stored in a Read Only Memory (ROM)1002 or a computer program loaded from a storage unit 1008 into a Random Access Memory (RAM) 1003. In the RAM 1003, various programs and data necessary for the operation of the device 1000 can also be stored. The calculation unit 1001, the ROM 1002, and the RAM 1003 are connected to each other by a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.
A number of components in device 1000 are connected to I/O interface 1005, including: input section 1006, output section 1007, storage section 1008, and communication section 1009. Input unit 1006 may be any type of device capable of inputting information to device 1000, and input unit 1006 may receive input numeric or character information and generate key signal inputs related to user settings and/or function controls of the electronic device, and may include, but is not limited to, a mouse, a keyboard, a touch screen, a track pad, a track ball, a joystick, a microphone, and/or a remote control. Output unit 1007 may be any type of device capable of presenting information and may include, but is not limited to, a display, speakers, a video/audio output terminal, a vibrator, and/or a printer. The storage unit 1008 may include, but is not limited to, a magnetic disk, an optical disk. The communications unit 1009 allows the device 1000 to exchange information/data with other devices via a computer network, such as the internet, and/or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and/or chipsets, such as bluetooth (TM) devices, 1302.11 devices, WiFi devices, WiMax devices, cellular communication devices, and/or the like.
Computing unit 1001 may be a variety of general and/or special purpose processing components with processing and computing capabilities. Some examples of the computing unit 1001 include, but are not limited to, a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), various dedicated Artificial Intelligence (AI) computing chips, various computing units running machine learning model algorithms, a Digital Signal Processor (DSP), and any suitable processor, controller, microcontroller, and so forth. The computing unit 1001 performs the various methods and processes described above, such as the method 300. For example, in some embodiments, the method 300 may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as the storage unit 1008. In some embodiments, part or all of the computer program may be loaded and/or installed onto device 1000 via ROM 1002 and/or communications unit 1009. When the computer program is loaded into RAM 1003 and executed by computing unit 1001, one or more steps of method 300 described above may be performed. Alternatively, in other embodiments, the computing unit 1001 may be configured to perform the method 300 in any other suitable manner (e.g., by way of firmware).
Various implementations of the systems and techniques described here above may be implemented in digital electronic circuitry, integrated circuitry, Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs), system on a chip (SOCs), load programmable logic devices (CPLDs), computer hardware, firmware, software, and/or combinations thereof. These various embodiments may include: implemented in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, receiving data and instructions from, and transmitting data and instructions to, a storage system, at least one input device, and at least one output device.
Program code for implementing the methods of the present disclosure may be written in any combination of one or more programming languages. These program codes may be provided to a processor or controller of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the program codes, when executed by the processor or controller, cause the functions/operations specified in the flowchart and/or block diagram to be performed. The program code may execute entirely on the machine, partly on the machine, as a stand-alone software package partly on the machine and partly on a remote machine or entirely on the remote machine or server.
In the context of this disclosure, a machine-readable medium may be a tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. The machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples of a machine-readable storage medium would include an electrical connection based on one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to a user; and a keyboard and a pointing device (e.g., a mouse or a trackball) by which a user can provide input to the computer. Other kinds of devices may also be used to provide for interaction with a user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user may be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: local Area Networks (LANs), Wide Area Networks (WANs), and the Internet.
The computer system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. The server may be a cloud server, a server of a distributed system, or a server with a combined blockchain.
It should be understood that various forms of the flows shown above may be used, with steps reordered, added, or deleted. For example, the steps described in the present disclosure may be performed in parallel, sequentially or in different orders, and are not limited herein as long as the desired results of the technical solutions disclosed in the present disclosure can be achieved.
Although embodiments or examples of the present disclosure have been described with reference to the accompanying drawings, it is to be understood that the above-described methods, systems and apparatus are merely exemplary embodiments or examples and that the scope of the present invention is not limited by these embodiments or examples, but only by the claims as issued and their equivalents. Various elements in the embodiments or examples may be omitted or may be replaced with equivalents thereof. Further, the steps may be performed in an order different from that described in the present disclosure. Further, various elements in the embodiments or examples may be combined in various ways. It is important that as technology evolves, many of the elements described herein may be replaced with equivalent elements that appear after the present disclosure.

Claims (20)

1. A method of testing a system comprising a transmitting end and a receiving end coupled via a network, wherein the method comprises:
acquiring N data packet segments sent by the sending end, wherein the data packet segments are determined based on a preset maximum message segment length, and N is a positive integer;
determining a target data packet segment in the N data packet segments, wherein the target data packet field is the last data packet segment in the data packet segments transmitted by the transmitting end in the same communication process;
injecting a delay of a predetermined period of time into the target data packet segment; and
and sending the N data packet segments to the receiving end.
2. The method of claim 1, further comprising: receiving a test instruction, wherein the test instruction comprises the predetermined time period.
3. The method of claim 2, wherein the test instruction further comprises a target address of the receiving end, wherein,
determining a target data packet segment of the N data packet segments comprises:
determining one or more first data packet segments in the N data packet segments, wherein the first data packet segment is the last data packet segment in the data packet segments transmitted by the transmitting end in the same communication process; and
and determining a first data packet segment with a to-be-sent address as the target address to serve as the target data packet segment.
4. The method of claim 3, wherein determining one or more first data packet segments of the N data packet segments comprises:
and determining the data packet segment of which the data part length is not integral multiple of the maximum message length in the N data packet segments as the first data packet segment.
5. The method of claim 3, wherein determining one or more first data packet segments of the N data packet segments comprises:
determining data packet segments of which the data part length is not integral multiple of the maximum message length in the N data packet segments as candidate data packet segments; and
determining the candidate data packet segment as the first data packet segment in response to determining that a wake-up flag is included in the candidate data packet segment.
6. The method of claim 4 or 5, wherein determining the data packet fragments of the N data packet fragments whose data portion lengths are not integer multiples of the maximum packet length comprises:
obtaining a packet length of each of the N data packet segments;
determining a header information length of the data packet segment; and
and determining the data packet segments of which the data part length is not integral multiple of the maximum message length in the N data packet segments based on the packet length and the header information length.
7. The method of claim 1, further comprising: constructing a queue structure, wherein the queue structure comprises a root queue and a plurality of sub-queues, the plurality of sub-queues comprise target sub-queues,
wherein determining a target data packet segment of the N data packet segments comprises:
sending the N data packet segments to the root queue;
sequentially judging whether the N data packet segments are target data packet segments;
storing the determined target data packet into the target sub-queue in a segmented manner; and
and storing other data packet segments except the target data packet segment in the N data packet segments into other queues except the target sub-queue in the sub-queues.
8. The method of claim 7, wherein injecting the delay of the predetermined period of time into the target data packet segment comprises:
injecting a delay of the predetermined period of time to each data packet segment in the target sub-queue.
9. The method of claim 4 or 5, wherein determining the data packet fragments of the N data packet fragments whose data portion lengths are not integer multiples of the maximum packet length comprises:
acquiring packet length information of each data packet segment of the N data packet segments; and
and partitioning the N data packet segments based on the packet length information to determine data packet segments with packet lengths not being integer multiples of the maximum packet length based on the partitioning result.
10. The method of claim 9, wherein determining a first packet segment whose address to be sent is the destination address comprises:
acquiring a to-be-sent address of each of the one or more first data packet segments; and
and based on preset bytes in the address to be sent, performing bucket dividing on the one or more first data packet segments, and determining the address to be sent as the first data packet segment of the target address based on a bucket dividing result.
11. The method of claim 9, wherein the bucketing the N data packet segments based on the packet length information comprises:
performing hash calculation on preset bytes of the packet length information; and
and carrying out bucket distribution on the N data packet segments based on the calculation result.
12. The method of claim 10, wherein the bucketing the one or more first packet segments based on preset bytes in the address to be sent comprises:
performing hash calculation on the preset bytes in the address to be sent; and
bucketing the one or more first packet segments based on the computation.
13. The method of claim 10 or 12, wherein the preset bytes comprise at least one of: one or more IP fields, port numbers.
14. The method of claim 1, wherein the transmitting end is any one of a client and a server, and the receiving end is the other one of the client and the server.
15. A system test apparatus, the system including a transmitting end and a receiving end coupled via a network, wherein the apparatus comprises:
an obtaining unit, configured to obtain N data packet segments sent by the sending end, where the data packet segments are determined based on a preset maximum packet segment length, and N is a positive integer;
a determining unit, configured to determine a target data packet segment of the N data packet segments, where the target data packet field is a last data packet segment of data packet segments sent by the sending end in a same communication process;
a delay unit configured to inject a delay of a predetermined period of time into the target data packet segment; and
a sending unit configured to send the N data packet segments to the receiving end.
16. The apparatus of claim 15, further comprising: a unit to receive a test instruction, wherein the test instruction includes the predetermined time period.
17. The apparatus of claim 16, wherein the test instruction comprises a target address of the recipient, wherein,
the means for determining a target data packet segment of the N data packet segments comprises:
means for determining one or more first data packet fragments of the N data packet fragments, wherein the first data packet fragment is a last data packet fragment of data packet fragments transmitted by the transmitting end in a same communication process; and
means for determining a first packet segment addressed to the destination address to be sent as the destination packet segment.
18. An electronic device, comprising:
at least one processor; and
a memory communicatively coupled to the at least one processor; wherein
The memory stores instructions executable by the at least one processor to enable the at least one processor to perform the method of any one of claims 1-14.
19. A non-transitory computer readable storage medium having stored thereon computer instructions for causing the computer to perform the method of any one of claims 1-14.
20. A computer program product comprising a computer program, wherein the computer program realizes the method of any one of claims 1-14 when executed by a processor.
CN202111011537.4A 2021-08-31 2021-08-31 System test method, apparatus, electronic device, and medium Active CN113726609B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111011537.4A CN113726609B (en) 2021-08-31 2021-08-31 System test method, apparatus, electronic device, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111011537.4A CN113726609B (en) 2021-08-31 2021-08-31 System test method, apparatus, electronic device, and medium

Publications (2)

Publication Number Publication Date
CN113726609A true CN113726609A (en) 2021-11-30
CN113726609B CN113726609B (en) 2022-09-20

Family

ID=78679633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111011537.4A Active CN113726609B (en) 2021-08-31 2021-08-31 System test method, apparatus, electronic device, and medium

Country Status (1)

Country Link
CN (1) CN113726609B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676062A (en) * 2022-04-06 2022-06-28 北京百度网讯科技有限公司 Method and device for testing difference data of interface, electronic equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150288570A1 (en) * 2014-04-07 2015-10-08 International Business Machines Corporation Introducing Latency And Delay In A SAN Environment
CN106953756A (en) * 2017-03-17 2017-07-14 腾讯科技(深圳)有限公司 The simulation time-delay method and server of a kind of business datum
CN109257224A (en) * 2018-10-08 2019-01-22 武汉达梦数据库有限公司 A kind of database communication network test simulation method and device
US20210058149A1 (en) * 2019-08-22 2021-02-25 Skylo Technologies, Inc. Hub communication with a satellite network or a terrestrial network
US20210089418A1 (en) * 2020-07-27 2021-03-25 Intel Corporation In-system validation of interconnects by error injection and measurement

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150288570A1 (en) * 2014-04-07 2015-10-08 International Business Machines Corporation Introducing Latency And Delay In A SAN Environment
CN106953756A (en) * 2017-03-17 2017-07-14 腾讯科技(深圳)有限公司 The simulation time-delay method and server of a kind of business datum
CN109257224A (en) * 2018-10-08 2019-01-22 武汉达梦数据库有限公司 A kind of database communication network test simulation method and device
US20210058149A1 (en) * 2019-08-22 2021-02-25 Skylo Technologies, Inc. Hub communication with a satellite network or a terrestrial network
US20210089418A1 (en) * 2020-07-27 2021-03-25 Intel Corporation In-system validation of interconnects by error injection and measurement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
苗佳旺等: "AFDX网络系统测试设计与实现", 《计算机测量与控制》, no. 05, 25 May 2018 (2018-05-25) *
赵志龙等: "一种面向文件系统的通用故障注入工具", 《计算机工程》, no. 07, 15 July 2013 (2013-07-15) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114676062A (en) * 2022-04-06 2022-06-28 北京百度网讯科技有限公司 Method and device for testing difference data of interface, electronic equipment and medium

Also Published As

Publication number Publication date
CN113726609B (en) 2022-09-20

Similar Documents

Publication Publication Date Title
US10754686B2 (en) Method and electronic device for application migration
CN112925651A (en) Application resource deployment method, device, electronic equipment and medium
JP2021121959A (en) Scheduling method for deep layer learning inference engine, device, equipment and medium
CN112925652B (en) Application resource deployment method, device, electronic equipment and medium
CN113726609B (en) System test method, apparatus, electronic device, and medium
CN112905314A (en) Asynchronous processing method and device, electronic equipment, storage medium and road side equipment
CN113656423A (en) Method and device for updating data, electronic equipment and storage medium
CN114359017B (en) Multimedia resource processing method and device and electronic equipment
CN115599651A (en) Application system testing method and device, electronic equipment and storage medium
CN115544042A (en) Cached information updating method and device, equipment and medium
CN115391041A (en) Task processing method and device, electronic equipment and storage medium
CN115639953A (en) Data migration method and device
CN114095564A (en) Data processing method and device, equipment and medium
CN114205414A (en) Data processing method, device, electronic equipment and medium based on service grid
CN113760403A (en) State machine linkage method and device
CN112583897A (en) Data destination creating method and device of rule engine, electronic equipment and storage medium
CN112187570A (en) Risk detection method and device, electronic equipment and readable storage medium
CN115334159B (en) Method, apparatus, device and medium for processing stream data
CN115145618A (en) Service version updating method and device, electronic equipment and storage medium
CN115756611A (en) Branch instruction processing method and device, equipment and medium
CN117201481A (en) Method and device for downloading software update file, electronic equipment and readable medium
CN116016373A (en) Method, device, equipment and medium for sending data processing request
CN115934178A (en) Code running method and device, electronic equipment and storage medium
CN116541090A (en) Data processing method, device, equipment and medium
CN116599895A (en) Data transmission method, device, equipment and medium

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
GR01 Patent grant
GR01 Patent grant