CN113641576B - 数据库的测试方法、装置及终端设备 - Google Patents

数据库的测试方法、装置及终端设备 Download PDF

Info

Publication number
CN113641576B
CN113641576B CN202110910502.8A CN202110910502A CN113641576B CN 113641576 B CN113641576 B CN 113641576B CN 202110910502 A CN202110910502 A CN 202110910502A CN 113641576 B CN113641576 B CN 113641576B
Authority
CN
China
Prior art keywords
data packet
database
tested
handshake
login message
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.)
Active
Application number
CN202110910502.8A
Other languages
English (en)
Other versions
CN113641576A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud 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 Beijing Kingsoft Cloud Network Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN202110910502.8A priority Critical patent/CN113641576B/zh
Publication of CN113641576A publication Critical patent/CN113641576A/zh
Application granted granted Critical
Publication of CN113641576B publication Critical patent/CN113641576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • 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
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种数据库的测试方法、装置及终端设备,包括:获取目标线上环境的原始数据包;基于原始数据包生成模拟数据包;其中,模拟数据包用于模拟客户端与被测数据库之间的测试线上环境;将模拟数据包发送至被测数据库,并接收被测数据库基于模拟数据包生成的反馈数据包;基于反馈数据包和原始数据包,确定被测数据库的测试结果。本发明可以较好地改善数据库测试效果。

Description

