CN111858379A - 应用的测试方法和装置 - Google Patents

应用的测试方法和装置 Download PDF

Info

Publication number
CN111858379A
CN111858379A CN202010754725.5A CN202010754725A CN111858379A CN 111858379 A CN111858379 A CN 111858379A CN 202010754725 A CN202010754725 A CN 202010754725A CN 111858379 A CN111858379 A CN 111858379A
Authority
CN
China
Prior art keywords
test
message
tested
test message
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
CN202010754725.5A
Other languages
English (en)
Other versions
CN111858379B (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.)
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 CN202010754725.5A priority Critical patent/CN111858379B/zh
Publication of CN111858379A publication Critical patent/CN111858379A/zh
Application granted granted Critical
Publication of CN111858379B publication Critical patent/CN111858379B/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/3696Methods or tools to render software testable

Abstract

本公开提供了一种应用的测试方法和装置,可用于金融领域或其他领域,该方法包括获取测试报文集合和已验案例集合,其中,测试报文集合为用于测试待测应用的报文;根据测试报文集合和已验案例集合,确定至少一个目标测试报文;以及利用至少一个目标测试报文,对待测应用进行测试。本公开还提供了一种应用的测试装置、一种电子设备及一种计算机存储介质。

Description

应用的测试方法和装置
技术领域
本公开涉及测试技术领域,特别是涉及一种应用的测试方法和装置。
背景技术
随着互联网技术和5G技术的迅速发展,功能丰富、种类繁多的各式应用层出不穷。在应用的开发及运营过程中,对应用进行测试是保证应用高效稳定运行的关键因素之一。
在实现本发明公开构思过程中,发明人发现在针对某应用进行测试时,需要对与该应用关联的所有上行报文进行测试。针对与应用关联的所有上行报文进行测试,测试工作量大,测试成本高。
发明内容
本公开的一个方面提供了一种应用的测试方法。该方法包括:获取测试报文集合和已验案例集合,其中,测试报文为用于测试待测应用的报文;根据上述测试报文集合和上述已验案例集合,确定至少一个目标测试报文;以及利用上述至少一个目标测试报文,对上述待测应用进行测试。
可选地,上述已验案例集合中的每个已验案例包括上行报文。上述根据上述测试报文集合和上述已验案例集合,确定至少一个目标测试报文,包括确定上述测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度;以及根据每个测试报文与已验案例的上行报文的相似度,确定上述至少一个目标测试报文。
可选地,上述已验案例集合为成功案例集合,所述成功案例为测试结果指示测试通过的已测案例。上述根据每个测试报文与已验案例的上行报文的相似度,确定上述至少一个目标测试报文,包括在上述测试报文集合中,确定与上述成功案例的上行报文的相似度超过第一阈值的测试报文,以作为上述目标测试报文。
可选地,上述已验案例集合为失败案例集合,所述失败案例为测试结果指示测试未通过的已测案例。上述根据每个测试报文与已验案例的上行报文的相似度,确定上述至少一个目标测试报文,包括在上述测试报文集合中,确定与上述失败案例的上行报文的相似度超过第二阈值的异常测试报文;滤除上述测试报文集合中的上述异常测试报文,以得到上述目标测试报文。
可选地,上述已验案例集合包括至少一个成功案例和至少一个失败案例。上述根据每个测试报文与已验案例的上行报文的相似度,确定上述至少一个目标测试报文,包括针对任一测试报文,当上述测试报文与上述成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为上述目标测试报文;以及当上述测试报文不与任一上述成功案例的上行报文的相似度超过第一阈值,也不与任一上述失败案例的上行报文的相似度超过第二阈值时,确定该测试报文为上述目标测试报文。
可选地,上述利用上述至少一个目标测试报文,对上述待测应用进行测试,包括针对任一目标测试报文,根据上述目标测试报文,确定与上述目标测试报文关联的目标接收方,其中,上述目标接收方为在针对上述待测应用的测试过程中,用于接收上述目标测试报文的目标应用或目标服务器;向上述目标接收方发送上述目标测试报文;响应于接收的上述目标接收方针对上述目标测试报文反馈的应答报文,将上述应答报文与标准应答报文进行比对;基于比对结果,确定上述待测应用的测试结果。
可选地,在获取测试报文集合之后,还包括对各上述测试报文的报文内容进行哈希计算,得到与各上述测试报文关联的哈希值;根据与各上述测试报文关联的哈希值,对上述测试报文集合进行去重处理,得到去重后的测试报文集合。
本公开的另一个方面提供了一种应用的测试装置,包括获取模块,用于获取测试报文集合和已验案例集合,其中,测试报文为用于测试待测应用的报文;确定模块,用于根据上述测试报文集合和上述已验案例集合,确定至少一个目标测试报文;以及测试模块,用于利用上述至少一个目标测试报文,对上述待测应用进行测试。
可选地,已验案例集合中的每个已验案例包括上行报文,确定模块包括第一确定子模块,用于确定测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度,以及包括第二确定子模块,用于根据每个测试报文与已验案例的上行报文的相似度,确定至少一个目标测试报文。
可选地,已验案例集合为成功案例集合,所述成功案例为测试结果指示测试通过的已测案例。第二确定子模块包括第一确定单元,用于在测试报文集合中,确定与成功案例的上行报文的相似度超过第一阈值的测试报文,以作为目标测试报文。
可选地,已验案例集合为失败案例集合,所述失败案例为测试结果指示测试未通过的已测案例。第二确定子模块包括第二确定单元,用于在测试报文集合中,确定与失败案例的上行报文的相似度超过第二阈值的异常测试报文,以及包括第一处理单元,用于滤除测试报文集合中的异常测试报文,以得到目标测试报文。
可选地,已验案例集合包括至少一个成功案例和至少一个失败案例。第二确定子模块包括第三确定单元,用于针对任一测试报文,当测试报文与成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为目标测试报文,以及包括第四确定单元,用于针对任一测试报文,当测试报文不与任一成功案例的上行报文的相似度超过第一阈值,也不与任一失败案例的上行报文的相似度超过第二阈值时,确定该测试报文为目标测试报文。
可选地,测试模块包括第一处理子模块,用于针对任一目标测试报文,根据目标测试报文,确定与目标测试报文关联的目标接收方,其中,目标接收方为在针对待测应用的测试过程中,用于接收目标测试报文的目标应用或目标服务器;第二处理子模块,用于向目标接收方发送目标测试报文;第三处理子模块,用于响应于接收的目标接收方针对目标测试报文反馈的应答报文,将应答报文与标准应答报文进行比对;第四处理子模块,用于基于比对结果,确定待测应用的测试结果。
可选地,本装置还包括还包括去重模块,用于对各测试报文的报文内容进行哈希计算,得到与各测试报文关联的哈希值,然后根据与各测试报文关联的哈希值,对测试报文集合进行去重处理,得到去重后的测试报文集合。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现本公开实施例的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现本公开实施例的方法。
本公开通过利用已验案例集合,在获取的待测应用的测试报文集合中,确定用于对待测应用进行测试的至少一个目标测试报文,并利用确定出的目标测试报文对待测应用进行测试,这有利于减少待测应用的非必要测试次数,能够有效提高待测应用的测试效率,和控制待测应用的测试成本。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中,
图1示意性示出了根据本公开实施例的应用的测试方法和装置的系统架构;
图2A示意性示出了根据本公开实施例的应用的测试方法的流程图;
图2B示意性示出了根据本公开实施例的测试报文的示意图;
图3示意性示出了根据本公开另一实施例的应用的测试方法的流程图;
图4示意性示出了根据本公开实施例的应用的测试装置的框图;以及
图5示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开实施例提供了一种应用的测试方法以及能够运用该方法的测试装置,该方法例如可以包括如下操作。获取测试报文集合和已验案例集合,其中,测试报文集合中的至少一个测试报文为用于测试待测应用的报文。然后根据测试报文集合和已验案例集合,确定至少一个目标测试报文。进而利用至少一个目标测试报文,对待测应用进行测试,得到待测应用的测试结果。
需要说明的是,本公开提供的应用的测试方法和装置可用于金融领域,也可用于除金融领域之外的任意领域,本公开对所提供方法和装置的应用领域不做限定。
图1示意性示出了根据本公开实施例的应用的测试方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构包括至少一个终端(图中示出了多个,如终端101、102、103)和服务器104(也可以是服务器集群,图中未示出)。在该系统架构100中,每个终端如终端101、102、103中安装有多类应用,服务器104能够从数据库中获取终端中待测应用的上行报文,并根据获取的待测应用的上行报文,对待测应用进行测试,得到待测应用的测试结果。
待测应用例如可以是安装在终端中的应用程序(APP),也可以是集成在应用程序中的提供某种功能或服务的小插件或小程序。以上所列举的待测应用的类型只是一种示例性的说明,本公开实施例中的待测应用类型包括所有可进行测试的应用类型。
由于应用的功能环境是不够稳定的,可能存在调用其他应用的服务失败的问题,因此,可以定期对应用进行自动化测试。自动化测试即为将由人为驱动的测试行为转换为机器执行的测试过程,自动化测试有利于节省应用测试的人力、时间和硬件资源,有利于提高应用测试的测试效率。本公开实施例的方法用于对待测应用进行单元测试,即用于对待测应用的功能模块进行测试。在待测应用的功能模块中输入预设的上行报文,当获取到符合预期的应答报文时,确定测试通过;当无法获取到应答报文或者无法获取到符合预期的应答报文时,确定测试未通过。
以下将结合附图和具体实施例详细阐述本公开。
图2A示意性示出了根据本公开实施例的应用的测试方法的流程图。
如图2A所示,该方法可以包括操作S210~S230。
在操作S210,获取测试报文集合和已验案例集合,其中,测试报文为用于测试待测应用的报文。
在本公开实施例中,报文(message)是网络中交换与传输的数据单元,其包含将要发送的完整的数据信息,报文长度不限且可变。报文的类型例如可以包括XML(ExtensibleMarkup Language,可扩充标注语言)、JSON(JavaScript Object Notation,Java语言对象标记)、HTTP(HyperText Transfer Protocol,超文本传输协议)。对于一个应用来说,与其关联的报文包括上行报文和下行报文,上行报文为本应用发送给其他应用或服务器的报文,下行报文为其他应用或服务器返回给该应用的报文,下行报文即为与上行报文关联的应答报文。
图2B示意性示出了根据本公开实施例的测试报文的示意图,如图2B所示,测试报文例如可以包括用户协议、报文头和报文正文,报文头包括版本、报头长度、报头校验和、报文长度、分段偏移、标识等信息,报文正文包括源IP地址、目标IP地址、数据等信息。
终端中的应用在运行过程中,其可能会调用多个其他应用或服务器。当终端中的某应用调用其他应用或服务器时,该应用向其他应用或服务器发送上行报文,其他应用或服务器向该应用返回针对上行报文的应答报文。在对待测应用进行测试时,获取用于对待测应用进行测试的测试报文,并将测试报文发送给其他应用或服务器,然后获取其他应用或服务器针对测试报文返回的应答报文,将获取的应答报文与标准应答报文进行比对,得到比对结果,最后基于比对结果确定该应用的测试结果。
在机器执行针对待测应用的自动化测试时,可以针对待测应用的各个调用过程进行测试(即针对待测应用调用各其他应用或服务器的调用过程进行测试),因此获取用于测试待测应用的测试报文集合,即可以是从数据库中获取与待测应用关联的上行报文,与待测应用关联的所有上行报文构成待测应用的测试报文集合。待测应用在运行过程中可能会多次调用某个其他应用或服务器,因此数据库中存储的上行报文中可能存在重复报文。为提高针对待测应用的自动化测试的测试效率,对从数据库中获取的待测应用的测试报文集合进行去重处理。
对获取的待测应用的测试报文集合进行去重处理的方法,例如可以包括对不同测试报文中的报文正文进行比较,滤除具有重复报文正文的测试报文。在对测试报文进行去重处理过程中,不需比较测试报文的报文头内容。示例性的,可以不对不同测试报文中的时间戳、事件编号等内容进行比较。该种设计有利于保证获取的测试报文的有效性,有利于提高待测应用的自动测试效率。
作为一种可选的实施例,对各测试报文的报文正文进行哈希计算,得到与各测试报文关联的哈希值,根据与各测试报文关联的哈希值,对测试报文集合进行去重处理,得到去重后的测试报文集合。哈希计算算法可实现将任意长度的二进制字符串映射为固定长度的二进制字符串。为保证去重结果的精确性,除可以对不同测试报文的哈希值进行比较外,还可以对不同测试报文的TCP_seq(TCP sequence number,TCP序列号)、TCP_ack(TCPacknowledge character,TCP确认字符)、Checksum(校验和)、五元组等预设参数进行比较。当存在任意两个或者多个测试报文之间的哈希值及预设参数均相同时,确定这些测试报文实质为相同的测试报文,需要对该不同测试报文进行去重处理。
在进行针对待测应用的自动化测试时,向与测试报文关联的报文接收方发送测试报文,其中,报文接收方为在测试过程中待测应用所要调用的其他应用或服务器,其用于接收待测应用的测试报文,并响应于接收到的待测应用的测试报文,向待测应用返回与测试报文关联的应答报文。根据待测应用接收到的应答报文,将应答报文与标准应答报文进行比对,得到待测应用的测试结果。
已验案例为针对待测应用而言,已经进行过测试并具有测试结果的案例。已验案例的测试文件中包括上行报文、与上行报文关联的应答报文(即下行报文)及测试结果。成功案例为测试结果指示测试通过的已测案例,失败案例为测试结果指示测试未通过的已测案例。测试通过是指完成了针对待测应用的预设业务节点的测试,预设业务节点可以包括正常业务节点和异常业务节点,成功案例中针对预设业务节点的应答报文为符合预期的报文,即针对待测应用的正常业务节点和异常业务节点的应答报文均为符合预期的报文。测试未通过是指未成功完成针对待测应用的预设业务节点的测试,例如没有获取到应答报文,或者获取到的应答报文不是符合预期的报文,测试未通过的情况可以包括测试报文异常导致测试结果异常,或者待测应用的逻辑发生修改,之前可用的测试报文无法对修改后的待测应用继续进行测试。
接下来,在操作S220,根据测试报文集合和已验案例集合,确定至少一个目标测试报文。
当测试报文中包含无效数据时,在利用该测试报文对待测应用进行测试时,无法获取到符合预期的应答报文,测试结果指示测试未通过。因此,需要在获取的测试报文集合中,确定用于对待测应用进行测试的至少一个目标测试报文,具体地,可以根据已验案例集合,在获取的待测应用的测试报文集合中,筛除掉包含无效数据的异常测试报文,得到用于对待测应用进行测试的至少一个目标测试报文。
示例性地,无效数据例如可以包括TCP Dup Ack、TCP Retransmission、TCP out-of-order、TCP Previous Segment Lost、TCP Zero Windows等报文内容。TCP(Transmission Control Protocol传输控制协议)报文中的Ack字段指示待测应用预期接收的下一报文的序列号,TCP Dup Ack指示待测应用没有接收到预期序列号的报文,并且再次请求预期序列号的报文。TCP Retransmission指示本报文为重传报文,重传报文是一种常见的影响数据传输效率的异常报文。TCP out-of-order、TCP Previous Segment Lost是一种TCP报文乱序,指示本报文没有携带续期的序列号。TCP Zero Windows表征滑动窗口为0,Zero Windows消息通常会在报文接收端缓冲已满时发出,其用于指示待测应用应暂时停止向接收端发送消息。
由于已验案例为针对待测应用而言具有明确的测试结果的已测案例,其中,明确的测试结果包括测试通过和测试未通过。成功案例中的上行报文为不包含异常数据且适用于待测应用测试的正常上行报文,失败案例中的上行报文为包含异常数据或者不适用于待测应用测试的异常上行报文。利用已验案例中的上行报文,与从数据库中获取的待测应用的测试报文进行比对,有利于实现快速筛选出包含异常数据或者不适用于待测应用测试的异常测试报文。由于无法利用异常测试报文成功进行测试,因此,不需要再利用异常测试报文对待测应用进行测试,这有利于提高应用的自动测试效率,减少自动测试工作量和提升自动测试效果。
再接下来,在操作S230,利用至少一个目标测试报文,对待测应用进行测试。
作为一个可选的实施例,针对任一目标测试报文,根据目标测试报文,确定与目标测试报文关联的目标接收方,其中,目标接收方为在针对待测应用的测试过程中,用于接收目标测试报文的目标应用或目标服务器;向目标接收方发送目标测试报文;响应于接收的目标接收方针对目标测试报文反馈的应答报文,将应答报文与标准应答报文进行比对;基于比对结果,确定待测应用的测试结果。
具体地,在确定出待测应用的至少一个目标测试报文后,利用确定出的每个目标测试报文,对待测应用进行测试处理。其中,针对任一目标测试报文,根据目标测试报文中的报文接收方的IP地址和端口数据等信息,确定与该目标测试报文关联的目标接收方。在针对待测应用的测试过程中,待测应用将目标测试报文作为上行报文,发送给目标应用或目标服务器。目标应用或目标服务器根据接收到的上行报文,生成与上行报文关联的应答报文,并将应答报文以下行报文的形式返回给待测应用。
将接收到的应答报文与标准应答报文进行比对,示例性地,将接收到的应答报文与成功案例中的上行报文对应的应答报文进行比对。通过判断接收到的应答报文与标准应答报文是否相同,确定待测应用的运行是否正常。类比于测试报文的去重过程,将接收到的应答报文与标准应答报文的报文正文进行比对,判断接收到的应答报文与标准应答报文的报文正文是否存在差异,是则确定待测应用运行异常。
通过本公开实施例,获取测试报文集合和已验案例集合,其中,测试报文集合为用于测试待测应用的报文;然后根据测试报文集合和已验案例集合,确定至少一个目标测试报文;进而利用至少一个目标测试报文,对待测应用进行测试。利用已验案例集合,在获取的待测应用的测试报文集合中,确定出目标测试报文,这有利于减少待测应用的非必要测试次数,能够有效提高待测应用的测试效率,和控制待测应用的测试成本。
图3示意性示出了根据本公开另一实施例的应用的测试方法的流程图。
如图3所示,该方法可以包括操作S210、S310、S230。
在操作S210,获取测试报文集合和已验案例集合,其中,测试报文为用于测试待测应用的报文。
需要说明的是,本公开实施例中的操作S210与前述实施例中的操作S210相同或类似,此处不再赘述。
接下来,在操作S310,确定测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度,以及根据每个测试报文与已验案例的上行报文的相似度,确定至少一个目标测试报文。
在本公开实施例中,具体地,已验案例为待测应用的已测案例,已验案例的测试文件中包括上行报文、与上行报文关联的应答报文以及测试结果。在对待测应用进行测试时,需对待测应用针对其他应用或服务器的所有调用过程进行测试,因此,待测应用在所有调用过程中的上行报文构成待测应用的测试报文。在从数据库中获取到待测应用在所有调用过程中的上行报文,即在获取到待测应用的测试报文集合后,为提高待测应用的自动测试效率,需要在获取的待测应用的大量的测试报文中,快速确定出需要进行测试的目标测试报文。
利用已验案例集合,在获取的待测应用的测试报文集合中,比较各个测试报文与已验案例的上行报文的相似度。报文中包含特征字段,特征字段包括报文所对应的报文发送方信息和报文接收方信息,示例性的,报文中的特征字段包括报文的发起应用的应用标识符,和报文的接收应用的应用标识符。可选地,在进行测试报文与已验案例的上行报文的相似度比较时,对具有相同特征字段的测试报文与已验案例的上行报文进行比较,即对相同报文发送方和相同报文接收方间的测试报文与已验案例的上行报文进行比较。
作为一种可行的方式,已验案例集合为成功案例集合。成功案例的测试文件中包括上行报文和与上行报文对应的标准应答报文。在获取的测试报文集合中,确定各个测试报文与成功案例的上行报文之间的相似度,并把与成功案例的上行报文的相似度超过第一预设阈值的测试报文,确定为目标测试报文。更具体地,对具有相同特征字段的测试报文和成功案例的上行报文进行相似度比较,当测试报文与具有相同特征字段的成功案例的上行报文之间的相似度超过第一预设阈值时,确定该测试报文为目标测试报文。
由于成功案例为测试结果指示测试通过的已验案例,成功案例能够表征待测应用运行正常,运行正常包括正常交易流程模块和异常交易流程模块下的运行正常,即针对正常交易流程模块和异常交易流程模块进行自动化测试,获取到的针对目标测试报文的应答报文均为符合预期的报文。成功案例的上行报文为不包含异常数据且适用于待测应用测试的正常上行报文,因此当测试报文和成功案例的上行报文之间的相似度超过第一预设阈值时,确定可利用该测试报文对待测应用进行测试。
作为另一种可行的方式,已验案例集合为失败案例集合。失败案例的测试文件中包括上行报文和与上行报文对应的应答报文。在获取的测试报文集合中,确定各个测试报文与失败案例的上行报文之间的相似度,并把与失败案例的上行报文的相似度超过第二预设阈值的测试报文,确定为目标测试报文。更具体地,对具有相同特征字段的测试报文和失败案例的上行报文进行相似度比较,当测试报文与具有相同特征字段的失败案例的上行报文之间的相似度超过第二预设阈值时,确定该测试报文为异常测试报文,不能利用该测试报文对待测应用进行测试。
由于失败案例为测试结果指示测试未通过的已验案例,失败案例的上行报文为包含异常数据或者不适用于待测应用测试的异常上行报文,因此当测试报文与失败案例的上行报文之间的相似度超过第二预设阈值时,确定不能利用该测试报文对待测应用进行测试。因此,需在获取的测试报文集合中移除异常上行报文,当在获取的测试报文集合中移除掉所有的异常上行报文后,剩余的测试报文构成待测应用的至少一个目标测试报文。
作为再一种可行的方式,已验案例集合包括成功案例与失败案例。在确定待测应用的目标测试报文时,将各个测试报文与已验案例中的上行报文进行相似度比较,然后根据各个测试报文与已验案例中的上行报文之间的相似度,确定出至少一个目标测试报文。针对任一测试报文,当测试报文与成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为目标测试报文。以及,当测试报文不与任一成功案例的上行报文的相似度超过第一阈值,也不与任一失败案例的上行报文的相似度超过第二阈值时,确定该测试报文为目标测试报文。
对于任一测试报文,当该测试报文与成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为可用于待测应用测试的目标测试报文。当该测试报文不与任一成功案例的上行报文的相似度超过第一阈值,也不与任一失败案例的上行报文的相似度超过第二阈值时,表征该测试报文为未包含在成功案例中,也未包含在失败案例中的上行报文,即该测试报文为新增上行报文,将新增上行报文确定为目标测试报文。
再接下来,在操作S230,利用至少一个目标测试报文,对待测应用进行测试。
在本公开实施例中,具体地,利用确定出的至少一个目标测试报文,对待测应用进行测试。由待测应用将各目标测试报文作为上行报文,发送给与各目标测试报文关联的目标接收方。目标接收方响应于接收到的上行报文,向待测应用返回与上行报文对应的应答报文。将待测应用接收到的应答报文与标准应答报文进行比对,得到待测应用针对各目标测试报文的测试结果。当针对某目标测试报文的应答报文与标准应答报文的相似度超过预设阈值时,确定利用该目标测试报文对待测应用测试通过,否则确定利用该目标测试报文对待测应用测试未通过。
标准应答报文可以包括成功案例中与上行报文对应的应答报文,也可以包括标准测试文件中与上行报文对应的应答报文。标准测试文件为预先设置的,用于对待测应用进行测试的相关文件,其通过对应应用的标识信息与待测应用进行关联。标准测试文件中包含针对上行报文的标准应答报文,将待测应用获取的应答报文与标准测试文件中的标准应答报文进行比对,得到待测应用的测试结果。
可选地,在得到针对各目标测试报文的测试结果后,将测试结果指示测试通过的目标测试报文的测试文件添加至成功案例集合中,将测试结果指示测试未通过的目标测试报文添加至失败案例集合中,同时将测试未通过的目标测试报文的测试文件从成功案例集合中移除,其中,测试文件中包含上行报文(即用于待测应用测试的目标测试报文)、与上行报文对应的应答报文。示例性地,在根据成功案例集合确定出的M个目标测试报文中,针对其中m个目标测试报文的测试结果指示测试未通过,此时将m个目标测试报文添加至失败案例集合中,并将该m个目标测试报文的测试文件从原成功案例集合中移除,其中,M为大于1的整数,m为大于1且小于等于M的整数。该种设计有利于实现已验案例的更新和扩增,有利于保证已验案例的丰富性和准确性,可为后续待测应用的自动化测试提供数据基础。
通过本公开实施例,获取测试报文集合和已验案例集合,其中,测试报文集合为用于测试待测应用的报文;确定测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度,以及根据每个测试报文与已验案例的上行报文的相似度,确定至少一个目标测试报文;利用至少一个目标测试报文,对待测应用进行测试。通过确定各测试报文与已验案例的上行报文之间的相似度,根据各测试报文与已验案例的上行报文之间的相似度,有利于快速筛选出可用于待测应用测试的目标测试报文,和快速筛除掉无需用于待测应用的异常测试报文,一方面可以有效减小待测应用测试的工作量,有利于控制待测应用测试的测试成本;另一方面有利于提高待测应用测试的测试效率,和提升自动测试效果。另外,由于大多数应用的功能环境的稳定性弱于生产环境的稳定性,本实施例方法有利于在待测应用的功能环境中及时筛查出运行异常的情况,通过根据测试结果对待测应用进行优化,有利于保证待测应用的高效稳定运行。
图4示意性示出了根据本公开实施例的应用的测试装置的框图。
如图4所示,该处理装置400包括获取模块401、确定模块402及测试模块403。该处理装置可以执行上面参考方法实施例部分描述的方法,在此不再赘述。
具体地,获取模块401,用于获取测试报文集合和已验案例集合,其中,测试报文为用于测试待测应用的报文。确定模块402,用于根据测试报文集合和已验案例集合,确定至少一个目标测试报文。以及,测试模块403,用于利用至少一个目标测试报文,对待测应用进行测试。
通过本公开实施例,获取测试报文集合和已验案例集合,其中,测试报文集合为用于测试待测应用的报文;然后根据测试报文集合和已验案例集合,确定至少一个目标测试报文;进而利用至少一个目标测试报文,对待测应用进行测试。利用已验案例集合,在获取的待测应用的测试报文集合中,确定出目标测试报文,这有利于减少待测应用的非必要测试次数,能够有效提高待测应用的测试效率,和控制待测应用的测试成本。
作为一种可选的实施例,该装置除了包括如图4所示的获取模块401、确定模块402及测试模块403外,由于已验案例集合中的每个已验案例包括上行报文,确定模块包括第一确定子模块,用于确定测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度,以及包括第二确定子模块,用于根据每个测试报文与已验案例的上行报文的相似度,确定至少一个目标测试报文。
作为一种可选的实施例,已验案例集合为成功案例集合,成功案例为测试结果指示待测应用运行正常的已测案例。第二确定子模块包括第一确定单元,用于在测试报文集合中,确定与成功案例的上行报文的相似度超过第一阈值的测试报文,以作为目标测试报文。
作为一种可选的实施例,已验案例集合为失败案例集合,失败案例为测试结果指示待测应用运行异常的已测案例。第二确定子模块包括第二确定单元,用于在测试报文集合中,确定与失败案例的上行报文的相似度超过第二阈值的异常测试报文,以及包括第一处理单元,用于滤除测试报文集合中的异常测试报文,以得到目标测试报文。
作为一种可选的实施例,已验案例集合包括至少一个成功案例和至少一个失败案例。第二确定子模块包括第三确定单元,用于针对任一测试报文,当测试报文与成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为目标测试报文,以及包括第四确定单元,用于针对任一测试报文,当测试报文不与任一成功案例的上行报文的相似度超过第一阈值,也不与任一失败案例的上行报文的相似度超过第二阈值时,确定该测试报文为目标测试报文。
作为一种可选的实施例,测试模块包括第一处理子模块,用于针对任一目标测试报文,根据目标测试报文,确定与目标测试报文关联的目标接收方,其中,目标接收方为在针对待测应用的测试过程中,用于接收目标测试报文的目标应用或目标服务器;第二处理子模块,用于向目标接收方发送目标测试报文;第三处理子模块,用于响应于接收的目标接收方针对目标测试报文反馈的应答报文,将应答报文与标准应答报文进行比对;第四处理子模块,用于基于比对结果,确定待测应用的测试结果。
作为一种可选的实施例,本装置还包括还包括去重模块,用于对各测试报文的报文内容进行哈希计算,得到与各测试报文关联的哈希值,然后根据与各测试报文关联的哈希值,对测试报文集合进行去重处理,得到去重后的测试报文集合。
通过本公开实施例,利用已验案例集合,对获取的待测应用的测试报文集合进行筛选,得到可用于待测应用测试的目标测试报文,这可以快速筛选出可用于待测应用测试的目标测试报文,也可以快速筛除掉无需用于待测应用的异常测试报文。因此,本公开实施例方法一方面可以有效减小待测应用测试的工作量,有利于控制待测应用测试的测试成本;另一方面有利于提高待测应用测试的测试效率,同时有利于提升自动测试效果。另外,由于大多数应用的功能环境的稳定性弱于生产环境的稳定性,本实施例方法有利于在待测应用的功能环境中及时筛查出运行异常的情况,通过根据测试结果对待测应用进行优化,有利于保证待测应用的高效稳定运行。
需要说明的是,在本公开实施例中,装置部分的实施方式与方法部分的实施方式相同或类似,在此不再赘述。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块401、确定模块402及测试模块403中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块401、确定模块402及测试模块403中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块401、确定模块402及测试模块403中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图5示意性示出了根据本公开实施例的电子设备的框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500包括处理器510、计算机可读存储介质520。该电子设备500可以执行根据本公开实施例的方法。
具体地,处理器510例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器510还可以包括用于缓存用途的板载存储器。处理器510可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理模块或者是多个处理模块。
计算机可读存储介质520,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质520可以包括计算机程序521,该计算机程序521可以包括代码/计算机可执行指令,其在由处理器510执行时使得处理器510执行根据本公开实施例的方法或其任何变形。
计算机程序521可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序521中的代码可以包括一个或多个程序模块,例如包括521A、模块521B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器510执行时,使得处理器510可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,获取模块401、确定模块402及测试模块403中的至少一个可以实现为参考图5描述的计算机程序模块,其在被处理器510执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (10)

