CN114860619A - 一种数据库审计程序回归测试方法和装置 - Google Patents

一种数据库审计程序回归测试方法和装置 Download PDF

Info

Publication number
CN114860619A
CN114860619A CN202210791416.4A CN202210791416A CN114860619A CN 114860619 A CN114860619 A CN 114860619A CN 202210791416 A CN202210791416 A CN 202210791416A CN 114860619 A CN114860619 A CN 114860619A
Authority
CN
China
Prior art keywords
database
program
protocol packet
network protocol
version
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
CN202210791416.4A
Other languages
English (en)
Other versions
CN114860619B (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 Dbsec Technology Co ltd
Original Assignee
Beijing Dbsec 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 Dbsec Technology Co ltd filed Critical Beijing Dbsec Technology Co ltd
Priority to CN202210791416.4A priority Critical patent/CN114860619B/zh
Publication of CN114860619A publication Critical patent/CN114860619A/zh
Application granted granted Critical
Publication of CN114860619B publication Critical patent/CN114860619B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)

Abstract

本申请公开了一种数据库审计程序回归测试方法和装置,该方法包括:获取测试计划;获取所述多条测试用例中的每条测试用例中的SQL语句;获取每条测试用例的SQL语句对应网络协议包;将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。通过本申请解决了现有技术中人工对审计程序进行回归测试所导致的效率低并且影响回归测试效果的问题,从而提高了审计程序的回归测试效率和效果。

Description