数据库的测试方法、装置及终端设备
技术领域
本发明涉及数据库测试技术领域,尤其是涉及一种数据库的测试方法、装置及终端设备。
背景技术
目前,为对数据库进行测试,需要模拟生产环境或者单元测试,并准备所需的测试用例,从而利用测试用例对数据库的各项功能进行验证。然而,由于数据库的分支较多、应用场景较为复杂,测试用例相较于生产环境又较为单一,导致模拟的生产环境与实际生产环境存在一定差异,无法达到实际生产环境的复杂度,从而致使数据库的测试效果较差。
发明内容
有鉴于此,本发明的目的在于提供一种数据库的测试方法、装置及终端设备,可以较好地改善数据库测试效果。
第一方面,本发明实施例提供了一种数据库的测试方法,所述方法应用于客户端,所述客户端与被测数据库通信连接,所述方法包括:获取目标线上环境的原始数据包;基于所述原始数据包生成模拟数据包;其中,所述模拟数据包用于模拟所述客户端与所述被测数据库之间的测试线上环境;将所述模拟数据包发送至所述被测数据库,并接收所述被测数据库基于所述模拟数据包生成的反馈数据包;基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果。
在一种实施方式中,所述基于所述原始数据包生成模拟数据包的步骤,包括:基于所述原始数据包,计算出所述客户端与所述被测数据库进行握手时产生的中间数据包;其中,所述中间数据包至少包含第一握手序列号和第一登录报文;修改所述第一登录报文中的地址信息得到第二登录报文,并基于所述第一握手序列号和所述第二登录报文得到模拟数据包;其中,所述模拟数据包括所述第二登录报文,所述第二登录报文中的地址信息与所述被测数据库的地址信息一致。
在一种实施方式中,所述基于所述原始数据包,推算出所述客户端与所述被测数据库进行握手时产生的中间数据包的步骤,包括:对于所述客户端与所述被测数据库进行的每次握手,对所述原始数据包内的第二握手序列号进行递减得到该次握手的第一握手序列号,并根据所述第一握手序列号确定该次握手的第一登录报文;基于所述第一握手序列号和所述第一登录报文确定中间数据包。
在一种实施方式中,所述将所述模拟数据包发送至所述被测数据库的步骤,包括:对所述模拟数据包进行解析处理得到多条待发送数据;分别将每条所述待发送数据发送至所述被测数据库,以使所述被测数据库针对每条所述待发送数据发送反馈数据包。
在一种实施方式中,所述基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果的步骤,包括:判断所述反馈数据包内的第四登录报文与所述原始数据包内的第三登录报文是否一致;如果是,确定所述被测数据库的测试结果为正常;如果否,确定所述被测数据库的测试结果为异常。
在一种实施方式中,所述获取目标线上环境的原始数据包的步骤,包括:利用预设工具从目标线上环境抓取原始数据包;其中,所述预设工具包括tcpdump工具。
在一种实施方式中,所述方法还包括:将目标线上环境的备份数据包导入至所述被测数据库。
第二方面,本发明实施例还提供一种数据库的测试装置,所述装置应用于客户端,所述客户端与被测数据库通信连接,所述装置包括:原始数据包获取模块,用于获取目标线上环境的原始数据包;模拟数据包生成模块,用于基于所述原始数据包生成模拟数据包;其中,所述模拟数据包用于模拟所述客户端与所述被测数据库之间的测试线上环境;反馈数据包接收模块,用于将所述模拟数据包发送至所述被测数据库,并接收所述被测数据库基于所述模拟数据包生成的反馈数据包;结果确定模块,用于基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果。
第三方面,本发明实施例还提供一种终端设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现第一方面提供的任一项所述的方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面提供的任一项所述的方法。
本发明实施例提供的一种数据库的测试方法、装置及终端设备,首先获取模板线上环境的原始数据包,并基于原始数据包生成模拟数据包,将模拟数据包发送至被测数据库,并接收被测数据库基于模拟数据包生成的反馈数据包,从而基于反馈数据包和原始数据包,确定被测数据库的测试结果。上述方法利用原始数据包生成用于模拟客户端与被测数据库之间的测试线上环境的模拟数据包,利用目标线上环境丰富多样、SQL(StructuredQuery Language,结构化查询语言)语句复杂、应用案例成熟等优势,模拟客户端与被测数据库之间的测试线上环境,从而将模拟数据包发送至被测数据库,以基于被测数据库反馈的反馈数据包和原始数据表,确定被测数据库的测试结果,可以更好得模拟实际生产环境,从而显著改善数据库测试效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据库的测试方法的流程示意图;
图2为本发明实施例提供的另一种数据库的测试方法的流程示意图;
图3为本发明实施例提供的一种数据库的测试装置的结构示意图;
图4为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,相关技术提供的数据库测试方法中,模拟测试用例无法覆盖数据库全部功能,与生产环境实际运行的效果有些差异,而且模拟的业务场景的复杂度、表结构的复杂性、SQL语句的多样性,均无法达到实际生产环境的复杂度,而且现有测试用例相比实际生产环境较为单一。另外,在利用测试用例对数据库进行测试后,将无法模拟生产环境进一步测试,因此,现有数据库测试方法的测试效果较差。基于此,本发明实施提供了一种数据库的测试方法、装置及终端设备,可以较好地改善数据库测试效果。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据库的测试方法进行详细介绍,该方法应用于客户端,客户端与被测数据库通信连接,参见图1所示的一种数据库的测试方法的流程示意图,该方法主要包括以下步骤S102至步骤S108:
步骤S102,获取目标线上环境的原始数据包。其中,目标线上环境可以为业务量较大、较为复杂的业务,目标线上环境也可称之为实际生产环境,原始数据包也即在执行上述业务时产生的数据包,上述数据包可以为TCP(Transmission Control Protocol,传输控制协议)数据包。在一种实施方式中,可以利用指定工具抓取目标线上环境的原始数据包。
步骤S104,基于原始数据包生成模拟数据包。其中,模拟数据包用于模拟客户端与被测数据库之间的测试线上环境。在一种实施方式中,可以预先确定模拟客户端与被测数据库之间握手的次数,从而基于原始数据包生成与握手次数一致的模拟数据吧,示例性的,可以基于原始数据包向前推算出三次握手时产生的中间数据包,并对中间数据包的端口号、IP(Internet Protocol Address,互联网协议地址)等地址信息进行修改,从而得到模拟数据包。
步骤S106,将模拟数据包发送至被测数据库,并接收被测数据库基于模拟数据包生成的反馈数据包。在一种实施方式中,可以对模拟数据包进行解析,得到多条待发送数据,并依次将待发送数据发送至被测数据库,被测数据库将查找与待发送数据对应的反馈数据,从而将反馈数据以数据包的形式反馈至客户端。
步骤S108,基于反馈数据包和原始数据包,确定被测数据库的测试结果。其中,测试结果用于表征被测数据库是否存在异常。在实际应用中,反馈数据包和原始数据包中均包含有登录报文,可以比对反馈数据包内的登录报文和原始数据包内的登录报文,若两者存在差异,则可以确定被测数据库存在异常,若两者不存在差异,则可以确定被测数据库可正常使用。
本发明实施例提供的上述数据库的测试方法,利用原始数据包生成用于模拟客户端与被测数据库之间的测试线上环境的模拟数据包,利用目标线上环境丰富多样、SQL(Structured Query Language,结构化查询语言)语句复杂、应用案例成熟等优势,模拟客户端与被测数据库之间的测试线上环境,从而将模拟数据包发送至被测数据库,以基于被测数据库反馈的反馈数据包和原始数据表,确定被测数据库的测试结果,可以更好得模拟实际生产环境,从而显著改善数据库测试效果。
在一种实施方式中,为使抓取的原始数据包与目标线上环境的数据相近,可以在抓取原始数据包之前,可以将目标线上环境的备份数据包导入至被测数据库,在后续测试过程中,被测数据库将基于备份数据返回与目标数据包对应的反馈数据包,较好地模拟了实际生产环境,使反馈数据包与原始数据包具备可比性,进而基于比对结果确定被测数据库是否存在异常。
在将备份数据导入被测数据库之后,便可获取模板线上环境的原始数据,在一种可选的实施方式中,可以利用预设工具从目标线上环境抓取原始数据包,其中,预设工具包括tcpdump工具,tcpdump工具为linux系统自带的数据包抓取工具,在实际应用中,执行业务所产生的数据包通常需要由网卡进行收发,以实现数据包的传递,本发明实施例可以利用tcpdump工具抓取在网卡上收发的原始数据包,并保存该原始数据包。
对于前述步骤S104,本发明实施例提供了一种基于原始数据包生成模拟数据包的实施方式,参见如下步骤1至步骤2:
步骤1,基于原始数据包,计算出客户端与被测数据库进行握手时产生的中间数据包。其中,中间数据包至少包含第一握手序列号和第一登录报文,第一握手序列号可以为SEQ(发送序号)。在一种实施方式中,可按照如下步骤1.1至步骤1.2推算中间数据包:
步骤1.1,对于客户端与被测数据库进行的每次握手,对原始数据包内的第二握手序列号进行递减得到该次握手的第一握手序列号,并根据第一握手序列号确定该次握手的第一登录报文。其中,握手序列号为SEQ序号值,登录报文至少包括SEQ序号值、LEN值、ACK值、WIN值、TSval值和TSecr值,前一次握手的SEQ序号值=当前握手的ACK值-LEN值,LEN值可以基于实际需求进行设置。在一种实施方式中,可以预先确定客户端与被测数据库进行握手的次数,示例性的,握手次数设置为3,并预先设置报文长度LEN,分析当前握手(标记为X0)的原始数据包以得到ACK(Acknowledge character)值,假设LEN=242且ACK=2353,则可以确定前一次握手(标记为X1)的SEQ序号值=2111,此时确定X1握手的登录报文中SEQ序号值=2111、LEN=242,可选的,可以使X1握手的登录报文中WIN值、TSval值和TSecr值与X0握手的登录报文中WIN值、TSval值和TSecr值保持一致,从而得到X0握手的登录报文。重复上述过程即可得到每次握手时的第一握手序列号和第一登录报文。
步骤1.2,基于第一握手序列号和第一登录报文确定中间数据包。其中,中间数据包至少包括上述第一握手序列号和第一登录报文。
步骤2,修改第一登录报文中的地址信息得到第二登录报文,并基于第一握手序列号和第二登录报文得到模拟数据包。其中,模拟数据包括第二登录报文,第二登录报文中的地址信息与被测数据库的地址信息一致。在一种实施方式中,地址信息包括端口号和IP地址等,对第一登录报文中的端口号和IP地址进行修改得到第二登录报文,还可以对被测数据库的端口号和IP地址进行修改,使第二登录报文中的地址信息和被测数据库的地址信息一致,从而成功将模拟数据包发送至被测数据库。
另外,为将模拟数据包发送至被测数据库,可以对模拟数据包进行解析处理得到多条待发送数据,然后分别将每条待发送数据发送至被测数据库,以使被测数据库针对每条待发送数据发送反馈数据包。在一种实施方式中,可以利用解析程序对模拟数据包内的第二登录报文进行解析,得到多条待发送数据,将待发送数据发送至被测数据库后,被测数据库将反馈相应的反馈数据。
对于前述步骤S108,本发明实施例提供了一种基于反馈数据包和原始数据包,确定被测数据库的测试结果的实施方式,可以判断反馈数据包内的第四登录报文与原始数据包内的第三登录报文是否一致。如果判断结果为是,确定被测数据库的测试结果为正常;如果判断结果为否,确定被测数据库的测试结果为异常。在一种实施方式中,可以通过比对第四登录报文与第三登录报文验证被测数据库的有效性,当第四登录报文与第三登录报文一致时确定被测数据库没有异常,当第四登录报文与第三登录报文不一致时确定被测数据库存在异常。
为便于对前述实施例提供的数据库的测试方法进行理解,本发明实施例提供了一种数据库的测试方法的应用示例,参见图2所示的另一种数据库的测试方法的流程示意图,该方法主要包括以下步骤S202至步骤S212:
步骤S202,确定目标业务。其中,目标业务也即上述目标线上环境,在一种实施方式中,目标业务可以为线上业务量较大、较为复杂的业务。
步骤S204,将目标业务的备份数据导入至被测数据库。
步骤S206,通过tcpdump工具抓取网卡上收发的原始数据包。
步骤S208,对原始数据包进行处理,得到目标数据包。在一种实施方式中,可以通过原始数据包中的SEQ序号向前递减,同时确保SEQ序号连续,再向前递减生成三次握手的登录报文,修改推算出的登录报文中的端口号和IP地址得到目标数据包,另外,修改被测数据库的端口号和IP地址,以使目标数据包中登录报文的端口号和IP地址与被测数据库的端口号和IP地址一致。
步骤S210,解析目标数据包内的登录报文,并将解析得到的登录报文发送至被测数据库。
步骤S212,比对被测数据库反馈的反馈数据包内的第四登录报文和原始数据包内的第三登录报文,并在第四登录报文和第三登录报文不一致时,确定被测数据库存在异常。
综上所述,本发明实施例提供的数据库的测试方法,可以利用tcpdump工具抓取的数据包模拟生产环境,修改tcpdump工具抓取的数据包内的登录报文,并补齐三次握手与登录报文,从而实现对被测数据库进行测试,上述方法可以较好地模拟实际生产环境,用例真实有效果,而且用例覆盖比较全面,从而可以较好地对数据库进行测试。
对于前述实施例提供的数据库的测试方法,本发明实施例提供了一种数据库的测试装置,该装置应用于客户端,客户端与被测数据库通信连接,参见图3所示的一种数据库的测试装置的结构示意图,该装置主要包括以下部分:
原始数据包获取模块302,用于获取目标线上环境的原始数据包。
模拟数据包生成模块304,用于基于原始数据包生成模拟数据包;其中,模拟数据包用于模拟客户端与被测数据库之间的测试线上环境。
反馈数据包接收模块306,用于将模拟数据包发送至被测数据库,并接收被测数据库基于模拟数据包生成的反馈数据包。
结果确定模块308,用于基于反馈数据包和原始数据包,确定被测数据库的测试结果。
本发明实施例提供的上述数据库的测试装置,利用原始数据包生成用于模拟客户端与被测数据库之间的测试线上环境的模拟数据包,利用目标线上环境丰富多样、SQL(Structured Query Language,结构化查询语言)语句复杂、应用案例成熟等优势,模拟客户端与被测数据库之间的测试线上环境,从而将模拟数据包发送至被测数据库,以基于被测数据库反馈的反馈数据包和原始数据表,确定被测数据库的测试结果,可以更好得模拟实际生产环境,从而显著改善数据库测试效果。
在一种实施方式中,模拟数据包生成模块304还用于:基于原始数据包,计算出客户端与被测数据库进行握手时产生的中间数据包;其中,中间数据包至少包含第一握手序列号和第一登录报文;修改第一登录报文中的地址信息得到第二登录报文,并基于第一握手序列号和第二登录报文得到模拟数据包;其中,模拟数据包括第二登录报文,第二登录报文中的地址信息与被测数据库的地址信息一致。
在一种实施方式中,模拟数据包生成模块304还用于:对于所述客户端与所述被测数据库进行的每次握手,对所述原始数据包内的第二握手序列号进行递减得到该次握手的第一握手序列号,并根据所述第一握手序列号确定该次握手的第一登录报文;基于第一握手序列号和第一登录报文确定中间数据包。
在一种实施方式中,反馈数据包接收模块306还用于:对模拟数据包进行解析处理得到多条待发送数据;分别将每条待发送数据发送至被测数据库,以使被测数据库针对每条待发送数据发送反馈数据包。
在一种实施方式中,结果确定模块308还用于:判断反馈数据包内的第四登录报文与原始数据包内的第三登录报文是否一致;如果是,确定被测数据库的测试结果为正常;如果否,确定被测数据库的测试结果为异常。
在一种实施方式中,原始数据包获取模块302还用于:利用预设工具从目标线上环境抓取原始数据包;其中,预设工具包括tcpdump工具。
在一种实施方式中,上述装置还包括备份模块,用于:将目标线上环境的备份数据包导入至被测数据库。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
本发明实施例提供了一种终端设备,具体的,该终端设备包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图4为本发明实施例提供的一种终端设备的结构示意图,该终端设备100包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (7)

