CN113312259A - 一种接口测试方法及装置 - Google Patents

一种接口测试方法及装置 Download PDF

Info

Publication number
CN113312259A
CN113312259A CN202110579668.6A CN202110579668A CN113312259A CN 113312259 A CN113312259 A CN 113312259A CN 202110579668 A CN202110579668 A CN 202110579668A CN 113312259 A CN113312259 A CN 113312259A
Authority
CN
China
Prior art keywords
field
test
date
data
test case
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
CN202110579668.6A
Other languages
English (en)
Other versions
CN113312259B (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.)
WeBank Co Ltd
Original Assignee
WeBank 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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN202110579668.6A priority Critical patent/CN113312259B/zh
Publication of CN113312259A publication Critical patent/CN113312259A/zh
Application granted granted Critical
Publication of CN113312259B publication Critical patent/CN113312259B/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/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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/02Banking, e.g. interest calculation or account maintenance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Development Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及金融科技(Fintech)领域,公开一种接口测试方法及装置,确定录制前业务数据库中与测试用例相关联的第一数据记录;其中的日期数据为以设定日期字段的字段值为参照的日期相对关系;录制测试用例在第一业务***中运行后的第一测试结果;在回放测试用例前,通过第一数据记录还原业务数据库;其中的第二数据记录的日期数据是根据日期相对关系和回放时间得到的;回放测试用例并记录测试用例在第二业务***中运行后的第二测试结果;根据两个测试结果,确定第一业务***升级至第二业务***的接口测试结果。通过该方式,可实现业务***升级过程中,基于相同的测试用例对升级后的接口进行测试,克服了接口测试时需要重复构建测试用例的缺点。

Description