一种数据库审计程序回归测试方法和装置
技术领域
本申请涉及到数据库审计领域,具体而言,涉及一种数据库审计程序回归测试方法和装置。
背景技术
数据库审计以安全事件为中心,以全面审计和精确审计为基础,实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据库行为的记录、分析和汇报,来帮助用户事后生成合规报告、事故追根溯源,同时通过大数据搜索技术提供高效查询审计报告,定位事件原因,以便日后查询、分析、过滤,实现加强内外部数据库网络行为的监控与审计,提高数据资产安全。
数据库审计一般通过审计程序来进行,在审计程序研发的过程中需要对审计程序进行测试,这其中就包括回归测试。回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。
审计程序出现问题一般是审计到特定的数据库流量包的情况下出现的,数据库流量包是针对不同的数据库或网络协议产生的数据库数据包,因此,也将数据库流量包称为数据库协议包。审计程序出现的问题与数据库协议包的类型相关,在这种情况下,在进行回归测试的时候需要人工通过数据库客户端输入SQL语句,然后数据库客户端根据输入的SQL语句生成数据库流量包并发送给数据库,审计程序在获取到该数据库流量包之后再进行审计,从而确定审计程序中的问题是否已经解决。
这种人工对审计程序进行回归测试的方式不仅仅效率比较低,而且有可能无法构建出之前使审计程序出现问题的数据库协议包,从而影响了回归测试的效果。
发明内容
本申请实施例提供了一种数据库审计程序回归测试方法和装置,以至少解决现有技术中人工对审计程序进行回归测试所导致的效率低并且影响回归测试效果的问题。
根据本申请的一个方面,提供了一种数据库审计程序回归测试方法,包括:获取测试计划,其中,上述测试计划中包括多条测试用例;获取所述多条测试用例中的每条测试用例中的SQL语句;获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。
进一步地,将每条测试用例对应的网络协议包发送给审计程序包括:获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。
进一步地,将每条测试用例对应的网络协议包发送给审计程序包括:在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
进一步地,在所述数据库安装所述代理程序包括:向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本;根据所述数据库的版本获取对应的预定版本的代理程序,并从预先设置的网络存储空间中获取所述预定版本的代理程序对应的安装包;根据获取到安装包在所述数据库中安装所述预定版本的代理程序。
进一步地,在将每条测试用例对应的网络协议包发送给所述审计程序之前,所述方法还包括:向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本;根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包;根据获取到安装包安装所述审计程序。
根据本申请的另一个方面,还提供了一种数据库审计程序回归测试装置,包括:第一获取模块,用于获取测试计划,其中,上述测试计划中包括多条测试用例;第二获取模块,用于获取所述多条测试用例中的每条测试用例中的SQL语句;第三获取模块,用于获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;第一发送模块,用于将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;比较模块,用于获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。
进一步地,所述第一发送模块用于:获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。
进一步地,所述第一发送模块用于:在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
进一步地,所述第一发送模块用于:向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本;根据所述数据库的版本获取对应的预定版本的代理程序,并从预先设置的网络存储空间中获取所述预定版本的代理程序对应的安装包;根据获取到安装包在所述数据库中安装所述预定版本的代理程序。
进一步地,还包括:第二发送模块,用于向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;接收模块,用于接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本;第四获取模块,用于根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包;安装模块,用于根据获取到安装包安装所述审计程序。
在本申请实施例中,采用了获取测试计划,其中,上述测试计划中包括多条测试用例;获取所述多条测试用例中的每条测试用例中的SQL语句;获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。通过本申请解决了现有技术中人工对审计程序进行回归测试所导致的效率低并且影响回归测试效果的问题,从而提高了审计程序的回归测试效率和效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据库审计程序回归测试方法的流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据库审计程序回归测试方法,图1是根据本申请实施例的数据库审计程序回归测试方法的流程图,如图1所示,下面对图1中包括的步骤进行说明。
步骤S102,获取测试计划,其中,上述测试计划中包括多条测试用例。
在该步骤中,获取当前待测试的审计程序的当前版本号,根据所述当前的版本号查找上一个版本号的审计程序所执行过的测试用例,获取执行过的测试用例中测试失败的测试用例,根据所述测试失败的测试用例以及所述上一个版本号的审计程序未执行过的测试用例生成所述测试计划。作为另一个可选实施方式,所述测试计划可以包括两个:第一测试计划和第二测试计划,其中,所述第一测试计划包括上一个版本号的审计程序所执行过的测试用例中的测试失败的测试用例以及未执行过的测试用例;所述第二测试计划包括上一个版本号的审计程序所执行过的测试用例中的测试成功的测试用例;所述第一测试计划配置了在第一时间段运行,所述第二测试计划配置了在第二时间段运行,其中,所述第一时间段和所述第二时间段不同。
步骤S104,获取所述多条测试用例中的每条测试用例中的SQL语句。
步骤S106,获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句。
步骤S108,将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句。
在该步骤中,将网络协议包发送给审计程序的方式有两种,下面的对此分别进行说明。方式一:获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。方式二:将每条测试用例对应的网络协议包发送给审计程序包括:在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
步骤S110,获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。 在该步骤中,如果比较结果一致则测试通过。
作为一个可以增加的实施方式,在将所述网络协议包发送给所述审计程序的同时,还将所述网络协议包发送给所述数据库,所述审计程序获取来自所述数据库的第二网络协议包,其中,所述第二网络协议包中携带有操作结果,所述操作结果所述数据库根据所述网络协议包中的SQL语句进行操作后得到的结果;获取并保存所述审计程序对所述第二网络协议包进行解析得到的操作结果,根据解析得到的操作结果与预期的操作结果进行比较,在一致的情况下确定测试通过。
在上述步骤中将测试用例中的SQL语句预先构建成网络协议包,在对审计程序进行测试的时候,直接将上述网络协议包发送给审计程序即可,同理进行回归测试时,也可以发送同样的网络协议包对审计程序进行回归测试,因此,通过上述步骤解决了现有技术中人工对审计程序进行回归测试所导致的效率低并且影响回归测试效果的问题,从而提高了审计程序的回归测试效率和效果。
下面结合可选的实施例及实施方式进行说明。在以下实施方式中,涉及到数据库、数据库代理(Agent,也可以称作代理程序)、审计程序、数据库客户端、第三方设备等,下面首先对这些名词进行说明。数据库用于存储数据,对于数据库的访问一般通过数据库客户端(或者简称为客户端)来进行,数据库客户端会安装在计算设备上,在以下实施方式中将数据库客户端安装的计算设备称为第三方设备。用户可以登录到第三方设备上,通过数据库客户端来访问数据库,或者,作为另一种实现方式,用户可以通过第三方设备构建出数据包,该数据包是根据真实客户端访问数据库的数据包构建出来的,构建的数据包与真实数据包的协议格式是一致的。此时,即使在第三方设备上未安装数据库客户端,第三方设备也可以通过发送构建出的数据包来与数据库进行交互,在以下实施方式中,将这种访问方式称作是模拟客户端对数据库的访问。
Agent是数据库代理,其与数据库安装在同一个设备上,Agent会获取到访问数据库的流量,并将该流量发送给数据库,另外,Agent会将访问数据库的流量复制一份发送给审计程序。审计程序用于对来自Agent的数据库流量进行审计。采用通过Agent向审计程序发送数据库流量的方式也可以对Agent进行测试。
如果仅仅需要对审计程序进行测试,也可以对审计程序配置数据库所在的网卡。由于对数据库的访问均通过该网卡进行,因此,访问数据库的流量均是通过该网卡传输到数据库的。在审计程序中配置数据库所在网卡,审计程序直接从该网卡上就可以抓取访问该数据库的流量。这样可以直接通过网卡的流量对审计程序进行测试。
在以下实施例中,需要对Agent进行测试,Agent是需要安装在不同数据库中的,并且数据库也会安装在不同的操作系统上,因此,Agent会有多个版本,其中每个Agent版本对应安装在预定操作系统上的一种数据库。在以下实施例中,可以实现Agent版本的自动安装。例如,预先配置每个Agent版本与数据库以及操作系统的对应关系,测试程序(在本实施例中将用于执行自动化测试的程序称为测试程序)向数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;测试程序接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本,所述测试程序根据所述数据库的版本获取对应的预定版本的Agent,并从预先设置的网络存储空间中获取所述预定版本的Agent对应的安装包。所述测试程序根据获取到安装包在所述数据库中安装所述预定版本的Agent。通过该实施方式,可以实现Agent版本的自动获取和自动安装,提供了测试效率。
在一个实施方式中,可以使用专门的设备来保存Agent的安装包,该设备可以被称为安装包制作设备,该设备可以通过网页接口服务(web service)的方式来访问,并通过该web service自动获取相应产品安装介质(即安装包)。同样,如果需要测试不同版本的审计程序,测试程序也可以向数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;测试程序接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本,所述测试程序根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包。所述测试程序根据获取到安装包在审计设备中安装所述审计程序。
在安装对应版本的Agent和审计程序之后,测试程序远程访问第三方设备(例如通过SSH等远程访问协议来访问第三方设备),通过第三方设备访问数据库,模拟客户端访问数据库的操作。然后,审计程序对模拟客户端访问数据库产生的流量进行获取然后进行协议解析的到审计数据,再将获取审计数据与预期数据进行比对,生成测试报告的功能。
例如,通过第三方设备构造访问数据库的网络协议包,该网络协议包是可以抓取真实客户端访问数据库时得到的,例如,通过真实客户端输入预定SQL语句来访问数据库,此时该网络协议包就是将预定SQL语句进行打包得到的。对该网络协议包进行保存,在下次进行回归测试的时候,将该网络协议包直接发送给审计程序,或者直接发送给数据库,审计程序获取到该网络协议包之后,从网络协议包中解析得到SQL语句,判断得到的SQL语句与预定SQL语句是否相同,如果相同,则测试通过。
在上述测试中,对审计程序的测试主要是测试审计程序对各种数据库对应的网络协议包的解析能力,因此,对审计程序的测试也被称作为协议回归测试。在以下实施例中还需要对Agent进行测试,将该测试称为Agent测试。下面对协议回归测试和Agent测试分别进行说明。
协议回归测试
预先配置测试用例,其中,每一条测试用例均对应一种SQL语句生成网络协议包。通过自动化执行测试用例的方式,将每个测试用户对应的网络协议包发送给数据库(该过程也被称为回放数据库相关的网络协议包),达到对审计程序的协议解析功能的测试。
上述网络协议包均是在测试过程中抓取到的数据库客户段使用该SQL语句与数据库进行交互时的数据包。即网络协议包均是测试过程中使用的语句打包而成的。
在执行测试的设备上部署自动化工具(即测试程序,该自动化工具可以通过自动化脚本来实现自动化,因此在下文中也称作是自动化脚本),设置执行对审计类产品(即审计程序)执行测试的方案,自动化脚本通过设定的不同任务进行相应的测试方案。对不同的产品类型需要获取对应的产品安装介质(即安装包),自动化脚本通过web service的方式进行远程访问安装介质制作的设备,获取相应产品的安装介质(即安装包),然后自动安装产品,安装成功后写入定时任务,待设备重启后执行相应的自动化测试。
将测试用的SQL语句按照数据库客户端与数据库之间交互协议打包成网络协议包,自动安装审计程序之后,将网络协议包进行回放到相应的网卡上,由于审计程序配置了该网卡,因此,审计程序可以从网卡抓取到回放的网络协议包,然后对网络协议包进行解析得到该网络协议包中的SQL语句,根据解析得到的SQL语句与生成网络协议包的SQL语句进行比较确定解析结果是否正确,从而完成对审计程序的回归测试。
上述测试程序可以采用定时任务的方式,定时任务启动后会在预定时间到达是执行相应测试,自动连接待测试的审计程序,在审计程序中添加需要审计的数据库信息,并且配置数据库的网卡;然后测试程序通过对相应的网卡进行回放带有数据库流量的网络协议包,审计程序抓取到网卡上的流量,并对抓取到的网络协议包进行解析。
上述实施方式中的网络协议包可以是网络PCAP包。该网络协议包可以是在人工测试的过程中抓取到的,例如,人工通过数据库客户端输入预定的SQL语句来访问数据库,然后抓取在输入SQL语句之后数据库客户端和数据库之间传输的网络协议包,该网络协议包就是携带有SQL语句的网络协议包,然后将来在进行回归测试的时候进行回放。作为另一种可选的方式,还可以根据数据库的版本获取数据库和数据库客户端之间所使用的协议格式,在得到协议格式之后,可以根据该协议格式对各种SQL语句打包成符合该协议格式的网络数据包,以将来用户回归测试。
作为一个可以增加的实施方式,还可以通过机器学习的方式训练一个机器学习模型,该机器学习模型是使用多组训练数据训练得到的,每组训练数据均包括输入数据和输出数据,其中,所述输入数据是SQL语句,所述输出数据是包括该SQL语句的数据库客户端向数据库发送的网络协议包。经过训练之后,将SQL语句输入到该机器学习模型中就可以得到该机器学习模型数据的网络协议包。对于不同版本的数据库可以分别训练对应于每个版本的数据库的机器学习模型。
作为另一个可选的实施方式,在审计程序解析得到SQL语句之后,审计程序还可以获取数据库相应操作的记录并保存到测试文件,与预期结果进行比对,如果有差异说明审计程序的审计结果与预期不一致,通过生成静态html的方式生成链接,并将结果推送给相关人员。通过人为校验的方式确定审计结果是否正确,从而达到是否更新预期的目的。
Agent自动化测试
在上述协议回归测试中,审计程序可以直接从网卡来抓取网络协议包。在另一种情况下,如果审计程序和数据库是远程部署的,审计程序无法直接从数据库对应的网卡上抓取数据包的情况下,可以通过Agent来实现数据库流量的抓取。 Agent可以理解为是一种插件,通过数据库所在设备自动部署agent插件的方式,达到对远程数据库流量的抓取,并将数据库相关流量发送到审计程序,审计程序进行协议解析,对数据库操作行为进行记录,保存和分析。
可以通过web service的方式获取审计程序的安装介质,自动安装审计程序,然后设置定时任务,重启设备。自动执行Agent测试,执行测试开始先自动部署Agent和在Agent中自动添加数据库。
在进行测试的时候,通过远程访问客户端的方式将jdbc工具拷贝到客户端,通过远程客户端访问Agent数据库的方式进行对数据库的操作,将客户端访问数据库的结果进行保存,在通过远程下载的方式将结果保存。在通过访问审计数据的方式将协议解析结果进行保存,多结果多方位的数据比对,保证整个测试节点正确。
通过上述实施方式,可以通过web service方式开发自动制作安装介质的接口,自动化访问接口发送想要的产品类型,接口根据产品进行制作对应的安装包,制作完成后通过返回ftp地址的方式告知请求者。测试程序使用安装包自动安装部署待测试产品的产品,通过不同待测试产品指定不同参数的方式进行自动交互,达到安装目的。 通过远程交互模式访问第三方设备,通过jdbc(通过不同数据库参数映射的方法获取不同数据库类型的连接)访问不同数据库类型,进行对数据库的操作。通过测试数据和预期数据进行比对,写html的方式,将比对的数据生成静态网页,推送给相关人员,直接打开链接的方式查看结果。
在本实施例中,提供一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行以上实施例中的方法。
上述程序可以运行在处理器中,或者也可以存储在存储器中(或称为计算机可读介质),计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
这些计算机程序也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤,对应与不同的步骤可以通过不同的模块来实现。
该本实施例中就提供了这样的一种装置或系统。该装置被称为数据库审计程序回归测试装置,包括:第一获取模块,用于获取测试计划,其中,上述测试计划中包括多条测试用例;第二获取模块,用于获取所述多条测试用例中的每条测试用例中的SQL语句;第三获取模块,用于获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;第一发送模块,用于将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;比较模块,用于获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。
该系统或者装置用于实现上述的实施例中的方法的功能,该系统或者装置中的每个模块与方法中的每个步骤相对应,已经在方法中进行过说明的,在此不再赘述。
例如,所述第一发送模块用于:获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。
又例如,所述第一发送模块用于:在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
又例如,所述第一发送模块用于:向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本;根据所述数据库的版本获取对应的预定版本的代理程序,并从预先设置的网络存储空间中获取所述预定版本的代理程序对应的安装包;根据获取到安装包在所述数据库中安装所述预定版本的代理程序。
又例如,还包括:第二发送模块,用于向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;接收模块,用于接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本;第四获取模块,用于根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包;安装模块,用于根据获取到安装包安装所述审计程序。
通过上述实施例解决了现有技术中人工对审计程序进行回归测试所导致的效率低并且影响回归测试效果的问题,从而提高了审计程序的回归测试效率和效果。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据库审计程序回归测试方法,其特征在于,包括:
获取测试计划,其中,上述测试计划中包括多条测试用例;
获取所述多条测试用例中的每条测试用例中的SQL语句;
获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;
将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;
获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。
2.根据权利要求1所述的方法,其特征在于,将每条测试用例对应的网络协议包发送给审计程序包括:
获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;
在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;
将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。
3.根据权利要求1所述的方法,其特征在于,将每条测试用例对应的网络协议包发送给审计程序包括:
在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;
向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
4.根据权利要求3所述的方法,其特征在于,在所述数据库安装所述代理程序包括:
向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;
接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本;
根据所述数据库的版本获取对应的预定版本的代理程序,并从预先设置的网络存储空间中获取所述预定版本的代理程序对应的安装包;
根据获取到安装包在所述数据库中安装所述预定版本的代理程序。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在将每条测试用例对应的网络协议包发送给所述审计程序之前,所述方法还包括:
向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;
接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本;
根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包;
根据获取到安装包安装所述审计程序。
6.一种数据库审计程序回归测试装置,其特征在于,包括:
第一获取模块,用于获取测试计划,其中,上述测试计划中包括多条测试用例;
第二获取模块,用于获取所述多条测试用例中的每条测试用例中的SQL语句;
第三获取模块,用于获取每条测试用例的SQL语句对应网络协议包,其中,所述网络协议包是数据库客户端使用该条测试用例的SQL语句访问数据库时使用的数据包,所述网络协议包中携带有所述SQL语句;
第一发送模块,用于将每条测试用例对应的网络协议包发送给审计程序,其中,所述审计程序用于对所述网络协议包进行解析并得到所述网络协议包中的SQL语句;
比较模块,用于获取所述审计程序对所述网络协议包进行解析得到的SQL语句,将解析得到的SQL语句与该条测试用例中的SQL语句进行比较;其中,比较结果用于确定该条测试用例是否测试通过。
7.根据权利要求6所述的装置,其特征在于,所述第一发送模块用于:
获取所述数据库所在设备的网卡,其中,所述数据库客户端通过所述网卡访问所述数据库;
在所述审计程序能够访问所述网卡的情况下,将所述网卡的地址配置给所述审计程序;
将所述每条测试用例对应的网络协议包发送给所述网卡,其中,所述审计程序根据所述网卡的地址从所述网卡上获取所述网络协议包。
8.根据权利要求6所述的装置,其特征在于,所述第一发送模块用于:
在所述数据库中安装代理程序,其中,所述代理程序用于获取发送到所述数据库上的网络协议包;
向所述数据库发送所述网络协议包,其中,发送到所述数据库的网络协议包被所述代理程序获取并发送到所述审计程序。
9.根据权利要求7所述的装置,其特征在于,所述第一发送模块用于:
向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本;
接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本;
根据所述数据库的版本获取对应的预定版本的代理程序,并从预先设置的网络存储空间中获取所述预定版本的代理程序对应的安装包;
根据获取到安装包在所述数据库中安装所述预定版本的代理程序。
10.根据权利要求6至9中任一项所述的装置,其特征在于,还包括:
第二发送模块,用于向所述数据库发送请求消息,其中,所述请求消息用于获取所述数据库的版本和所在操作系统的版本;
接收模块,用于接收到所述请求消息的响应消息,并从所述响应消息中获取所述数据库的版本和所在操作系统的版本;
第四获取模块,用于根据所述数据库的版本和所在操作系统的版本获取对应的预定版本的审计程序,并从预先设置的网络存储空间中获取所述预定版本的审计程序对应的安装包;
安装模块,用于根据获取到安装包安装所述审计程序。
CN202210791416.4A 2022-07-07 2022-07-07 一种数据库审计程序回归测试方法和装置 Active CN114860619B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210791416.4A CN114860619B (zh) 2022-07-07 2022-07-07 一种数据库审计程序回归测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210791416.4A CN114860619B (zh) 2022-07-07 2022-07-07 一种数据库审计程序回归测试方法和装置