1.一种数据库的测试方法,其特征在于,所述方法应用于客户端,所述客户端与被测数据库通信连接,所述方法包括:
获取目标线上环境的原始数据包;其中,所述目标线上环境为业务量较大、较为复杂的业务,所述原始数据包为在执行所述业务时产生的数据包;
基于所述原始数据包生成模拟数据包;其中,所述模拟数据包用于模拟所述客户端与所述被测数据库之间的测试线上环境;
将所述模拟数据包发送至所述被测数据库,并接收所述被测数据库基于所述模拟数据包生成的反馈数据包;
基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果;
所述基于所述原始数据包生成模拟数据包的步骤,包括:
基于所述原始数据包,计算出所述客户端与所述被测数据库进行握手时产生的中间数据包;其中,所述中间数据包至少包含第一握手序列号和第一登录报文;
修改所述第一登录报文中的地址信息得到第二登录报文,并基于所述第一握手序列号和所述第二登录报文得到模拟数据包;其中,所述模拟数据包括所述第二登录报文,所述第二登录报文中的地址信息与所述被测数据库的地址信息一致;
所述基于所述原始数据包,推算出所述客户端与所述被测数据库进行握手时产生的中间数据包的步骤,包括:
对于所述客户端与所述被测数据库进行的每次握手,对所述原始数据包内的第二握手序列号进行递减得到该次握手的第一握手序列号,并根据所述第一握手序列号确定该次握手的第一登录报文;
基于所述第一握手序列号和所述第一登录报文确定中间数据包;
所述基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果的步骤,包括:
判断所述反馈数据包内的第四登录报文与所述原始数据包内的第三登录报文是否一致;
如果是,确定所述被测数据库的测试结果为正常;如果否,确定所述被测数据库的测试结果为异常。
2.根据权利要求1所述的方法,其特征在于,所述将所述模拟数据包发送至所述被测数据库的步骤,包括:
对所述模拟数据包进行解析处理得到多条待发送数据;
分别将每条所述待发送数据发送至所述被测数据库,以使所述被测数据库针对每条所述待发送数据发送反馈数据包。
3.根据权利要求1所述的方法,其特征在于,所述获取目标线上环境的原始数据包的步骤,包括:
利用预设工具从目标线上环境抓取原始数据包;其中,所述预设工具包括tcpdump工具。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将目标线上环境的备份数据包导入至所述被测数据库。
5.一种数据库的测试装置,其特征在于,所述装置应用于客户端,所述客户端与被测数据库通信连接,所述装置包括:
原始数据包获取模块,用于获取目标线上环境的原始数据包;其中,所述目标线上环境为业务量较大、较为复杂的业务,所述原始数据包为在执行所述业务时产生的数据包;
模拟数据包生成模块,用于基于所述原始数据包生成模拟数据包;其中,所述模拟数据包用于模拟所述客户端与所述被测数据库之间的测试线上环境;
反馈数据包接收模块,用于将所述模拟数据包发送至所述被测数据库,并接收所述被测数据库基于所述模拟数据包生成的反馈数据包;
结果确定模块,用于基于所述反馈数据包和所述原始数据包,确定所述被测数据库的测试结果;
所述模拟数据包生成模块还用于:基于所述原始数据包,计算出所述客户端与所述被测数据库进行握手时产生的中间数据包;其中,所述中间数据包至少包含第一握手序列号和第一登录报文;修改所述第一登录报文中的地址信息得到第二登录报文,并基于所述第一握手序列号和所述第二登录报文得到模拟数据包;其中,所述模拟数据包括所述第二登录报文,所述第二登录报文中的地址信息与所述被测数据库的地址信息一致;
所述模拟数据包生成模块还用于:对于所述客户端与所述被测数据库进行的每次握手,对所述原始数据包内的第二握手序列号进行递减得到该次握手的第一握手序列号,并根据所述第一握手序列号确定该次握手的第一登录报文;基于所述第一握手序列号和所述第一登录报文确定中间数据包;
所述结果确定模块还用于:判断所述反馈数据包内的第四登录报文与所述原始数据包内的第三登录报文是否一致;如果是,确定所述被测数据库的测试结果为正常;如果否,确定所述被测数据库的测试结果为异常。
6.一种终端设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至4任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至4任一项所述的方法。
CN202110910502.8A 2021-08-09 2021-08-09 数据库的测试方法、装置及终端设备 Active CN113641576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110910502.8A CN113641576B (zh) 2021-08-09 2021-08-09 数据库的测试方法、装置及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110910502.8A CN113641576B (zh) 2021-08-09 2021-08-09 数据库的测试方法、装置及终端设备

