CN114253852A - 自动化测试方法、装置、设备、介质 - Google Patents

自动化测试方法、装置、设备、介质 Download PDF

Info

Publication number
CN114253852A
CN114253852A CN202111567688.8A CN202111567688A CN114253852A CN 114253852 A CN114253852 A CN 114253852A CN 202111567688 A CN202111567688 A CN 202111567688A CN 114253852 A CN114253852 A CN 114253852A
Authority
CN
China
Prior art keywords
database table
database
data
automatic test
tested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111567688.8A
Other languages
English (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202111567688.8A priority Critical patent/CN114253852A/zh
Publication of CN114253852A publication Critical patent/CN114253852A/zh
Pending legal-status Critical Current

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
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种自动化测试方法,可以应用于数据处理领域以及金融领域。该自动化测试方法包括:根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,第一操作行为是在利用第一自动化测试装置对待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,第三数据库表是与第一数据库表具有映射关系的影子表;以及对第四数据库表和第二数据库表进行一致性校验,生成校验结果。本公开还提供了一种自动化测试装置、设备、存储介质和程序产品。

Description

自动化测试方法、装置、设备、介质
技术领域
本公开涉及数据处理领域以及金融领域,更具体地涉及一种自动化测试方法、装置、设备、介质和程序产品。
背景技术
对于一些对实时性要求不高的、或者需要定时处理的任务,即批量作业,通常是运行在昂贵的大型主机上。在国产化、分布式技术发展背景下,主机下平台,即主机上运行的批量作业系统由分布式的平台处理框架来承接,是一种大势所趋。在主机下平台的系统改造测试过程中,比对相同的批量作业在主机侧与平台侧执行结果的一致性是不可避免的。
在相关技术中,通常采用以下两种测试方案:
1.准备相同的平台数据和主机数据后,分别运行主机和平台批量并比对输出结果;
2.按照试点与非试点地区准备数据,主机作业运行在非试点地区,平台作业运行在试点地区,最后核对试点与非试点地区的输出结果。
然而,发明人在实现本公开构思的过程中发现,对于某些涉及账务处理类的批量作业,尤其是涉及到与其他应用有接口数据交互时,存在主机和平台不能完全支持作业重跑的情况。例如对公理财的认购、申购、赎回等核心业务的作业,批量作业在主机或者平台的某一侧执行完成后,本应用或者外应用系统里的账户、协议、产品等表的一些关键字段已经发生改变,已经不具备在另一侧执行对应作业的能力;而为了支持重跑进行数据恢复,由于涉及多个应用多个系统,存在数据范围不确定、环境配置不熟悉等困难,数据恢复非常消耗时间和人力成本。
因而,相关技术中亟需一种较为高效的自动化测试方法。
发明内容
鉴于上述问题,本公开提供了一种自动化测试方法、装置、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种自动化测试方法,包括:
根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,所述第一操作行为是在利用第一自动化测试装置对所述待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;
响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,所述第三数据库表是与第一数据库表具有映射关系的影子表;以及
对所述第四数据库表和所述第二数据库表进行一致性校验,生成校验结果。
根据本公开的实施例,在所述根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表之前,所述方法还包括:
根据所述第一数据库表的表名创建初始影子表,其中,所述初始影子表的表结构与所述第一数据库表的表结构相同;
将所述第一数据库表中的数据复制至所述初始影子表,生成所述影子表。
根据本公开的实施例,所述将所述第一数据库表中的数据复制至所述初始影子表,生成所述影子表包括:
在所述第一数据库表中的数据量大于预设阈值的情况下,将所述第一数据库表划分成多个第一子数据库表;
通过分布式批量复制的方式分别将所述多个第一子数据库表中的数据复制至所述初始影子表,生成所述影子表。
根据本公开的实施例,所述响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表包括:
获取预先配置的针对所述第一数据库表的自动化测试脚本;
将所述自动化测试脚本中的所述第一数据库表的标识信息修改为所述第三数据库表的标识信息,以使所述自动化测试脚本针对所述第三数据库表执行所述自动化测试操作,生成所述第四数据库表。
根据本公开的实施例,所述第三数据库表中包括需要调用外部数据进行测试的待测数据;
所述方法还包括:
响应于针对所述待测数据的自动化测试操作而发出的数据交互请求,对所述交互请求进行拦截;
解析所述交互请求,生成解析结果;
根据所述解析结果,从预先配置完成的报文数据库中确定与所述解析结果相匹配的报文数据;
利用所述报文数据对所述第三数据库表进行修改。
根据本公开的实施例,所述方法还包括:
获取所述第一自动化测试装置的待测数据库表;
利用存量移行及增量复制方法将所述待测数据库表中的数据复制至预先创建的初始第一数据库表中,生成所述第一数据库表。
本公开的第二方面提供了一种自动化测试装置,包括:
第一生成模块,用于根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,所述第一操作行为是在利用第一自动化测试装置对所述待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;
第二生成模块,用于响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,所述第三数据库表是与第一数据库表具有映射关系的影子表;以及
第三生成模块,用于对所述第四数据库表和所述第二数据库表进行一致性校验,生成校验结果。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述自动化测试方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述自动化测试方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述自动化测试方法。
根据本公开的实施例,由于采用了针对根据第一数据库表生成的第一数据库表,即影子表执行自动化测试任务,生成第四数据库表,然后将四数据库表与根据第一自动化测试装置的第一操作行为对第一数据库表进行自动化测试生成的第二数据库表进行一致性校验,生成校验结果的技术手段,从而解决了相关技术中存在的主机和分布式的平台处理框架对比运行时数据准备复杂而导致的自动化测试效率低的技术问题,使得测试人员可以从复杂的数据准备工作中解脱出来,提高了自动化测试的效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的自动化测试方法、装置的应用场景图;
图2示意性示出了根据本公开实施例的自动化测试方法的流程图;
图3示意性示出了根据本公开另一实施例的自动化测试方法的流程图;
图4示意性示出了根据本公开实施例的响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表的流程图;
图5示意性示出了在加入服务拦截器前的服务调用示意图;
图6示意性示出了在加入服务拦截器后的服务调用示意图;
图7示意性示出了根据本公开另一实施例的自动化测试方法的流程图;
图8示意性示出了本公开实施例提供的自动化测试方法的系统架构图;
图9示意性示出了根据本公开实施例的自动化测试装置的结构框图;以及
图10示意性示出了根据本公开实施例的适于实现自动化测试方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
本公开提供了一种自动化测试方法,可以应用于数据处理领域以及金融领域。该自动化测试方法包括:根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,第一操作行为是在利用第一自动化测试装置对待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,第三数据库表是与第一数据库表具有映射关系的影子表;以及对第四数据库表和第二数据库表进行一致性校验,生成校验结果。本公开还提供了一种自动化测试装置、设备、存储介质和程序产品。
图1示意性示出了根据本公开实施例的自动化测试方法、装置的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的自动化测试方法一般可以由服务器105执行。相应地,本公开实施例所提供的自动化测试装置一般可以设置于服务器105中。本公开实施例所提供的自动化测试方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的自动化测试装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图8对公开实施例的自动化测试方法进行详细描述。
图2示意性示出了根据本公开实施例的自动化测试方法的流程图。
在本公开的实施例中,自动化测试方法可以由分布式的平台处理框架执行,第一自动化测试装置可以包括大型主机,例如国际商业机器公司(International BusinessMachines Corporation,IBM)公司的Z系列主机等。但不限于此,本公开实施例提供的自动化测试方法还可以由主机执行,第一自动化测试装置可以包括分布式的平台处理框架。
根据本公开的实施例,主机和分布式的平台处理框架可以被配置为针对同一待测项目执行自动化测试。
根据本公开的实施例,待测项目例如可以包括控制系统、管理系统、操作系统等软件系统或者应用程序等。
如图2所示,该实施例的自动化测试包括操作S201~操作S203。
在操作S201,根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,第一操作行为是在利用第一自动化测试装置对待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的。
根据本公开的实施例,可以在第一自动化测试装置对待测数据库表进行自动化测试时,获取第一自动化测试装置中配置的自动化测试用例执行过程中对数据的操作行为,操作行为例如可以包括对数据的加操作、减操作、乘操作等,通过这些操作行为的记录可以获取到待测数据库表中的数据发生变化的详细过程,从而可以根据第一操作行为对第一数据库表执行相同的操作,生成第二数据库表。
根据本公开的实施例,自动化测试用例可以包括对待测数据库表进行自动化测试用的脚本,利用自动化测试工具执行自动化测试脚本即可实现对待测数据库表的自动化测试。
根据本公开的实施例,自动化测试用例可以由针对待测数据库表建立的测试用例文档进行转化得到,例如,根据自动化测试工具的特性选择自动化测试脚本的类型,将测试用例文档中的属性信息转化到自动化测试脚本中。
根据本公开的实施例,第一数据库表可以是在第一自动化测试装置对待测数据库表进行自动化测试之前根据待测数据库表生成的。
根据本公开的实施例,由于第一数据库表是在第一自动化测试装置对待测数据库表进行自动化测试之前根据待测数据库表生成的,从而可以保证主机和分布式的平台处理框架所测试的数据库表是相同的,而无需在主机/分布式的平台处理框架执行完自动化操作后,为了分布式的平台处理框架/主机测试相同的数据库表而执行数据恢复操作。
在操作S202,响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,第三数据库表是与第一数据库表具有映射关系的影子表。
根据本公开的实施例,针对第三数据库表执行自动化测试操作所用到的自动化测试用例可以与第一自动化测试装置中配置的自动化测试用例相同,从而可以对第三数据库表执行与第一自动化测试装置针对待测数据库表所执行的相同的自动化测试操作。
在操作S203,对第四数据库表和第二数据库表进行一致性校验,生成校验结果。
根据本公开的实施例,校验结果可以表征第四数据库表和第二数据库表的一致性程度;在校验结果表征第四数据库表和第二数据库表不完全一致的情况下,校验结果可以显示出第四数据库表和第二数据库表的差异所在。
在本公开的实施例中,由于采用了针对根据第一数据库表生成的第一数据库表,即影子表执行自动化测试任务,生成第四数据库表,然后将四数据库表与根据第一自动化测试装置的第一操作行为对第一数据库表进行自动化测试生成的第二数据库表进行一致性校验,生成校验结果的技术手段,从而解决了相关技术中存在的主机和分布式的平台处理框架对比运行时数据准备复杂而导致的自动化测试效率低的技术问题,使得测试人员可以从复杂的数据准备工作中解脱出来,提高了自动化测试的效率。
图3示意性示出了根据本公开另一实施例的自动化测试方法的流程图。
如图3所示,该实施例的自动化测试包括操作S301~操作S302。
在操作S301,根据第一数据库表的表名创建初始影子表,其中,初始影子表的表结构与第一数据库表的表结构相同。
根据本公开的实施例,可以按照预设规则将第一数据库表的表名映射至创建的影子表。
根据本公开的实施例,预设规则例如可以包括为第一数据库表的表名增加一个后缀,但不限于此,还可以包括为第一数据库表的表名减少一个后缀或者在不改变第一数据库表的表名后缀数量的情况下,对后缀进行格式化修改。
在操作S302,将第一数据库表中的数据复制至初始影子表,生成影子表。
根据本公开的实施例,在自动化测试过程中,影子表可以是正式表,即第一数据库表的一个镜像表,影子表的表格式与正式表一致。数据可以定时从正式表复制到影子表中。
根据本公开的实施例,影子表可以仅存在于自动化测试提供的环境中,自动化测试结束后,可以删除影子表。
根据本公开的实施例,操作S302可以包括以下操作:
在第一数据库表中的数据量大于预设阈值的情况下,将第一数据库表划分成多个第一子数据库表;
根据本公开的实施例,预设阈值的大小可以由本领域技术人员根据实际应用需求而灵活设置,本公开实施例不对预设阈值的数值做具体限定。
根据本公开的实施例,在第一数据库表中的数据量大于预设阈值的情况下,可以根据第一数据库表的分区和/或记录条数划分成多个第一子数据库表。
通过分布式批量复制的方式分别将多个第一子数据库表中的数据复制至初始影子表,生成影子表。
根据本公开的实施例,由于影子表的表格式与第一数据库表的表格式相同,从而可以将第一子数据库表复制至影子表中与第一数据库表相对应的位置进行存储。
根据本公开的实施例,通过在第一数据库表中的数据量大于预设阈值的情况下,对第一数据库表进行划分,然后进行分布式批量复制,从而可以提高生成影子表的生成效率。
根据本公开的实施例,在第一数据库表中的数据量小于预设阈值的情况下,可以利用预设语句将数据从第一数据库表复制至影子表中。预设语句例如可以包括“INSERTINTO影子表SELECT*FROM第一数据库表”。
根据本公开的实施例,在第一自动化测试装置执行自动化测试操作后,第三数据库表已经根据记录的第一操作行为而修改了。由于第三数据库表中的数据已经发生变化,所以不能继续基于第三数据库表执行自动化测试操作。此时,可以通过虚拟化拦截装置,将针对第三数据库表的自动化测试操作映射至影子表,保证自动化测试操作的顺利运行。
根据本公开的实施例,虚拟化拦截装置可以包括结构化查询语言(StructuredQuery Language,SQL)拦截器以及服务拦截器。
图4示意性示出了根据本公开实施例的响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表的流程图。
如图4所示,该实施例的自动化测试包括操作S401~操作S402。
在操作S401,获取预先配置的针对第一数据库表的自动化测试脚本。
在操作S402,将自动化测试脚本中的第一数据库表的标识信息修改为第三数据库表的标识信息,以使自动化测试脚本针对第三数据库表执行自动化测试操作,生成第四数据库表。
根据本公开的实施例,操作401~操作S402可以由SQL拦截器执行。
根据本公开的实施例,SQL拦截器可以在自动化测试脚本执行之前就预先对自动化测试脚本中的标识信息进行修改。
在本公开的一些实施例中,分布式的平台处理框架DBF,大多采用druid连接池来管理数据库连接,并且提供了SQL拦截器的切面;可通过实现自定义的SQL拦截器,将需要拦截的是数据操纵语言(Data Manipulation Language,DML)在执行前截获并将第一数据库表的表名修改为影子表表名,从而实现DML运行结果的映射转移。
根据本公开的实施例,第三数据库表中包括需要调用外部数据进行测试的待测数据。
本公开实施例提供的自动化测试方法还可以包括以下操作:
响应于针对待测数据的自动化测试操作而发出的数据交互请求,对交互请求进行拦截;
解析交互请求,生成解析结果;
根据解析结果,从预先配置完成的报文数据库中确定与解析结果相匹配的报文数据;
利用报文数据对第三数据库表进行修改。
根据本公开的实施例,以上操作可以由服务拦截器执行。
图5示意性示出了在加入服务拦截器前的服务调用示意图。
如图5所示,客户端501发出调用请求后,调用请求由客户端存根502打包成网络消息,然后通过网络503远程发送给服务端存根504。服务端存根504接收到来自客户端存根502的网络消息后,将网络消息解包发送给服务器505以调用数据。成功调用数据后,沿反方向将数据返回给客户端501。
根据本公开的实施例,由于第三数据库表中的数据与待测数据库表中的数据相同,因而在第一自动化测试装置针对待测数据库进行自动化测试的过程中,需要调用外部数据进行测试的待测数据已经经过了测试,并且测试完成后外部数据也已经相应的进行了变更。因此,如果在对第三数据库进行自动化测试时,再对待测数据进行相同的测试,则将会导致外部数据的再次修改。因而,在本公开的实施例中,创新性的应用了服务拦截器以拦截再次对外部数据的调用。
图6示意性示出了在加入服务拦截器后的服务调用示意图。
如图6所示,客户端601在发出交互请求后,交互请求由客户端存根602打包成网络消息,然后将网络消息发送给至服务拦截器603,对交互请求进行拦截。对交互请求进行拦截后,解析该交互请求,生成解析结果,直接从报文数据库中返回与解析结果的报文数据,从而实现了屏蔽与外应用的交互,实现了服务调用的本地闭环处理。
图7示意性示出了根据本公开另一实施例的自动化测试方法的流程图。
如图7所示,该实施例的自动化测试包括操作S701~操作S702。
在操作S701,获取第一自动化测试装置的待测数据库表。
在操作S702,利用存量移行及增量复制方法将待测数据库表中的数据复制至预先创建的初始第一数据库表中,生成第一数据库表。
根据本公开的实施例,存量移行及增量复制(Q Replication,QR)方法的环境链路为:第一自动化测试装置-QR-KAFKA-平台。
根据本公开的实施例,对第四数据库表和第二数据库表进行一致性校验,生成校验结果可以由结果对比器来实现。
根据本公开的实施例,结果对比器可以自动化的对第四数据库表和第二数据库表进行一致性校验,并输出校验结果展示给测试人员。
根据本公开的实施例,结果对比器可以执行通过执行以下操作对第四数据库表和第二数据库表进行一致性校验:
判断第四数据库表和第二数据库表的业务主键,在第四数据库表和第二数据库表的业务主键相等的情况下,对比记录其余字段,在第四数据库表和第二数据库表的业务主键不相等的情况下,记录错误表。
在第四数据库表的业务主键小于第二数据库表的业务主键的情况下,记录错误,保留第二数据库表的业务主键,继续读取第四数据库表的下一条记录,直至第四数据库表和第二数据库表的业务主键相等。
在第四数据库表的业务主键大于第二数据库表的业务主键的情况下,记录错误,保留第四数据库表的业务主键,继续读取第二数据库表的下一条记录,直至第四数据库表和第二数据库表的业务主键相等。
图8示意性示出了本公开实施例提供的自动化测试方法的系统架构图。
在图8中,以第一自动化测试装置为主机进行说明,但本领域技术人员应当知晓的是,第一自动化测试可以为主机,也可以为分布式的平台处理框架。
如图8所示,可以在执行自动化测试方法之前,准备主机801测试数据,生成待测数据库表803。生成待测数据库表803后,利用QR同步方法将待测数据库表803中的数据复制到平台正式表中,生成第一数据库表804。然后可以根据第一数据库表804,创建生成初始影子表,然后利用数据复制器806将第一数据库表804中的数据复制到初始影子表中,生成影子表807。
数据准备阶段完成后,首先由主机801对待测试数据进行自动化测试,在主机801对待测试数据进行自动化测试时,其DML语句产生的数据变动,除了修改待测数据表外,还通过QR同步方法同步至第一数据库表,从而可以对第一数据库表做出与待测数据库表相同的修改,生成第二数据库表。
主机执行完自动化测试操作后,由分布式的平台处理框架802执行自动化操作,由于第一数据库表已经发生变动,所以无法针对第一数据库表执行自动化测试操作。此时,可以由虚拟化拦截装置805将分布式的平台处理框架802的DML语言和服务进行拦截,并将DML语言和服务映射至影子表807中,以对影子表807进行自动化测试,生成第四数据库表。
分布式的平台处理框架执行完自动化测试操作后,可以由结果对比器808对第四数据库表和第二数据库表进行一致性校验,生成校验结果。
根据本公开的实施例,数据复制器可以基于分布式批量框架构建,但不限于此,还可以采用Quartz、Timer等本地定时任务来实现。
基于上述自动化测试方法,本公开还提供了一种自动化测试装置。以下将结合图9对该装置进行详细描述。
图9示意性示出了根据本公开实施例的自动化测试装置的结构框图。
如图9所示,该实施例的自动化测试装置900包括第一生成模块901、第二生成模块902和第三生成模块903。
第一生成模块901用于根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,第一操作行为是在利用第一自动化测试装置对待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的。在一实施例中,第一生成模块901可以用于执行前文描述的操作S201,在此不再赘述。
第二生成模块902用于响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,第三数据库表是与第一数据库表具有映射关系的影子表。在一实施例中,第二生成模块902可以用于执行前文描述的操作S202,在此不再赘述。
第三生成模块903用于对第四数据库表和第二数据库表进行一致性校验,生成校验结果。在一实施例中,第三生成模块903可以用于执行前文描述的操作S203,在此不再赘述。
根据本公开的实施例,自动化测试装置900还包括创建模块和第四生成模块。
创建模块,用于根据第一数据库表的表名创建初始影子表,其中,初始影子表的表结构与第一数据库表的表结构相同;
第四生成模块,用于将第一数据库表中的数据复制至初始影子表,生成影子表。
根据本公开的实施例,第四生成模块包括划分单元和第一生成单元。
划分单元,用于在第一数据库表中的数据量大于预设阈值的情况下,将第一数据库表划分成多个第一子数据库表;
第一生成单元,用于通过分布式批量复制的方式分别将多个第一子数据库表中的数据复制至初始影子表,生成影子表。
根据本公开的实施例,第二生成模块902包括第一获取单元和修改单元。
第一获取单元,用于获取预先配置的针对第一数据库表的自动化测试脚本;
修改单元,用于将自动化测试脚本中的第一数据库表的标识信息修改为第三数据库表的标识信息,以使自动化测试脚本针对第三数据库表执行自动化测试操作,生成第四数据库表。
根据本公开的实施例,第三数据库表中包括需要调用外部数据进行测试的待测数据。
根据本公开的实施例,自动化测试装置900还包括拦截模块、解析模块、第一确定模块和修改模块。
拦截模块,用于响应于针对待测数据的自动化测试操作而发出的数据交互请求,对交互请求进行拦截;
解析模块,用于解析交互请求,生成解析结果;
第一确定模块,用于根据解析结果,从预先配置完成的报文数据库中确定与解析结果相匹配的报文数据;
修改模块,用于利用报文数据对第三数据库表进行修改。
根据本公开的实施例,自动化测试装置900还包括获取模块和第五生成模块。
获取模块,用于获取第一自动化测试装置的待测数据库表。
第五生成模块,用于利用存量移行及增量复制方法将待测数据库表中的数据复制至预先创建的初始第一数据库表中,生成第一数据库表。
根据本公开的实施例,第一生成模块901、第二生成模块902和第三生成模块903中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一生成模块901、第二生成模块902和第三生成模块903中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一生成模块901、第二生成模块902和第三生成模块903中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于实现自动化测试方法的电子设备的方框图。
如图10所示,根据本公开实施例的电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有电子设备1000操作所需的各种程序和数据。处理器1001、ROM 1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。电子设备1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM 1003以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的物品推荐方法。
在该计算机程序被处理器1001执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分1009被下载和安装,和/或从可拆卸介质1011被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (10)

1.一种自动化测试方法,包括:
根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,所述第一操作行为是在利用第一自动化测试装置对所述待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;
响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,所述第三数据库表是与第一数据库表具有映射关系的影子表;以及
对所述第四数据库表和所述第二数据库表进行一致性校验,生成校验结果。
2.根据权利要求1所述的方法,在所述根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表之前,所述方法还包括:
根据所述第一数据库表的表名创建初始影子表,其中,所述初始影子表的表结构与所述第一数据库表的表结构相同;
将所述第一数据库表中的数据复制至所述初始影子表,生成所述影子表。
3.根据权利要求2所述的方法,所述将所述第一数据库表中的数据复制至所述初始影子表,生成所述影子表包括:
在所述第一数据库表中的数据量大于预设阈值的情况下,将所述第一数据库表划分成多个第一子数据库表;
通过分布式批量复制的方式分别将所述多个第一子数据库表中的数据复制至所述初始影子表,生成所述影子表。
4.根据权利要求1所述的方法,其中,所述响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表包括:
获取预先配置的针对所述第一数据库表的自动化测试脚本;
将所述自动化测试脚本中的所述第一数据库表的标识信息修改为所述第三数据库表的标识信息,以使所述自动化测试脚本针对所述第三数据库表执行所述自动化测试操作,生成所述第四数据库表。
5.根据权利要求1所述的方法,其中,所述第三数据库表中包括需要调用外部数据进行测试的待测数据;
所述方法还包括:
响应于针对所述待测数据的自动化测试操作而发出的数据交互请求,对所述交互请求进行拦截;
解析所述交互请求,生成解析结果;
根据所述解析结果,从预先配置完成的报文数据库中确定与所述解析结果相匹配的报文数据;
利用所述报文数据对所述第三数据库表进行修改。
6.根据权利要求1所述的方法,还包括:
获取所述第一自动化测试装置的待测数据库表;
利用存量移行及增量复制方法将所述待测数据库表中的数据复制至预先创建的初始第一数据库表中,生成所述第一数据库表。
7.一种自动化测试装置,包括:
第一生成模块,用于根据第一操作行为,对根据待测数据库表生成的第一数据库表进行修改,生成第二数据库表,其中,所述第一操作行为是在利用第一自动化测试装置对所述待测数据库表进行自动化测试时,对自动化测试操作行为进行记录而生成的;
第二生成模块,用于响应于自动化测试指令,针对第三数据库表执行自动化测试操作,生成第四数据库表,其中,所述第三数据库表是与第一数据库表具有映射关系的影子表;以及
第三生成模块,用于对所述第四数据库表和所述第二数据库表进行一致性校验,生成校验结果。
8.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~6中任一项所述的方法。
CN202111567688.8A 2021-12-20 2021-12-20 自动化测试方法、装置、设备、介质 Pending CN114253852A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111567688.8A CN114253852A (zh) 2021-12-20 2021-12-20 自动化测试方法、装置、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111567688.8A CN114253852A (zh) 2021-12-20 2021-12-20 自动化测试方法、装置、设备、介质

Publications (1)

Publication Number Publication Date
CN114253852A true CN114253852A (zh) 2022-03-29

Family

ID=80793406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111567688.8A Pending CN114253852A (zh) 2021-12-20 2021-12-20 自动化测试方法、装置、设备、介质

Country Status (1)

Country Link
CN (1) CN114253852A (zh)

Similar Documents

Publication Publication Date Title
US11762763B2 (en) Orchestration for automated performance testing
US20200242005A1 (en) Function-message oriented test case generation for supporting continuous globalization verification testing
US11288170B1 (en) Log analysis debugging without running on real production environment
EP4155935A1 (en) Cloud migration for legacy on-premises process code
CN112463729A (zh) 数据文件的入库方法、装置、电子设备和介质
CN115168341A (zh) 一种业务处理方法、系统、介质及设备
CN114116509A (zh) 程序分析方法、装置、电子设备和存储介质
CN114281803A (zh) 数据迁移方法、装置、设备、介质和程序产品
CN113515271A (zh) 服务代码生成方法、装置、电子设备及可读存储介质
CN116257226A (zh) 数据校验方法、装置、电子设备及存储介质
CN115934537A (zh) 接口测试工具生成方法、装置、设备、介质及产品
CN112506781B (zh) 测试监控方法、装置、电子设备、存储介质及程序产品
CN111865726B (zh) 业务消息测试方法、装置、计算机系统和存储介质
CN115248680A (zh) 软件构建方法、系统、设备、介质和程序产品
CN114253852A (zh) 自动化测试方法、装置、设备、介质
CN114035864A (zh) 接口处理方法、接口处理装置、电子设备和存储介质
CN113064987A (zh) 数据处理方法、装置、电子设备、介质和程序产品
CN114266547A (zh) 业务处理策略的识别方法、装置、设备、介质及程序产品
CN113760467A (zh) 事务处理方法、装置、计算机系统及存储介质
CN113360417A (zh) 测试方法、会话修改器、电子设备以及介质
CN113806229A (zh) 接口变更的测试脚本复用方法、装置、设备、介质及产品
CN114201214A (zh) 文件生成方法、装置、电子设备、介质和程序产品
CN116795867A (zh) 数据处理方法、装置、电子设备和介质
CN116069312A (zh) 页面渲染方法及装置、电子设备和计算机可读存储介质
CN114817073A (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