Publications (2)

Publication Number Publication Date
CN114860619A true CN114860619A (zh) 2022-08-05
CN114860619B CN114860619B (zh) 2022-09-13

Family

ID=82625898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210791416.4A Active CN114860619B (zh) 2022-07-07 2022-07-07 一种数据库审计程序回归测试方法和装置

Country Status (1)

Country Link
CN (1) CN114860619B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065622A (zh) * 2022-08-09 2022-09-16 北京安华金和科技有限公司 一种基于多探针的审计设备测试方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150254174A1 (en) * 2014-03-04 2015-09-10 International Business Machines Corporation Regression testing of sql execution plans for sql statements
CN107480046A (zh) * 2017-07-12 2017-12-15 上海斐讯数据通信技术有限公司 一种自动化测试方法、装置及计算机处理设备
CN112187585A (zh) * 2020-09-30 2021-01-05 腾讯科技(深圳)有限公司 网络协议测试方法及装置
CN112256557A (zh) * 2020-09-16 2021-01-22 蘑菇物联技术(深圳)有限公司 程序回归测试方法、装置、系统、计算机设备及存储介质
CN113641702A (zh) * 2021-10-18 2021-11-12 北京安华金和科技有限公司 一种语句审计后与数据库客户端交互处理方法和装置
CN113742200A (zh) * 2020-05-28 2021-12-03 阿里巴巴集团控股有限公司 数据库版本升级的测试方法、设备及计算机可读介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150254174A1 (en) * 2014-03-04 2015-09-10 International Business Machines Corporation Regression testing of sql execution plans for sql statements
CN107480046A (zh) * 2017-07-12 2017-12-15 上海斐讯数据通信技术有限公司 一种自动化测试方法、装置及计算机处理设备
CN113742200A (zh) * 2020-05-28 2021-12-03 阿里巴巴集团控股有限公司 数据库版本升级的测试方法、设备及计算机可读介质
CN112256557A (zh) * 2020-09-16 2021-01-22 蘑菇物联技术(深圳)有限公司 程序回归测试方法、装置、系统、计算机设备及存储介质
CN112187585A (zh) * 2020-09-30 2021-01-05 腾讯科技(深圳)有限公司 网络协议测试方法及装置
CN113641702A (zh) * 2021-10-18 2021-11-12 北京安华金和科技有限公司 一种语句审计后与数据库客户端交互处理方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115065622A (zh) * 2022-08-09 2022-09-16 北京安华金和科技有限公司 一种基于多探针的审计设备测试方法和系统
CN115065622B (zh) * 2022-08-09 2022-11-01 北京安华金和科技有限公司 一种基于多探针的审计设备测试方法和系统