Publications (2)

Publication Number Publication Date
CN113641576A CN113641576A (zh) 2021-11-12
CN113641576B true CN113641576B (zh) 2024-06-04

Family

ID=78420276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110910502.8A Active CN113641576B (zh) 2021-08-09 2021-08-09 数据库的测试方法、装置及终端设备

Country Status (1)

Country Link
CN (1) CN113641576B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117344A (zh) * 2015-09-19 2015-12-02 北京暴风科技股份有限公司 一种基于pb的接口集成测试方法和系统
CN105915550A (zh) * 2015-11-25 2016-08-31 北京邮电大学 一种基于SDN的Portal/Radius认证方法
CN106470136A (zh) * 2015-08-21 2017-03-01 腾讯科技(北京)有限公司 平台测试方法以及平台测试系统
CN109284327A (zh) * 2018-11-26 2019-01-29 杭州安恒信息技术股份有限公司 通过模拟数据库连接驱动包扫描数据库类型的方法及装置
CN109446053A (zh) * 2018-09-03 2019-03-08 平安普惠企业管理有限公司 应用程序的测试方法、计算机可读存储介质及终端
CN109995614A (zh) * 2019-03-29 2019-07-09 新华三信息安全技术有限公司 一种α测试方法及装置
CN110351156A (zh) * 2018-04-03 2019-10-18 大唐移动通信设备有限公司 一种测试方法和装置
CN112165408A (zh) * 2020-09-16 2021-01-01 杭州安恒信息技术股份有限公司 一种模拟客户串联部署环境的测试方法和装置
CN112187585A (zh) * 2020-09-30 2021-01-05 腾讯科技(深圳)有限公司 网络协议测试方法及装置
CN112398547A (zh) * 2020-10-28 2021-02-23 深圳市天视通技术有限公司 一种网络模块测试方法、系统及可读存储介质
CN112954300A (zh) * 2019-12-11 2021-06-11 中移物联网有限公司 视频监控平台的性能测试装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106602B2 (en) * 2019-09-04 2021-08-31 International Business Machines Corporation Memory blockade for verifying system security with respect to speculative execution

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470136A (zh) * 2015-08-21 2017-03-01 腾讯科技(北京)有限公司 平台测试方法以及平台测试系统
CN105117344A (zh) * 2015-09-19 2015-12-02 北京暴风科技股份有限公司 一种基于pb的接口集成测试方法和系统
CN105915550A (zh) * 2015-11-25 2016-08-31 北京邮电大学 一种基于SDN的Portal/Radius认证方法
CN110351156A (zh) * 2018-04-03 2019-10-18 大唐移动通信设备有限公司 一种测试方法和装置
CN109446053A (zh) * 2018-09-03 2019-03-08 平安普惠企业管理有限公司 应用程序的测试方法、计算机可读存储介质及终端
CN109284327A (zh) * 2018-11-26 2019-01-29 杭州安恒信息技术股份有限公司 通过模拟数据库连接驱动包扫描数据库类型的方法及装置
CN109995614A (zh) * 2019-03-29 2019-07-09 新华三信息安全技术有限公司 一种α测试方法及装置
CN112954300A (zh) * 2019-12-11 2021-06-11 中移物联网有限公司 视频监控平台的性能测试装置及方法
CN112165408A (zh) * 2020-09-16 2021-01-01 杭州安恒信息技术股份有限公司 一种模拟客户串联部署环境的测试方法和装置
CN112187585A (zh) * 2020-09-30 2021-01-05 腾讯科技(深圳)有限公司 网络协议测试方法及装置
CN112398547A (zh) * 2020-10-28 2021-02-23 深圳市天视通技术有限公司 一种网络模块测试方法、系统及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Software Complex to Manage and Test a Distributed Database;Timofeeva, N.E. 等;Software & Systems;20180827;全文 *
ARINC429总线通讯软件测试环境的构建;权巍;王俊杰;邢忠宝;;计算机测量与控制;20081225(第12期);全文 *