一种接口测试方法及装置
技术领域
本申请实施例涉及金融科技(Fintech)领域,尤其涉及一种接口测试方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:大数据、云计算或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变。在大数据技术的背景下,银行各业务***也在不断地进行着升级与更新。各外部***通过各接口与各业务***对接,在银行各业务***升级后,为确保各外部***对银行各业务的正常使用,需要对升级前后的业务***的接口进行测试。
目前,对银行的业务***的接口进行测试的方法主要是通过为每一个测试点编写自动化测试脚本,具体可以包括以下内容:
1、根据测试点从数据仓库获取所需数据形态的数据,构造请求报文模块;
2、接口自动调用模块;
3、返回结果检查模块,包括对返回报文和数据库内容的检查。
以银行贷款业务为例,上述自动化测试由于很多测试场景和数据生命周期有关,构造数据需要跟随批量,而且构造出的测试数据也是一次性的,无法重复利用;因而需要构建大量的测试用例。
综上,目前亟需一种高效的对接口进行测试的方法。
发明内容
本申请提供一种接口测试方法及装置,用以高效地实现对业务***升级后的接口进行自动化测试,即无需重复构建针对于同一测试点的测试用例。
第一方面,本申请实施例提供一种接口测试方法,该方法包括:确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系;录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果;在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的;回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果;根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
基于该方案,本申请基于流量录制与回放的手段,并具体结合测试用例在业务***中具有生命周期的特点,在流量录制之前,可记录流量录制时候的时间与一个设定日期字段的字段值之间的日期相对关系;从而在技术人员对该业务***进行升级后,为了实现数据的高可用,可调用已经进行过测试点测试的测试用例的历史数据记录,而继续对升级后的业务***的接口进行测试;其中在该过程中,可通过将该测试用例当前在业务数据库中的数据记录恢复到流量录制之前的数据记录,同时根据日期相对关系对已经恢复到流量录制之前的数据记录中的日期数据进行适应修改,从而就可以基于同一种测试环境,来确定该测试用例在同一测试点下的测试结果是否一致,以最终判定该业务***升级过程中接口是否发生异常。通过该方式,可以实现业务***升级过程中,基于相同的测试用例对升级后的接口进行测试,克服了背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述确定录制前业务数据库中与测试用例相关联的第一数据记录,包括:确定所述测试用例的数据形态;所述数据形态是所述业务数据库中具有所述测试用例的至少一个关键字的各数据表的表信息,所述数据形态中还包括用于指示日期字段的指示信息;通过所述数据形态,确定录制前所述业务数据库中与所述测试用例相关联的第三数据记录及所述第三数据记录中的各日期字段;针对所述第三数据记录中的任一非设定日期字段,以所述第三数据记录中的所述设定日期字段的字段值与所述非设定日期字段的字段值的关系,作为所述非设定日期字段中的日期数据,从而得到所述第一数据记录。
基于该方案,在将测试用例用于对第一业务***的接口进行测试之前,可根据该测试用例的数据形态获取该测试用例在业务数据库中的全部记录信息,即第三数据记录及第三数据记录中的各日期字段,接着对于各日期字段在业务数据库中所记载的日期,可通过将该日期转换成一个与一设定日期字段的字段值具有相对关系的日期数据,从而可以得到第一数据记录。该方案中通过在接口测试之前,将测试用例在业务数据库中有关于日期字段的记录转换成与一个设定日期字段的字段值具有相对关系的日期数据,从而在业务***进行升级时,就可以将历史的测试用例用于对升级后的业务***的接口的测试中,此时仅需要根据相对关系对测试用例在当前业务数据库中的日期进行适应修改,使得本次测试时候的测试环境与测试用例在录制时候的测试环境一致,从而就可以基于本次测试时候的测试结果与录制时候的测试结果,确定升级后的业务***的接口是否发生异常,实现了对测试用例的一次录制,却可以将所录制的测试用例用于每一次的业务***升级时候的接口测试,克服了背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述通过所述第一数据记录,还原所述业务数据库,包括:通过所述数据形态,确定回放前所述业务数据库中与所述测试用例相关联的第四数据记录;根据所述第一数据记录和所述第四数据记录,还原所述业务数据库;针对还原后的业务数据库中与所述第一数据记录对应的第二数据记录中的任一日期字段,根据所述第一数据记录中所述日期字段的日期相对关系和回放时间,确定所述第二数据记录中所述日期字段的日期数据。
基于该方案,当业务***在进行升级后,关于升级后的业务***的接口是否发生异常的问题,本申请中可以基于历史的测试用例来对升级后的业务***的接口进行测试;其中,可以基于测试用例的数据形态,获取测试用例当前在业务数据库中的全部记录信息,即第四数据记录,然后基于第一数据记录对第四数据记录进行修改,而使得测试用例在业务数据库中的记录信息被修改为前期接口测试时候的记录信息,尤其还需要根据相对关系和本次接口测试的时间(即回放时间)对测试用例在业务数据库中的日期字段的数据进行适应修改,那么就可以使得本次接口测试环境与前期接口测试时候的环境一致,因此在相同的测试环境下,如果两次测试结果一致(本申请中默认前期接口测试时候的测试结果为接口正常),则说明本次业务***的升级并不会使接口发生异常。该方式可以实现通过对测试用例的一次录制,但却可以将所录制的测试用例用于每一次的业务***升级时候的接口测试,如此可以克服背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果,包括:获取所述测试用例的各校验字段;所述各校验字段是根据对所述测试用例的多次测试结果确定的;针对任一校验字段,确定所述校验字段在所述第一测试结果中的第一值与在所述第二测试结果中的第二值的关系;根据各校验字段在所述第一测试结果和所述第二测试结果之间的关系,确定所述第一业务***升级至所述第二业务***的接口测试结果。
基于该方案,在对业务***升级后的接口进行测试的过程中,可以根据测试用例的各校验字段进行接口是否发生异常的检查。其中,针对任一个校验字段,通过将该校验字段在第一测试结果(即前期接口测试时候的测试结果)中的第一值与该校验字段在第二测试结果中的第二值进行比较,如果对每一个待校验字段,第一值与第二值均相同的话,则说明业务***升级后的接口并未发生异常(本申请中默认前期接口测试时候的测试结果为接口正常)。在该方式中,由于用于检查接口是否发生异常的测试用例的各校验字段是对测试用例进行多次测试而自动确认出来的,因此可以得到一个准确而全面的用于确定业务***升级后的接口是否发生异常的标准,且该种自动化确定评价标准的方式远大于人工制定评价标准的效率以及质量。
在一种可能实现的方法中,所述各校验字段是根据对所述测试用例的多次测试结果确定的,包括:录制所述测试用例在所述第一业务***中运行后的第三测试结果和第四测试结果;针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段。
基于该方案,在用测试用例对业务***的接口进行测试后,基于测试时候录制的请求报文对同一业务***发起多次请求,如发起两次请求,如此可以基于这两次请求返回的测试结果而确定出校验字段;其中,对于同一个请求报文,业务***两次返回的字段应该相同,只不过其中的一些字段的值会随着请求发生的先后顺序而发生改变,这说明该些随着请求发生的时间、值会产生变动的字段并不可以成为判断业务***升级过程中接口是否发生异常的检测标准,反而是两次请求过程中值不会发生变动的各字段可以作为判断业务***升级过程中接口是否发生异常的检测标准。基于此,本申请中可以通过多次向业务***发起流量录制时候的请求报文,就可以自动化地确定出用于判断业务***升级过程中接口是否发生异常的检测标准,该方式相比于人工确定检测标准的方案,具有更高的准确性和效率。
在一种可能实现的方法中,所述确定所述字段为校验字段之前,还包括:确定所述第三测试结果中的第一报文的返回码和所述第四测试结果中的第二报文的返回码相同;所述针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段,包括:针对测试结果中的任一报文字段,若所述报文字段在所述第一报文中的字段值和在所述第二报文中的字段值相同,则将所述报文字段作为校验字段;针对测试结果中的任一表字段,若所述表字段在所述第三测试结果对应的第一表记录中的字段值和在所述第四测试结果对应第二表记录中的字段值相同,则将所述表字段作为校验字段。
基于该方案,在使用多次(如两次)向业务***发送流量录制时候的请求报文以自动化确定各校验字段的时候,其中由于对接口的测试包括对返回报文以及数据库内容的检查,因此可以在两次测试结果中的报文的返回码一致的时候,再去确定待校验的各报文字段以及待校验的各表字段,以避免发生在已经确定出各表字段后,却发现返回码并不一致,而导致的最终无法获取用于校验的各字段的问题,相比之下,本申请中通过先确定返回码的状态,而后再确定具体的校验字段的方式,则可以提升自动化确定校验字段的效率。
在一种可能实现的方法中,所述确定所述测试用例的数据形态,包括:根据所述测试用例中的第一关键字,查询所述业务数据库,获取所述测试用例的第二关键字;从所述业务数据库中查询出具有所述第一关键字或所述第二关键字的各数据表;对具有所述第一关键字或所述第二关键字的各数据表进行去噪,获取各有效数据表;若所述各有效数据表的表结构中包括日期字段,则对所述日期字段设置指示信息;将所述各有效数据表的表信息和各日期字段的指示信息作为所述测试用例的数据形态。
基于该方案,在业务数据库中,关于同一个测试用例,可能存在着用于表示该测试用例的各关键字,因此,可通过对业务数据库的查询而获取到含有各关键字的各数据表,并对获得的各数据表去噪,进而获得各有效数据表,进一步地,如果一有效数据表中含有日期字段,则可以为该日期字段设置指示信息,并最终可以将各有效数据表的表信息以及各日期字段的指示信息作为测试用例的数据形态,从而在对业务***的接口进行测试的过程中,即可以依据测试用例的数据形态去业务数据库中获取测试用例的全部记录信息;此外,由于为日期字段设置了指示信息,如此在对升级后的业务***的接口进行测试时候的日期字段的对应的数据进行调整时,则可以凭借有指示信息的日期字段而快速实现日期的调整。
第二方面,本申请实施例提供一种接口测试装置,该装置包括:数据记录确定单元,用于确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系;录制回放单元,用于录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果;业务数据库还原单元,用于在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的;所述录制回放单元,还用于回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果;接口测试结果输出单元,用于根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
基于该方案,本申请基于流量录制与回放的手段,并具体结合测试用例在业务***中具有生命周期的特点,在流量录制之前,可记录流量录制时候的时间与一个设定日期字段的字段值之间的日期相对关系;从而在技术人员对该业务***进行升级后,为了实现数据的高可用,可调用已经进行过测试点测试的测试用例的历史数据记录,而继续对升级后的业务***的接口进行测试;其中在该过程中,可通过将该测试用例当前在业务数据库中的数据记录恢复到流量录制之前的数据记录,同时根据日期相对关系对已经恢复到流量录制之前的数据记录中的日期数据进行适应修改,从而就可以基于同一种测试环境,来确定该测试用例在同一测试点下的测试结果是否一致,以最终判定该业务***升级过程中接口是否发生异常。通过该方式,可以实现业务***升级过程中,基于相同的测试用例对升级后的接口进行测试,克服了背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述数据记录确定单元,具体用于:确定所述测试用例的数据形态;所述数据形态是所述业务数据库中具有所述测试用例的至少一个关键字的各数据表的表信息,所述数据形态中还包括用于指示日期字段的指示信息;通过所述数据形态,确定录制前所述业务数据库中与所述测试用例相关联的第三数据记录及所述第三数据记录中的各日期字段;针对所述第三数据记录中的任一非设定日期字段,以所述第三数据记录中的所述设定日期字段的字段值与所述非设定日期字段的字段值的关系,作为所述非设定日期字段中的日期数据,从而得到所述第一数据记录。
基于该方案,在将测试用例用于对第一业务***的接口进行测试之前,可根据该测试用例的数据形态获取该测试用例在业务数据库中的全部记录信息,即第三数据记录及第三数据记录中的各日期字段,接着对于各日期字段在业务数据库中所记载的日期,可通过将该日期转换成一个与一设定日期字段的字段值具有相对关系的日期数据,从而可以得到第一数据记录。该方案中通过在接口测试之前,将测试用例在业务数据库中有关于日期字段的记录转换成与一个设定日期字段的字段值具有相对关系的日期数据,从而在业务***进行升级时,就可以将历史的测试用例用于对升级后的业务***的接口的测试中,此时仅需要根据相对关系对测试用例在当前业务数据库中的日期进行适应修改,使得本次测试时候的测试环境与测试用例在录制时候的测试环境一致,从而就可以基于本次测试时候的测试结果与录制时候的测试结果,确定升级后的业务***的接口是否发生异常,实现了对测试用例的一次录制,却可以将所录制的测试用例用于每一次的业务***升级时候的接口测试,克服了背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述业务数据库还原单元,具体用于:通过所述数据形态,确定回放前所述业务数据库中与所述测试用例相关联的第四数据记录;根据所述第一数据记录和所述第四数据记录,还原所述业务数据库;针对还原后的业务数据库中与所述第一数据记录对应的第二数据记录中的任一日期字段,根据所述第一数据记录中所述日期字段的日期相对关系和回放时间,确定所述第二数据记录中所述日期字段的日期数据。
基于该方案,当业务***在进行升级后,关于升级后的业务***的接口是否发生异常的问题,本申请中可以基于历史的测试用例来对升级后的业务***的接口进行测试;其中,可以基于测试用例的数据形态,获取测试用例当前在业务数据库中的全部记录信息,即第四数据记录,然后基于第一数据记录对第四数据记录进行修改,而使得测试用例在业务数据库中的记录信息被修改为前期接口测试时候的记录信息,尤其还需要根据相对关系和本次接口测试的时间(即回放时间)对测试用例在业务数据库中的日期字段的数据进行适应修改,那么就可以使得本次接口测试环境与前期接口测试时候的环境一致,因此在相同的测试环境下,如果两次测试结果一致(本申请中默认前期接口测试时候的测试结果为接口正常),则说明本次业务***的升级并不会使接口发生异常。该方式可以实现通过对测试用例的一次录制,但却可以将所录制的测试用例用于每一次的业务***升级时候的接口测试,如此可以克服背景技术中接口测试时需要重复构建测试用例的缺点。
在一种可能实现的方法中,所述接口测试结果输出单元,具体用于:获取所述测试用例的各校验字段;所述各校验字段是根据对所述测试用例的多次测试结果确定的;针对任一校验字段,确定所述校验字段在所述第一测试结果中的第一值与在所述第二测试结果中的第二值的关系;根据各校验字段在所述第一测试结果和所述第二测试结果之间的关系,确定所述第一业务***升级至所述第二业务***的接口测试结果。
基于该方案,在对业务***升级后的接口进行测试的过程中,可以根据测试用例的各校验字段进行接口是否发生异常的检查。其中,针对任一个校验字段,通过将该校验字段在第一测试结果(即前期接口测试时候的测试结果)中的第一值与该校验字段在第二测试结果中的第二值进行比较,如果对每一个待校验字段,第一值与第二值均相同的话,则说明业务***升级后的接口并未发生异常(本申请中默认前期接口测试时候的测试结果为接口正常)。在该方式中,由于用于检查接口是否发生异常的测试用例的各校验字段是对测试用例进行多次测试而自动确认出来的,因此可以得到一个准确而全面的用于确定业务***升级后的接口是否发生异常的标准,且该种自动化确定评价标准的方式远大于人工制定评价标准的效率以及质量。
在一种可能实现的方法中,所述装置还包括校验字段确定单元;所述校验字段确定单元,用于:录制所述测试用例在所述第一业务***中运行后的第三测试结果和第四测试结果;针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段。
基于该方案,在用测试用例对业务***的接口进行测试后,基于测试时候录制的请求报文对同一业务***发起多次请求,如发起两次请求,如此可以基于这两次请求返回的测试结果而确定出校验字段;其中,对于同一个请求报文,业务***两次返回的字段应该相同,只不过其中的一些字段的值会随着请求发生的先后顺序而发生改变,这说明该些随着请求发生的时间、值会产生变动的字段并不可以成为判断业务***升级过程中接口是否发生异常的检测标准,反而是两次请求过程中值不会发生变动的各字段可以作为判断业务***升级过程中接口是否发生异常的检测标准。基于此,本申请中可以通过多次向业务***发起流量录制时候的请求报文,就可以自动化地确定出用于判断业务***升级过程中接口是否发生异常的检测标准,该方式相比于人工确定检测标准的方案,具有更高的准确性和效率。
在一种可能实现的方法中,所述校验字段确定单元,还用于:确定所述第三测试结果中的第一报文的返回码和所述第四测试结果中的第二报文的返回码相同;所述校验字段确定单元,具体用于:针对测试结果中的任一报文字段,若所述报文字段在所述第一报文中的字段值和在所述第二报文中的字段值相同,则将所述报文字段作为校验字段;针对测试结果中的任一表字段,若所述表字段在所述第三测试结果对应的第一表记录中的字段值和在所述第四测试结果对应第二表记录中的字段值相同,则将所述表字段作为校验字段。
基于该方案,在使用多次(如两次)向业务***发送流量录制时候的请求报文以自动化确定各校验字段的时候,其中由于对接口的测试包括对返回报文以及数据库内容的检查,因此可以在两次测试结果中的报文的返回码一致的时候,再去确定待校验的各报文字段以及待校验的各表字段,以避免发生在已经确定出各表字段后,却发现返回码并不一致,而导致的最终无法获取用于校验的各字段的问题,相比之下,本申请中通过先确定返回码的状态,而后再确定具体的校验字段的方式,则可以提升自动化确定校验字段的效率。
在一种可能实现的方法中,所述装置还包括数据形态确定单元;所述数据形态确定单元,用于:根据所述测试用例中的第一关键字,查询所述业务数据库,获取所述测试用例的第二关键字;从所述业务数据库中查询出具有所述第一关键字或所述第二关键字的各数据表;对具有所述第一关键字或所述第二关键字的各数据表进行去噪,获取各有效数据表;若所述各有效数据表的表结构中包括日期字段,则对所述日期字段设置指示信息;将所述各有效数据表的表信息和各日期字段的指示信息作为所述测试用例的数据形态。
基于该方案,在业务数据库中,关于同一个测试用例,可能存在着用于表示该测试用例的各关键字,因此,可通过对业务数据库的查询而获取到含有各关键字的各数据表,并对获得的各数据表去噪,进而获得各有效数据表,进一步地,如果一有效数据表中含有日期字段,则可以为该日期字段设置指示信息,并最终可以将各有效数据表的表信息以及各日期字段的指示信息作为测试用例的数据形态,从而在对业务***的接口进行测试的过程中,即可以依据测试用例的数据形态去业务数据库中获取测试用例的全部记录信息;此外,由于为日期字段设置了指示信息,如此在对升级后的业务***的接口进行测试时候的日期字段的对应的数据进行调整时,则可以凭借有指示信息的日期字段而快速实现日期的调整。
第三方面,本申请实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一实现方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一实现方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种接口测试方法;
图2为本申请实施例提供的一种接口测试装置;
图3为本申请实施例提供的一种计算设备。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
目前,随着银行业务的大力拓展以及计算机技术的不断更新,银行的业务***也在不停的进行着升级与更新。在用户对一业务***升级后,并对该业务***的接口的可用性进行测试,这对于业务***是否能够正常地对外提供服务具有非常重要的意义。
其中,当前对业务***的接口进行测试的方法在于编写测试用例。如可使用编写好的测试用例对接口进行测试,随后根据业务***在测试用例下返回的测试结果,即可确定业务***的接口是否正常可用。
然而,如果将上述接口测试的方法应用于银行等的、数据存在强的生命周期的场景下,则随着业务***的不断更新,用户必将需要不断地编写测试用例,才能够满足对业务***的接口进行测试的目标。例如,在对银行的贷款业务***的接口进行测试时,很多测试场景和数据生命周期有关,构造测试用例需要跟随批量,即便测试环境数据量较少,但一个批量也要小时级的时间。更重要的是,测试用例在使用一次之后就作废了,造成对数据的极大浪费。显然该种接口测试的方法效率很低。
针对上述技术问题,本申请提供一种接口测试方法,如图1所示,该方法包括以下步骤:
步骤101,确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系。
众所周知,银行的贷款业务极为复杂,比如涉及到的业务类型可包括结清操作、确定反欺诈行为的操作等。在本步骤中,又可以以结清操作作为测试点进行说明。当在以结清操作作为测试点时,又可以根据用户最后一次还款的时间对测试点进行细化,如测试点可以为借款日当日结清,又可以为借款日次日结清,还可以为首个账单日结清等等,本申请中不再一一举例结清操作下的各种测试点。每一种测试点对应于一种接口测试的场景,每一种接口测试的场景下,可在流量录制前确定业务数据库中与测试用例相关联的第一数据记录,其中,测试用例为用户确定的用于每种接口测试下的对象。
例如,本申请中可选择以借款日次日结清这一测试点为例进行说明,则一个测试用例可为用户从业务数据库中确定出来的一个将在借款日次日进行结清的账户,从而在测试该账户在借款日次日结清时所对应着的贷款业务***的接口是否是正常之前,需要从业务数据库中获取到与该账户相关联的全部记录信息,也即确定出与测试用例相关联的第一数据记录,其中,第一数据记录中的日期数据为以一设定日期字段的字段值为参照的日期相对关系。
例如,当用户在对借款日次日结清这一测试点对应的贷款业务***的接口进行测试时,可选取的一个测试用例为:一账户向银行的贷款业务***借款设定数目的金额(如1000元)时的借款日为2021.5.1日,则该账户将于2021.5.2日当天向该银行还清该笔借款,也即需还清1000元。说明的是,为了简化接口测试流程,本申请中可假设该账户为一次性向该银行还清借款1000元。
对于银行的贷款场景,数据普遍表现出具有生命周期的特点,因此本申请实施例中可引入日期时序的概念,如在令借款日为0T日时,则对于其他发生在借款日之前或之后的交易的日期可记作为0T±M日;又如对于一分期还款的账户,它的首个账单日可以表示1T日,其他发生在首个账单日之前或之后的交易的日期可以记作为1T±M日。比如针对上述测试用例于2021.5.1日借款1000元、又于2021.5.2日还款1000元的例子,则在流量录制之前,第一数据记录中记载的日期数据可表示为2021.5.2日/0T+1日,其中,0T+1日表示的是结清交易发生在借款日——2021.5.1日/0T日的后一天,即结清交易发生的日期是2021.5.2日。换句话说,本申请实施例中将设定日期字段选取为了借款日,其中借款日这一设定日期字段对应的字段值为2021.5.1日,那么在接口测试为借款日次日结清时,可将流量录制的时间2021.5.2日表示为0T+1日。说明的是,本申请中并不对设定日期字段的选择做限定。
步骤102,录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果。
接着前述的例子,在接口测试为借款日次日结清时,本步骤的流量录制将为:可将测试用例一次性还清全部借款1000元的请求报文发送至银行的贷款业务***;在接收到测试用例的请求报文后,银行的贷款业务***将基于请求报文对测试用例进行处理,并向测试用例返回处理后的第一测试结果。
说明的是,由于本申请的重点在于确定升级后的业务***——第二业务***的接口是否依然正常,因此默认升级前的业务***——第一业务***的接口在测试过程中为正常,也即本申请实施例中默认流量录制时候的第一测试结果为接口测试正常。
步骤103,在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的。
本步骤中,在业务***升级过程中,为了保证升级后的业务***的接口并不会随着升级而变得异常不可用,则需要对升级后的业务***的接口再次进行测试。本申请中为了可以对升级后的业务***在接口测试时,实现对同一测试用例的重复利用,则需要在回放测试用例前,将业务数据库还原到测试用例录制时候的环境。如此的话,则可以在相同的测试环境下,通过将本次接口测试的结果(指对升级后的业务***的接口进行测试后产生的测试结果)与第一测试结果(本申请实施例中默认流量录制时候的第一测试结果为接口测试正常)进行比较,就可以判定本次业务***的升级事件是否会对接口造成不良影响。
例如,在接口测试的测试点为借款日次日结清时,接着前述测试用例在2021.5.2日还清2021.5.1日借款1000元的例子,若在2021.5.19日,用户完成了一次对贷款业务***的升级行为,且将在同日测试升级后的贷款业务***的接口是否发生了异常。则,在回放测试用例前,需要根据流量录制之前、测试用例在业务数据库中的全部记录信息,即第一数据记录,来对本次接口测试时候的业务数据库进行还原。其中,由于当前的接口测试日期为2021.5.19日,则需要根据前述记载的日期相对关系——0T+1日,将测试用例的借款日修改为2021.5.18日。也即,由于当前的接口测试日期2021.5.19日相当于流量录制时候的接口测试日期2021.5.2日,且2021.5.2日相对于借款日2021.5.1日为0T+1日;因此,在接口测试的测试点为借款日次日结清,且当前的接口测试日期为2021.5.19日时,则需要将该接口测试日期向前推一天,从而生成本次接口测试时候的借款日,也即在本次接口测试时,需要将测试用例的借款日更新为2021.5.18日。
步骤104,回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果。
本步骤中,关于对升级后的业务***的接口的测试,在将测试用例当前在业务数据库中的数据记录恢复到与流量录制之前测试用例在业务数据库中的数据记录之后,则可以对录制的流量进行回放,也即将测试用例一次性还清全部借款1000元的请求报文发送至升级后的贷款业务***,并记录升级后的业务***对本次请求报文的响应结果。其中,升级后的业务***即第二业务***,响应结果即第二测试结果。
步骤105,根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
基于前述步骤102,本申请默认了流量录制时候的响应结果为接口测试正常,则通过将流量回放时候的响应结果与流量录制时候的响应结果进行比较,就可以确定出本次业务***的升级是否会对接口造成不良影响。
基于该方案,本申请基于流量录制与回放的手段,并具体结合测试用例在业务***中具有生命周期的特点,在流量录制之前,可记录流量录制时候的时间与一个设定日期字段的字段值之间的日期相对关系;从而在技术人员对该业务***进行升级后,为了实现数据的高可用,可调用已经进行过测试点测试的测试用例的历史数据记录,而继续对升级后的业务***的接口进行测试;其中在该过程中,可通过将该测试用例当前在业务数据库中的数据记录恢复到流量录制之前的数据记录,同时根据日期相对关系对已经恢复到流量录制之前的数据记录中的日期数据进行适应修改,从而就可以基于同一种测试环境,来确定该测试用例在同一测试点下的测试结果是否一致,以最终判定该业务***升级过程中接口是否发生异常。通过该方式,可以实现业务***升级过程中,基于相同的测试用例对升级后的接口进行测试,克服了背景技术中接口测试时需要重复构建测试用例的缺点。
以下将结合示例分别对上述一些步骤进行详细说明。
在上述步骤101的一个实施中,所述确定录制前业务数据库中与测试用例相关联的第一数据记录,包括:确定所述测试用例的数据形态;所述数据形态是所述业务数据库中具有所述测试用例的至少一个关键字的各数据表的表信息,所述数据形态中还包括用于指示日期字段的指示信息;通过所述数据形态,确定录制前所述业务数据库中与所述测试用例相关联的第三数据记录及所述第三数据记录中的各日期字段;针对所述第三数据记录中的任一非设定日期字段,以所述第三数据记录中的所述设定日期字段的字段值与所述非设定日期字段的字段值的关系,作为所述非设定日期字段中的日期数据,从而得到所述第一数据记录。
在本申请的某些实施中,所述确定所述测试用例的数据形态,包括:根据所述测试用例中的第一关键字,查询所述业务数据库,获取所述测试用例的第二关键字;从所述业务数据库中查询出具有所述第一关键字或所述第二关键字的各数据表;对具有所述第一关键字或所述第二关键字的各数据表进行去噪,获取各有效数据表;若所述各有效数据表的表结构中包括日期字段,则对所述日期字段设置指示信息;将所述各有效数据表的表信息和各日期字段的指示信息作为所述测试用例的数据形态。
在用测试用例对银行的贷款业务***的接口进行测试时,常常会将银行***作为测试用例的一种标识,也即不同的银行***可以用于表示不同的测试用例。然而,在银行的各业务***中,并非每一个业务***对同一测试用例都是使用银行***进行标识的。不过,尽管可能是通过使用不同的标识来表示同一个测试用例的,但是对于同一个业务数据库,是可以将银行***作为关键词,并对业务数据库进行搜索,从而得到同样用于标识测试用例的关键字,如账户号、客户号、身份证号等关键字。这里银行***即为第一关键字,账户号、客户号和身份证号等即为第二关键字。
接着,在分别根据第一关键字、第二关键字对业务数据库进行检索时,那么将可以从业务数据库中查询出具有第一关键字或者第二关键字的各数据表。比如,在基于某一测试用例对应的银行***而对业务数据库进行数据表的检索时,如可以确定出业务数据库中存在有3张数据表中分别含有该银行***,以及,在基于与该银行***对应的账户号、客户号、身份证号分别对业务数据库进行数据表的检索时,如可以确定出业务数据库中存在有1张数据表中含有该账户号、4张数据表中分别含有该客户号和2张数据表中分别含有该身份证号。也即,此时共可获取到10张数据表,该些表中的每一张数据表均含有该测试用例的记录信息。
然而,考虑到同一个身份证号可以开通多张银行卡,同一张银行卡又可能同时对应多个客户号和账户号等因素,因此此时则需要对上述获取到的10张数据表进行去噪,以获取到关于该测试用例的有效的记录信息。如这10张数据表中可能存在有2张数据表并非表示的是该测试用例的数据,实则是噪声数据。则通过去噪处理,可将过滤了这2张噪声数据表的余下8张数据表作为测试用例的有效数据表。
然后,针对于上述8张有效数据表中的任一张有效数据表,若确定该有效数据表中包括有日期字段,则可以对该日期字段设置指示信息,所设置的指示信息,一方面可以用于流量录制之前将该日期字段对应的值快速转换为与一个设定日期字段的字段值具有相对关系的相对日期(例如前述例子中在对接口的测试点为借款日次日结清时,那么在2021.5.1日为借款日的场景下,则需要将业务数据库中的2021.5.2日另记作为0T+1日),另一方面还可以用于流量回放之前、在对业务数据库进行还原的时候,根据日期相对关系而将日期字段当前对应的值快速转换为一个正确的绝对日期(例如前述例子中业务***升级后,使用同一测试用例对同一接口测试点进行测试时,如在2021.5.19日进行新一次的接口测试时,则需要将测试用例在业务数据库中的借款日基于0T+1日这一日期相对关系,而将借款日更新为2021.5.18日)。
最后,可以将上述的8张有效数据表的表信息以及各日期字段的指示信息作为测试用例的数据形态。
在得到测试用例的数据形态后,则可以在流量录制之前,根据该数据形态从业务数据库中读取对应的数据库记录,即第三数据库记录和各日期字段;进一步的,在读取到数据库记录之后,对于含有日期字段的有效数据表(可通过检查是否含有设置的指示信息而快速确定出含有日期字段的有效数据表),可对日期字段对应的数据库记录进行转换,将数据库记录的绝对日期转换为一个与一设定日期字段的字段值相关的相对日期。
如前述例子中写到,流量录制之前的日期为2021.5.2日,这是一个绝对日期,其中若以借款日为设定日期字段,它对应的字段值为2021.5.1日,则可以将2021.5.2日转换为0T+1日,并作为第一数据记录。
在上述步骤103的一个实施中,所述通过所述第一数据记录,还原所述业务数据库,包括:通过所述数据形态,确定回放前所述业务数据库中与所述测试用例相关联的第四数据记录;根据所述第一数据记录和所述第四数据记录,还原所述业务数据库;针对还原后的业务数据库中与所述第一数据记录对应的第二数据记录中的任一日期字段,根据所述第一数据记录中所述日期字段的日期相对关系和回放时间,确定所述第二数据记录中所述日期字段的日期数据。
例如,前述例子中,在测试点为借款日次日结清时,则流量录制之前,业务数据库中的一张用于记载还款记录的有效数据表中可能写的是测试用例在2021.5.1日借了1000元的记录;则在流量录制之后,该有效数据表中写的可能是测试用例在2021.5.2日欠款0元的记录。那么设在2021.5.19日银行的贷款业务***实现了升级并要求同日测试升级后的业务***的接口是否依然为正常时,则可以基于上述2021.5.1日借款、2021.5.2结清的测试用例来测试升级后的业务***的接口在借款日次日结清的功能是否正常。
其中,根据测试用例的数据形态,可以获取到本次接口测试之前测试用例在业务数据库中的全部记录信息,即第四数据记录,此时关于测试用例在记载还款记录的有效数据表中记载的信息可能是测试用例在2021.5.2日欠款0元的记录。显然,如果此时不对测试用例在业务数据库中的数据记录进行流量录制之前的数据记录的还原,而直接进行接口测试的话,则贷款业务***会向测试用例发送报错的信息,提示用户并没有需要还款的需求,该种接口测试结果对于接口测试是无效的。为此,在对升级后的业务***的接口进行测试之前,还需要将测试用例在业务数据库中的全部记录信息还原到流量录制之前的数据库记录,也即可以基于第一数据记录对第四数据记录进行增、删、改的操作,如具体可包括以下内容:
1、将第四数据记录中相比于第一数据记录多出来的数据记录进行删除;
2、将第四数据记录中相比于第一数据记录缺失的数据记录,在第四数据记录中进行增加;
3、将第四数据记录中相比于第一数据记录存在变更的数据记录,在第四数据记录中恢复到它在第一数据记录中的信息。
在根据第四数据记录和第一数据记录对业务数据库进行还原后,对于业务数据库中的日期字段,还需要将日期字段的字段值转换为一个新的日期。例如,在记载测试用例还款记录的有效数据表中,针对于测试用例在2021.5.1日借款、2021.5.2日还清借款的日期记录,基于本次接口测试的日期为2021.5.19日,则在接口测试点为借款日次日结清时,需要将本次接口测试时候的借款日基于0T+1日这一日期相对关系,而将借款日更新为2021.5.18日。说明的是,本申请中本次接口测试的日期2021.5.19日即为回放时间。
在上述步骤105的一个实施中,所述根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果,包括:获取所述测试用例的各校验字段;所述各校验字段是根据对所述测试用例的多次测试结果确定的;针对任一校验字段,确定所述校验字段在所述第一测试结果中的第一值与在所述第二测试结果中的第二值的关系;根据各校验字段在所述第一测试结果和所述第二测试结果之间的关系,确定所述第一业务***升级至所述第二业务***的接口测试结果。
例如,在测试点为借款日次日结清时,并具体为2021.5.1日借款1000元、2021.5.2日还款1000元时,在流量录制时,可以基于AOP技术,配置好要录制的接口调用类名和方法名,以及外部调用方法类、数据库请求方法类。当测试用例调用接口的时候,记录请求返回报文,外部接口调用的请求返回报文,数据库操作的参数和返回值,然后序列化保存,沉淀为一条流量。具体可参见下述步骤:
步骤1:配置要监控的接口调用方法类,即处理请求报文的函数方法,以及外部请求、数据库调用的方法类。
步骤2:当请求到达方法类之后,通过挂载在子***进程上面的AOP agent执行:
步骤21:记录请求报文和返回报文;
步骤22:记录当前线程处理过程中的数据库调用和返回,外部接口调用请求和返回;
步骤23:序列化,异步入库存为一条流量,并记作流量1。
步骤3:根据测试用例的数据形态备份业务数据库,得到备份文件A。
说明的是,这里的流量1以及备份文件A为第一测试结果。
设在2021.5.19日对银行的贷款业务***实现升级并要求同日测试借款日次日结清的测试点时,则可以将2021.5.1日借款1000元、2021.5.2日还款1000元的测试用例进行重复利用。在进行本次的接口测试之前,需要将测试用例在2021.5.19日的业务数据库中的数据记录恢复到2021.5.2日接口测试时候的数据记录,同时需要将借款日更新为2021.5.18日。此时:
步骤1:读取流量1录制时候的请求报文,通过AOP agent向进程JVM中处理该接口的JavaBean中INVOKE该请求报文,记录返回报文,序列化之后入库保存为流量2。
步骤2:根据测试用例的数据形态备份业务数据库,得到备份文件B。
说明的是,这里的流量2以及备份文件B为第二测试结果。
在得到第二测试结果后,可以通过将第二测试结果与第一测试结果进行比较,根据比较后得到的结果,就可以确定银行的贷款业务***在升级过程中是否影响到接口的正常运行。
在本申请的某些实施中,所述各校验字段是根据对所述测试用例的多次测试结果确定的,包括:录制所述测试用例在所述第一业务***中运行后的第三测试结果和第四测试结果;针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段。
在用测试用例对业务***的接口进行测试后,基于测试时候录制的请求报文对同一业务***发起多次请求,如发起两次请求,如此可以基于这两次请求返回的测试结果而确定出校验字段;其中,对于同一个请求报文,业务***两次返回的字段应该相同,只不过其中的一些字段的值会随着请求发生的先后顺序而发生改变,这说明该些随着请求发生的时间、值会产生变动的字段并不可以成为判断业务***升级过程中接口是否发生异常的检测标准,反而是两次请求过程中值不会发生变动的各字段可以作为判断业务***升级过程中接口是否发生异常的检测标准。基于此,本申请中可以通过多次向业务***发起流量录制时候的请求报文,就可以自动化地确定出用于判断业务***升级过程中接口是否发生异常的检测标准,该方式相比于人工确定检测标准的方案,具有更高的准确性和效率。
在本申请的某些实施中,所述确定所述字段为校验字段之前,还包括:确定所述第三测试结果中的第一报文的返回码和所述第四测试结果中的第二报文的返回码相同;所述针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段,包括:针对测试结果中的任一报文字段,若所述报文字段在所述第一报文中的字段值和在所述第二报文中的字段值相同,则将所述报文字段作为校验字段;针对测试结果中的任一表字段,若所述表字段在所述第三测试结果对应的第一表记录中的字段值和在所述第四测试结果对应第二表记录中的字段值相同,则将所述表字段作为校验字段。
在使用多次(如两次)向业务***发送流量录制时候的请求报文以自动化确定各校验字段的时候,其中由于对接口的测试包括对返回报文以及数据库内容的检查,因此可以在两次测试结果中的报文的返回码一致的时候,再去确定待校验的各报文字段以及待校验的各表字段,以避免发生在已经确定出各表字段后,却发现返回码并不一致,而导致的最终无法获取用于校验的各字段的问题,相比之下,本申请中通过先确定返回码的状态,而后再确定具体的校验字段的方式,则可以提升自动化确定校验字段的效率。
以下通过一个具体的例子说明如何自动化生成校验字段的:
步骤1:将流量1在流量录制时候的贷款业务***上回放两次,分别记录两次流量回放时候的返回报文和回放后的数据库记录。
步骤2:解析流量数据库SQL,得到测试用例涉及到的数据库表和字段列表。
例如,对于一SQL:SELECT FIELD1,FIELD2 FROM DB1.TABLE1 WHERE FIELD3='*',从中可以解析出测试用例关联的数据库有DB1,表有TABLE1,字段包括FIELD1、FIELD2、FIELD3。
步骤3:对比两次流量回放时候的返回报文,首先检查业务***在两次的返回报文中的返回码是否一致,如果不一致,则提示人工介入;如果一致,则将值相同的字段设为校验字段,不同的字段设置为噪声字段。
步骤4:在两次的返回报文的返回码一致的情况下,取出两次回放后保存的数据库记录,对比步骤2中得到的测试用例涉及到的库表和字段,并将值相同的字段设为校验字段,不同的字段设置为噪声字段。
步骤5:对步骤3和步骤4的结果进行综合,即可以得到测试用例在接口测试时候的校验字段。
基于同样的构思,本申请实施例提供一种接口测试装置,如图2所示,该装置包括数据记录确定单元201、录制回放单元202、业务数据库还原单元203和接口测试结果输出单元204:
数据记录确定单元201,用于确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系;
录制回放单元202,用于录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果;
业务数据库还原单元203,用于在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的;
所述录制回放单元202,还用于回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果;
接口测试结果输出单元204,用于根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
进一步的,对于该装置,数据记录确定单元201,具体用于:确定所述测试用例的数据形态;所述数据形态是所述业务数据库中具有所述测试用例的至少一个关键字的各数据表的表信息,所述数据形态中还包括用于指示日期字段的指示信息;通过所述数据形态,确定录制前所述业务数据库中与所述测试用例相关联的第三数据记录及所述第三数据记录中的各日期字段;针对所述第三数据记录中的任一非设定日期字段,以所述第三数据记录中的所述设定日期字段的字段值与所述非设定日期字段的字段值的关系,作为所述非设定日期字段中的日期数据,从而得到所述第一数据记录。
进一步的,对于该装置,业务数据库还原单元203,具体用于:通过所述数据形态,确定回放前所述业务数据库中与所述测试用例相关联的第四数据记录;根据所述第一数据记录和所述第四数据记录,还原所述业务数据库;针对还原后的业务数据库中与所述第一数据记录对应的第二数据记录中的任一日期字段,根据所述第一数据记录中所述日期字段的日期相对关系和回放时间,确定所述第二数据记录中所述日期字段的日期数据。
进一步的,对于该装置,接口测试结果输出单元204,具体用于:获取所述测试用例的各校验字段;所述各校验字段是根据对所述测试用例的多次测试结果确定的;针对任一校验字段,确定所述校验字段在所述第一测试结果中的第一值与在所述第二测试结果中的第二值的关系;根据各校验字段在所述第一测试结果和所述第二测试结果之间的关系,确定所述第一业务***升级至所述第二业务***的接口测试结果。
进一步的,对于该装置,还包括校验字段确定单元205;校验字段确定单元205,用于:录制所述测试用例在所述第一业务***中运行后的第三测试结果和第四测试结果;针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段。
进一步的,对于该装置,校验字段确定单元205,还用于:确定所述第三测试结果中的第一报文的返回码和所述第四测试结果中的第二报文的返回码相同;所述校验字段确定单元,具体用于:针对测试结果中的任一报文字段,若所述报文字段在所述第一报文中的字段值和在所述第二报文中的字段值相同,则将所述报文字段作为校验字段;针对测试结果中的任一表字段,若所述表字段在所述第三测试结果对应的第一表记录中的字段值和在所述第四测试结果对应第二表记录中的字段值相同,则将所述表字段作为校验字段。
进一步的,对于该装置,对于该装置,还包括数据形态确定单元206;数据形态确定单元206,用于:根据所述测试用例中的第一关键字,查询所述业务数据库,获取所述测试用例的第二关键字;从所述业务数据库中查询出具有所述第一关键字或所述第二关键字的各数据表;对具有所述第一关键字或所述第二关键字的各数据表进行去噪,获取各有效数据表;若所述各有效数据表的表结构中包括日期字段,则对所述日期字段设置指示信息;将所述各有效数据表的表信息和各日期字段的指示信息作为所述测试用例的数据形态。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储接口测试方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行接口测试方法。
如图3所示,为本申请实施例提供的一种计算设备的示意图,该计算设备包括:
处理器301、存储器302、收发器303、总线接口304;其中,处理器301、存储器302与收发器303之间通过总线305连接;
所述处理器301,用于读取所述存储器302中的程序,执行上述接口测试方法;
处理器301可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器302,用于存储一个或多个可执行程序,可以存储所述处理器301在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器302可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器302也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器302还可以包括上述种类的存储器的组合。
存储器302存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
总线305可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口304可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行接口测试方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种接口测试方法,其特征在于,包括:
确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系;
录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果;
在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的;
回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果;
根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
2.如权利要求1所述的方法,其特征在于,
所述确定录制前业务数据库中与测试用例相关联的第一数据记录,包括:
确定所述测试用例的数据形态;所述数据形态是所述业务数据库中具有所述测试用例的至少一个关键字的各数据表的表信息,所述数据形态中还包括用于指示日期字段的指示信息;
通过所述数据形态,确定录制前所述业务数据库中与所述测试用例相关联的第三数据记录及所述第三数据记录中的各日期字段;
针对所述第三数据记录中的任一非设定日期字段,以所述第三数据记录中的所述设定日期字段的字段值与所述非设定日期字段的字段值的关系,作为所述非设定日期字段中的日期数据,从而得到所述第一数据记录。
3.如权利要求2所述的方法,其特征在于,
所述通过所述第一数据记录,还原所述业务数据库,包括:
通过所述数据形态,确定回放前所述业务数据库中与所述测试用例相关联的第四数据记录;
根据所述第一数据记录和所述第四数据记录,还原所述业务数据库;
针对还原后的业务数据库中与所述第一数据记录对应的第二数据记录中的任一日期字段,根据所述第一数据记录中所述日期字段的日期相对关系和回放时间,确定所述第二数据记录中所述日期字段的日期数据。
4.如权利要求1所述的方法,其特征在于,
所述根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果,包括:
获取所述测试用例的各校验字段;所述各校验字段是根据对所述测试用例的多次测试结果确定的;
针对任一校验字段,确定所述校验字段在所述第一测试结果中的第一值与在所述第二测试结果中的第二值的关系;
根据各校验字段在所述第一测试结果和所述第二测试结果之间的关系,确定所述第一业务***升级至所述第二业务***的接口测试结果。
5.如权利要求4所述的方法,其特征在于,
所述各校验字段是根据对所述测试用例的多次测试结果确定的,包括:
录制所述测试用例在所述第一业务***中运行后的第三测试结果和第四测试结果;
针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段。
6.如权利要求5所述的方法,其特征在于,
所述确定所述字段为校验字段之前,还包括:
确定所述第三测试结果中的第一报文的返回码和所述第四测试结果中的第二报文的返回码相同;
所述针对测试结果中的任一字段,若所述字段在所述第三测试结果中的第三值与在所述第四测试结果中的第四值相同,则确定所述字段为校验字段,包括:
针对测试结果中的任一报文字段,若所述报文字段在所述第一报文中的字段值和在所述第二报文中的字段值相同,则将所述报文字段作为校验字段;
针对测试结果中的任一表字段,若所述表字段在所述第三测试结果对应的第一表记录中的字段值和在所述第四测试结果对应第二表记录中的字段值相同,则将所述表字段作为校验字段。
7.如权利要求2-5任一项所述的方法,其特征在于,
所述确定所述测试用例的数据形态,包括:
根据所述测试用例中的第一关键字,查询所述业务数据库,获取所述测试用例的第二关键字;
从所述业务数据库中查询出具有所述第一关键字或所述第二关键字的各数据表;
对具有所述第一关键字或所述第二关键字的各数据表进行去噪,获取各有效数据表;
若所述各有效数据表的表结构中包括日期字段,则对所述日期字段设置指示信息;
将所述各有效数据表的表信息和各日期字段的指示信息作为所述测试用例的数据形态。
8.一种接口测试装置,其特征在于,包括:
数据记录确定单元,用于确定录制前业务数据库中与测试用例相关联的第一数据记录;所述第一数据记录中的日期数据为以设定日期字段的字段值为参照的日期相对关系;
录制回放单元,用于录制所述测试用例在所述业务数据库对应的第一业务***中运行后的第一测试结果;
业务数据库还原单元,用于在回放所述测试用例前,通过所述第一数据记录,还原所述业务数据库;所述业务数据库中与所述第一数据记录对应的第二数据记录的日期数据是根据所述日期相对关系和回放时间得到的;
所述录制回放单元,还用于回放所述测试用例,并记录所述测试用例在所述业务数据库对应的第二业务***中运行后的第二测试结果;
接口测试结果输出单元,用于根据所述第一测试结果和所述第二测试结果,确定所述第一业务***升级至所述第二业务***的接口测试结果。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-7任一项所述的方法。
CN202110579668.6A 2021-05-26 2021-05-26 一种接口测试方法及装置 Active CN113312259B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110579668.6A CN113312259B (zh) 2021-05-26 2021-05-26 一种接口测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110579668.6A CN113312259B (zh) 2021-05-26 2021-05-26 一种接口测试方法及装置