1.一种应用的测试方法,包括:
获取测试报文集合和已验案例集合,其中,所述测试报文为用于测试待测应用的报文;
根据所述测试报文集合和所述已验案例集合,确定至少一个目标测试报文;以及
利用所述至少一个目标测试报文,对所述待测应用进行测试。
2.根据权利要求1所述的方法,其中:
所述已验案例集合中的每个已验案例包括上行报文:
所述根据所述测试报文集合和所述已验案例集合,确定至少一个目标测试报文,包括:
确定所述测试报文集合中的每个测试报文与已验案例的上行报文之间的相似度;以及
根据每个测试报文与已验案例的上行报文的相似度,确定所述至少一个目标测试报文。
3.根据权利要求2所述的方法,其中:
所述已验案例集合为成功案例集合,所述成功案例为测试结果指示测试通过的已测案例;
所述根据每个测试报文与已验案例的上行报文的相似度,确定所述至少一个目标测试报文,包括:
在所述测试报文集合中,确定与所述成功案例的上行报文的相似度超过第一阈值的测试报文,以作为所述目标测试报文。
4.根据权利要求2所述的方法,其中:
所述已验案例集合为失败案例集合,所述失败案例为测试结果指示测试未通过的已测案例;
所述根据每个测试报文与已验案例的上行报文的相似度,确定所述至少一个目标测试报文,包括:
在所述测试报文集合中,确定与所述失败案例的上行报文的相似度超过第二阈值的异常测试报文;
滤除所述测试报文集合中的所述异常测试报文,以得到所述目标测试报文。
5.根据权利要求2所述的方法,其中:
所述已验案例集合包括至少一个成功案例和至少一个失败案例;
所述根据每个测试报文与已验案例的上行报文的相似度,确定所述至少一个目标测试报文,包括:针对任一测试报文,
当所述测试报文与所述成功案例的上行报文的相似度超过第一阈值时,确定该测试报文为所述目标测试报文;以及
当所述测试报文不与任一所述成功案例的上行报文的相似度超过第一阈值,也不与任一所述失败案例的上行报文的相似度超过第二阈值时,确定该测试报文为所述目标测试报文。
6.根据权利要求1至5中任一项所述的方法,其中,所述利用所述至少一个目标测试报文,对所述待测应用进行测试,包括:针对任一目标测试报文,
根据所述目标测试报文,确定与所述目标测试报文关联的目标接收方,其中,所述目标接收方为在针对所述待测应用的测试过程中,用于接收所述目标测试报文的目标应用或目标服务器;
向所述目标接收方发送所述目标测试报文;
响应于接收的所述目标接收方针对所述目标测试报文反馈的应答报文,将所述应答报文与标准应答报文进行比对;
基于比对结果,确定所述待测应用的测试结果。
7.根据权利要求1至5中任一项所述的方法,其中,在获取测试报文集合之后,还包括:
对各所述测试报文的报文内容进行哈希计算,得到与各所述测试报文关联的哈希值;
根据与各所述测试报文关联的哈希值,对所述测试报文集合进行去重处理,得到去重后的测试报文集合。
8.一种应用的测试装置,包括:
获取模块,用于获取测试报文集合和已验案例集合,其中,所述测试报文为用于测试待测应用的报文;
确定模块,用于根据所述测试报文集合和所述已验案例集合,确定至少一个目标测试报文;以及
测试模块,用于利用所述至少一个目标测试报文,对所述待测应用进行测试。
9.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至7中任一项所述的方法。
CN202010754725.5A 2020-07-30 2020-07-30 应用的测试方法和装置 Active CN111858379B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010754725.5A CN111858379B (zh) 2020-07-30 2020-07-30 应用的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010754725.5A CN111858379B (zh) 2020-07-30 2020-07-30 应用的测试方法和装置