Also Published As

Publication number Publication date
CN113641576A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN109669795B (zh) 崩溃信息处理方法及装置
CN110532168B (zh) 全链路接口压测方法、装置、计算机设备及存储介质
CN108255725B (zh) 测试方法及装置
CN111866016A (zh) 日志的分析方法及系统
CN111679979B (zh) 破坏性测试方法及装置
CN110633198A (zh) 基于区块链的软件测试数据的存储方法及系统
CN111182525A (zh) 一种存储数据的方法和装置
CN110557299A (zh) 一种网络传输功能批量测试方法、系统、终端及存储介质
US20170337208A1 (en) Collecting test results in different formats for storage
CN109145651B (zh) 一种数据处理方法及装置
CN112817602A (zh) 一种json格式数据发送、接收方法、设备及介质
CN113938408B (zh) 一种数据流量测试方法、装置、服务器及存储介质
CN114185808A (zh) 自动化测试方法、装置、电子设备及计算机可读存储介质
CN110930254A (zh) 基于区块链的数据处理方法、装置、终端及介质
CN111666193B (zh) 基于实时日志解析的终端功能监控与测试的方法与系统
CN109698798B (zh) 一种应用的识别方法、装置、服务器和存储介质
CN105117340A (zh) 用于iOS浏览器应用质量评估的URL检测方法和装置
CN112614002A (zh) 数据采集系统、方法、装置、电子设备及计算机存储介质
CN112256557B (zh) 程序回归测试方法、装置、系统、计算机设备及存储介质
CN113641576B (zh) 数据库的测试方法、装置及终端设备
CN112333206B (zh) 安全测试方法、装置及电子设备
CN111193631A (zh) 信息处理方法、系统和计算机可读存储介质
CN112667569A (zh) 特征方法、系统、计算机设备及计算机可读存储介质
CN117472640B (zh) 跨平台事件处理方法和系统
CN111143644A (zh) 物联网设备的识别方法及装置

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