Publications (2)

Publication Number Publication Date
CN113312259A true CN113312259A (zh) 2021-08-27
CN113312259B CN113312259B (zh) 2023-12-29

Family

ID=77375166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110579668.6A Active CN113312259B (zh) 2021-05-26 2021-05-26 一种接口测试方法及装置

Country Status (1)

Country Link
CN (1) CN113312259B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742250A (zh) * 2021-11-05 2021-12-03 广州易方信息科技股份有限公司 接口自动测试方法及装置
CN116028376A (zh) * 2023-03-27 2023-04-28 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809500A (en) * 1997-02-26 1998-09-15 Century Technology Services, Inc. System for converting programs and databases to correct year 2000 processing errors
US20050273452A1 (en) * 2004-06-04 2005-12-08 Microsoft Corporation Matching database records
CN101135989A (zh) * 2006-08-31 2008-03-05 ***股份有限公司 一种Web应用***的自动化测试的方法和装置
KR20150048365A (ko) * 2013-10-28 2015-05-07 에스케이플래닛 주식회사 애플리케이션 자동 검증 시스템 및 방법
CN111767227A (zh) * 2020-06-30 2020-10-13 深圳前海微众银行股份有限公司 一种录制回放测试的方法及装置
CN112559361A (zh) * 2020-12-22 2021-03-26 京东数字科技控股股份有限公司 流量回放方法、装置、设备及计算机可读介质
CN112650688A (zh) * 2020-12-30 2021-04-13 深圳前海微众银行股份有限公司 自动化回归测试方法、关联设备以及计算机程序产品
WO2021088724A1 (zh) * 2019-11-05 2021-05-14 深圳前海微众银行股份有限公司 一种测试方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809500A (en) * 1997-02-26 1998-09-15 Century Technology Services, Inc. System for converting programs and databases to correct year 2000 processing errors
US20050273452A1 (en) * 2004-06-04 2005-12-08 Microsoft Corporation Matching database records
CN101135989A (zh) * 2006-08-31 2008-03-05 ***股份有限公司 一种Web应用***的自动化测试的方法和装置
KR20150048365A (ko) * 2013-10-28 2015-05-07 에스케이플래닛 주식회사 애플리케이션 자동 검증 시스템 및 방법
WO2021088724A1 (zh) * 2019-11-05 2021-05-14 深圳前海微众银行股份有限公司 一种测试方法及装置
CN111767227A (zh) * 2020-06-30 2020-10-13 深圳前海微众银行股份有限公司 一种录制回放测试的方法及装置
CN112559361A (zh) * 2020-12-22 2021-03-26 京东数字科技控股股份有限公司 流量回放方法、装置、设备及计算机可读介质
CN112650688A (zh) * 2020-12-30 2021-04-13 深圳前海微众银行股份有限公司 自动化回归测试方法、关联设备以及计算机程序产品

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
冯瑶;孙骏亚;刘跃光;王智忠;: "基于交易日志的自动化测试技术在功能测试中的应用", 中国金融电脑, no. 11 *
阳骁尧;王步锋;张同虎;成银乾;李冬晓;刘正;郭晓骞;: "金融***生产模拟比对自动化测试研究与应用", 中国金融电脑, no. 05 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113742250A (zh) * 2021-11-05 2021-12-03 广州易方信息科技股份有限公司 接口自动测试方法及装置
CN116028376A (zh) * 2023-03-27 2023-04-28 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法
CN116028376B (zh) * 2023-03-27 2023-08-29 云筑信息科技(成都)有限公司 基于流量录制快速生成接口自动化用例的方法