Publications (2)

Publication Number Publication Date
CN111858379A true CN111858379A (zh) 2020-10-30
CN111858379B CN111858379B (zh) 2024-03-29

Family

ID=72946330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010754725.5A Active CN111858379B (zh) 2020-07-30 2020-07-30 应用的测试方法和装置

Country Status (1)

Country Link
CN (1) CN111858379B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312264A (zh) * 2021-06-08 2021-08-27 中国农业银行股份有限公司 业务系统测试方法、装置、设备、介质及产品

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996451A (zh) * 2009-08-14 2011-03-30 中国工商银行股份有限公司 银行自助设备系统的测试方法及服务器
US20170139819A1 (en) * 2015-11-18 2017-05-18 International Business Machines Corporation Proactive and selective regression testing based on historic test results
CN106815148A (zh) * 2016-12-30 2017-06-09 中国银联股份有限公司 一种交易测试方法及装置
CN107992409A (zh) * 2017-11-21 2018-05-04 平安养老保险股份有限公司 测试用例生成方法、装置、计算机设备和存储介质
CN110191019A (zh) * 2019-05-28 2019-08-30 北京百度网讯科技有限公司 车辆can总线的测试方法、装置、计算机设备和存储介质
CN110263551A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种测试方法及装置
CN110489321A (zh) * 2019-07-08 2019-11-22 平安科技(深圳)有限公司 测试用例筛选方法、装置、计算机设备和存储介质
CN110888797A (zh) * 2019-10-11 2020-03-17 平安信托有限责任公司 测试数据生成方法、装置、计算机设备及存储介质
CN111177005A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 业务应用的测试方法、装置、服务器和存储介质
CN111367791A (zh) * 2020-02-19 2020-07-03 北京字节跳动网络技术有限公司 一种生成测试用例的方法、装置、介质和电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996451A (zh) * 2009-08-14 2011-03-30 中国工商银行股份有限公司 银行自助设备系统的测试方法及服务器
US20170139819A1 (en) * 2015-11-18 2017-05-18 International Business Machines Corporation Proactive and selective regression testing based on historic test results
CN106815148A (zh) * 2016-12-30 2017-06-09 中国银联股份有限公司 一种交易测试方法及装置
CN107992409A (zh) * 2017-11-21 2018-05-04 平安养老保险股份有限公司 测试用例生成方法、装置、计算机设备和存储介质
CN110191019A (zh) * 2019-05-28 2019-08-30 北京百度网讯科技有限公司 车辆can总线的测试方法、装置、计算机设备和存储介质
CN110263551A (zh) * 2019-06-27 2019-09-20 深圳前海微众银行股份有限公司 一种测试方法及装置
CN110489321A (zh) * 2019-07-08 2019-11-22 平安科技(深圳)有限公司 测试用例筛选方法、装置、计算机设备和存储介质
CN110888797A (zh) * 2019-10-11 2020-03-17 平安信托有限责任公司 测试数据生成方法、装置、计算机设备及存储介质
CN111177005A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 业务应用的测试方法、装置、服务器和存储介质
CN111367791A (zh) * 2020-02-19 2020-07-03 北京字节跳动网络技术有限公司 一种生成测试用例的方法、装置、介质和电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312264A (zh) * 2021-06-08 2021-08-27 中国农业银行股份有限公司 业务系统测试方法、装置、设备、介质及产品