Also Published As

Publication number Publication date
CN114860619B (zh) 2022-09-13

Similar Documents

Publication Publication Date Title
US9672137B1 (en) Shadow test replay service
US20060107141A1 (en) Database mining system and method for coverage analysis of functional verification of integrated circuit designs
CN111506489A (zh) 测试方法、系统、设备、服务器及存储介质
CN106506243A (zh) 一种基于日志数据的网管故障诊断方法
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN112650688A (zh) 自动化回归测试方法、关联设备以及计算机程序产品
CN114860619B (zh) 一种数据库审计程序回归测试方法和装置
CN112260885B (zh) 一种工控协议自动测试方法、系统、装置及可读存储介质
CN111552632A (zh) 一种接口测试方法及装置
CN113111000A (zh) 持续集成自动化测试系统和方法、电子设备、存储介质
CN114398293A (zh) 接口测试用例生成方法、电子设备和存储介质
CN113742200A (zh) 数据库版本升级的测试方法、设备及计算机可读介质
CN116909800B (zh) 崩溃信息的定位方法、崩溃信息的定位装置及存储介质
CN111767218B (zh) 一种用于持续集成的自动化测试方法、设备及存储介质
CN116527553A (zh) 一种交换机自动化测试报告的处理方法、系统及存储介质
CN111435327B (zh) 一种日志记录的处理方法、装置及系统
CN115114132A (zh) 一种审计程序的性能测试方法和系统
CN115757318A (zh) 日志查询方法、装置、存储介质以及电子设备
CN115269424A (zh) 生产流量的自动回归测试方法、装置、设备及存储介质
CN114285840A (zh) 车辆数据的获取方法、智能终端及存储介质
CN114138631A (zh) 一种测试方法和测试装置
CN114691494A (zh) 测试用例的执行方法、系统及测试设备
CN111813662A (zh) 用户行为驱动的可持续集成的测试方法、装置和设备
US8977901B1 (en) Generating service call patterns for systems under test
CN105701002A (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