Also Published As

Publication number Publication date
CN113312259B (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
US20170213052A1 (en) Systems and methods for identifying information related to payment card breaches
CN111260465B (zh) 一种业务处理方法、装置、服务器及存储介质
CN113312259B (zh) 一种接口测试方法及装置
CN110060139B (zh) 账务处理方法及装置
CN111797019B (zh) 一种交易核算测试方法、装置、电子设备及存储介质
CN110795447A (zh) 数据处理方法、数据处理***、电子设备和介质
CN110675249A (zh) 网络借贷的匹配方法、装置、服务器和存储介质
CN107169767B (zh) 交易冲正方法和***
US20200294057A1 (en) Business processing method, apparatus, and equipment
CN113034046A (zh) 一种数据风险计量方法、装置、电子设备及存储介质
CN113220598B (zh) ***的测试方法、装置、设备、介质及程序产品
CN111563082B (zh) 报表生成方法及装置
CN114490415A (zh) 业务测试方法、计算机设备、存储介质和计算机程序产品
US20070150449A1 (en) Database program acceleration
CN111857670A (zh) 应用架构的确定方法和装置
CN113342681A (zh) 一种回归测试方法及装置
CN111369346B (zh) 用户信用的评估方法、装置、服务器和存储介质
CN113254352B (zh) 测试案例的测试方法、装置、设备及存储介质
CN114493821B (zh) 数据核销方法、装置、计算机设备和存储介质
CN114240610B (zh) 资金自动归集方法、装置、计算机设备和存储介质
US11941412B1 (en) Computer software program modularization and personalization
CN117291741A (zh) 账务数据处理方法、装置、设备、存储介质和程序产品
CN116894601A (zh) 指标处理方法、装置、设备及存储介质
CN116541351A (zh) 数据处理方法、装置、设备及存储介质
CN114579462A (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