Also Published As

Publication number Publication date
CN111858379B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
US11907700B2 (en) Upgrading method and system, server, and terminal device
US20060271826A1 (en) Syslog message handling
CN112822260B (zh) 文件传输方法及装置、电子设备、存储介质
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
WO2020259551A1 (zh) 一种网络连接故障处理方法及装置
KR20170120029A (ko) 데이터 전송 조작을 방지하기 위한 방법 및 장치
CN114553863B (zh) 文件传输方法及装置、存储介质和电子设备
CN110806971A (zh) 一种版本测试方法、装置及电子设备
US20160087759A1 (en) Tuple recovery
CN111538602B (zh) 一种消息队列的消息转发方法及设备
CN113687858A (zh) 配置文件的检查方法、装置、电子设备及存储介质
CN106571975B (zh) 一种通信数据的容错方法及装置
US20090271171A1 (en) Emulator device, and a method for testing a test target device
CN111556080A (zh) 网络节点监控方法、装置、介质及电子设备
US9191332B2 (en) Methods, systems, and computer readable media for updating sequence and acknowledgment numbers associated with replay packets
CN111858379B (zh) 应用的测试方法和装置
CN108616381B (zh) 一种事件关联报警方法和装置
US7882508B1 (en) Tracing information flow using a signature
CN114257632A (zh) 断线重连的方法、装置、电子设备及可读存储介质
CN112333262A (zh) 数据更新提示方法、装置、计算机设备及可读存储介质
CN110784518A (zh) 一种静态资源获取方法与装置
US9348674B2 (en) Aysnchronous communications having compounded responses
CN115633044B (zh) 报文的处理方法、装置、电子设备及存储介质
US20230052324A1 (en) System And Method For Sending And Receiving Remote Procedure Calls
CN113301002A (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