CN113094269A - 应用程序测试异常分析方法及装置 - Google Patents

应用程序测试异常分析方法及装置 Download PDF

Info

Publication number
CN113094269A
CN113094269A CN202110386813.9A CN202110386813A CN113094269A CN 113094269 A CN113094269 A CN 113094269A CN 202110386813 A CN202110386813 A CN 202110386813A CN 113094269 A CN113094269 A CN 113094269A
Authority
CN
China
Prior art keywords
service
application program
information
application
data
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
CN202110386813.9A
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 CN202110386813.9A priority Critical patent/CN113094269A/zh
Publication of CN113094269A publication Critical patent/CN113094269A/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/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/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • 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/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种应用程序测试异常分析方法及装置,可用于人工智能技术领域,所述方法包括:获取应用程序通过网络端口输入和输出的原始数据;对所述原始数据进行解析得到应用程序的服务调用信息;对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端,本发明对应用程序测试异常进行自动识别和数据推送,提升测试效率。

Description

应用程序测试异常分析方法及装置
技术领域
本发明涉及应用程序测试技术领域,特别涉及人工智能技术领域,尤其涉及一种应用程序测试异常分析方法及装置。
背景技术
目前的应用程序测试过程中,当测试业务案例错误时,主要通过记录日志形成日志数据,并将日志数据推送到日志归集服务器,然后开发人员去日志归集服务器获取对应的日志数据以对测试异常进行分析。因此,开发人员在应用程序开发编码时,需要在程序中设置对软件的输入和输出数据进行日志记录的功能,然后通过日志收集和推送软件将日志数据推送到日志归集服务器的服务器。然后,开发人员在应用程序测试过程中执行案例发生错误时,需要通知对应的开发人员,使开发人员在日志归集服务器查找相关日志数据,分析错误时的输入和输出数据、配置文件和数据库的相关业务数据以确定测试异常的原因。这种记录日志到文件的方式需要开发人员将日志记录代码和其所需要的功能代码合并在一起,开发成本高,主要依赖开发人员编码时记录相关日志。当应用程序发生错误需要分析原因时,开发人员需要去日志归集服务器翻查相关日志,整体问题排查流程效率低,当错误是调用的其他开发人员的功能导致的,对错误的跟踪和分析尤其困难。因此,若开发人员在执行案例测试时碰到一些偶发性错误,往往会由于错误重现困难导致研发效能低下和偶发性错误漏出。
发明内容
为了解决以上问题的至少之一,本发明的一个目的在于提供一种应用程序测试异常分析方法,对应用程序测试异常进行自动识别和数据推送,提升测试效率。本发明的另一个目的在于提供一种应用程序测试异常分析装置。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明一方面公开了一种应用程序测试异常分析方法,包括:
获取应用程序通过网络端口输入和输出的原始数据;
对所述原始数据进行解析得到应用程序的服务调用信息;
对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
优选的,所述获取应用程序通过网络端口输入和输出的原始数据具体包括:
通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据。
优选的,所述通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据具体包括:
根据应用程序的端口配置信息确定应用程序的网络端口;
对所述网络端口对应的网卡上输入和输出的数据进行采集得到所述应用程序的原始数据。
优选的,所述对所述原始数据进行解析得到应用程序服务调用信息具体包括:
根据预设的远程过程调用协议对所述原始数据进行解析得到所有服务调用信息;
根据配置的程序服务信息对所述所有服务调用信息进行过滤得到所述应用程序服务调用信息。
优选的,所述对所述服务调用信息进行异常分析具体包括:
通过预设服务关键字和预期结果信息对所述服务调用信息进行匹配以判断所述应用程序是否存在异常。
优选的,所述若存在异常,根据所述服务调用信息形成报警信息具体包括:
若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息;
根据所述应用程序的服务调用信息及所述相关服务调用信息获取所述应用程序的日志数据;
将所述应用程序的服务调用信息、相关服务调用信息、所述日志数据和服务配置信息传输至开发人员终端。
优选的,所述服务调用信息包括所述应用程序被调用服务的服务名称、服务方法、数据类型、服务是否发生错误、请求参数和响应数据、服务调用时间、服务调用方地址和服务被调用方地址。
本发明还公开了一种应用程序测试异常分析装置,包括:
数据获取模块,用于获取应用程序通过网络端口输入和输出的原始数据;
数据分析模块,用于对所述原始数据进行解析得到应用程序的服务调用信息;
异常检测模块,用于对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,
该程序被处理器执行时实现如上所述方法。
本发明在应用程序进行案例测试时,采集应用程序在提供服务时通过网络端口输入和输出的原始数据,对原始数据进行解析以确定原始数据中应用程序的服务调用信息。然后,对自动采集并分析得到的服务调用信息进行异常分析以确定应用程序在服务调用时是否存在异常。若存在异常,则根据服务调用信息形成报警信息后发送至开发人员终端,以使开发人员可根据报警信息对应用程序的测试异常进行分析。本发明可自动识别应用程序执行异常,并对应用程序测试异常进行自动数据推送,提升测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明应用程序测试异常分析方法一个具体实施例的流程图;
图2示出本发明应用程序测试异常分析方法一个具体实施例S110的流程图;
图3示出本发明应用程序测试异常分析方法一个具体实施例S200的流程图;
图4示出本发明应用程序测试异常分析方法一个具体实施例S300的流程图;
图5示出本发明应用程序测试异常分析装置一个具体实施例的结构图;
图6示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请公开的一种应用程序测试异常分析方法及装置可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请公开的一种应用程序测试异常分析方法及装置的应用领域不做限定。
为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。本发明实施例提供的应用程序测试异常分析方法,针对现有应用程序测试基于日志记录方式存在的不足,解决这种日志记录方式对代码的侵入性强,分析错误效率低等问题,本发明提供一种应用程序测试异常分析方法,实施简单,使用成本低,可以大幅提升开发人员分析程序错误的效率。
本发明实施例提供的应用程序测试异常分析系统可包括应用程序设备、测试异常分析装置以及开发人员终端。
其中,应用程序设备上设置有应用程序,该应用程序被配置为可响应外部调用方设备的服务调用指令而向外部调用方提供应用程序对应的服务。当对应用程序进行测试时,可通过外部调用方设备将测试案例通过服务调用指令发送至应用程序设备进行处理,并通过测试异常分析装置。
测试异常分析装置可获取应用程序通过网络端口输入和输出的原始数据;对所述原始数据进行解析得到应用程序的服务调用信息;对所述服务调用信息进行异常分析,若存在异常,可根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。需要说明的是,测试异常分析装置可集成在设置应用程序的应用程序设备上,也可与应用程序设备分别单独设置,通过局域网或互联网实现数据交互。
开发人员终端可接收应用程序测试异常分析装置传输的报警信息,并将该报警信息反馈给开发人员,以便于开发人员根据该报警信息分析应用程序的异常并修复。
下面以应用程序测试异常分析装置作为执行主体为例,说明本发明实施例提供的应用程序测试异常分析方法的实现过程。可以理解的是,本发明实施例提供的应用程序测试异常分析方法的执行主体包括但不限于应用程序测试异常分析装置。
根据本发明的一个方面,本实施例公开了一种应用程序测试异常分析方法。如图1所示,本实施例中,所述方法包括:
S100:获取应用程序通过网络端口输入和输出的原始数据。
S200:对所述原始数据进行解析得到应用程序的服务调用信息。
S300:对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
本发明在应用程序进行案例测试时,采集应用程序在提供服务时通过网络端口输入和输出的原始数据,对原始数据进行解析以确定原始数据中应用程序的服务调用信息。然后,对自动采集并分析得到的服务调用信息进行异常分析以确定应用程序在服务调用时是否存在异常。若存在异常,则根据服务调用信息形成报警信息后发送至开发人员终端,以使开发人员可根据报警信息对应用程序的测试异常进行分析。本发明可自动识别应用程序执行异常,并对应用程序测试异常进行自动数据推送,提升测试效率。
在优选的实施方式中,所述S100获取应用程序通过网络端口输入和输出的原始数据具体包括:
S110:通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据。
具体的,Sidecar模式是一种将应用程序功能从应用程序本身剥离出来作为单独进程的方式。该模式允许向应用程序无侵入的添加多种功能,避免了为满足第三方组件需求而向应用添加额外的配置代码。在软件架构中,sidecar附加到主应用,即本申请的应用程序,或者叫父应用上,以扩展或增强功能特性,同时Sidecar与主应用是松耦合的。为了解决现有的应用程序测试通过日志记录进行异常记录的方式对应用程序的代码侵入性强的问题,同时也为了解决由于需要人工去日志归集服务器获取日志数据导致应用程序测试出现异常时的错误分析效率低的问题。在该优选的实施方式中,通过Sidecar模式对应用程序在案例测试向外提供服务时的状态进行监控。具体的,应用程序在案例测试时会通过设置应用程序的装置上的网络端口与外部服务调用方的设备进行数据交换,以向外部服务调用方提供应用程序的服务。由此,可通过根据Sidecar模式编写的程序对应用程序通过网络端口与外部服务调用方设备的数据交换过程进行记录,即通过Sidecar模式获取应用程序通过网络端口输入和输出的数据得到原始数据。从而,对该原始数据进行数据分析可确定应用程序在案例测试向外提供服务时是否存在异常。由此,在该优选的实施方式中,异常分析装置可自动对案例测试时应用程序是否存在异常进行检测,无需开发人员人工干预,可大幅提升开发人员分析应用程序错误的效率。
在优选的实施方式中,如图2所示,所述S110通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据具体可包括:
S111:根据应用程序的端口配置信息确定应用程序的网络端口。
S112:对所述网络端口对应的网卡上输入和输出的数据进行采集得到所述应用程序的原始数据。
具体的,应用程序的正常运行依赖于应用程序设备上的操作系统,操作系统(operation system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。应用程序通过操作系统的网络端口接收输入的数据以及向外部设备输出的数据。由此,在该优选的实施方式中,可通过应用程序的端口配置信息获取应用程序输入和输出数据的网络端口。根据网络端口的端口信息对网卡上该网络端口输入和输出的数据进行采集得到应用程序测试时的原始数据。在一个具体例子中,该端口配置信息包括提供或调用服务的网络端口,例如端口配置信息可设置为:dubbo.protocols.dubboprotocol.port=28080。其中,网络端口的端口号为28080。
网卡是用来允许计算机在计算机网络上进行通讯的计算机硬件。网卡并不是独立的自治单元,其受到计算机设备的控制,可看成为一个半自治的单元。当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知它所连接的计算机。当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据包时,它就由协议栈向下交给网卡组装成帧后发送到局域网。对于应用程序设备上的应用程序,应用程序通过网卡接收应用程序对应的网络端口输入的数据或向应用程序对应的网络端口发送数据。通常一个网卡对应的会有一个网络地址(IP),一个IP会对应多个网络端口,由此一个网卡会有多个网络端口,从而一个应用程序会用到网卡上的一个或多个网络端口进行数据传输。为了有针对性的获取一个特定应用程序的输入和输出数据,需要首先确定应用程序配置的网络端口,对网卡上应用程序使用的网络端口输入和输出的数据进行过滤以得到应用程序在案例测试时的原始数据。
在一个具体例子中,应用程序与外部设备通过传输控制协议(TCP协议)进行数据交换。TCP协议是一种面向连接的、可靠的及基于字节流的传输层通信协议。TCP协议用于应用程序之间的通信。当应用程序希望通过TCP协议与另一个应用程序通信时,会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,即两个应用程序建立通信后,TCP将在两个应用程序之间建立一个全双工(full-duplex)的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。根据应用程序的网络端口对网卡上与该网络端口相关的输入输出数据进行获取,得到网络端口的原始TCP数据包,即得到原始数据。
在优选的实施方式中,如图3所示,所述S200对所述原始数据进行解析得到应用程序服务调用信息具体包括:
S210:根据预设的远程过程调用协议对所述原始数据进行解析得到所有服务调用信息。
S220:根据配置的程序服务信息对所述所有服务调用信息进行过滤得到所述应用程序服务调用信息。
具体的,远程过程调用(Remote Procedure Call,RPC)简单来说就是为了解决远程调用服务的一种技术,使得服务调用方像调用本地服务一样方便透明。目前流行的开源RPC框架如阿里巴巴的Dubbo、Facebook的Thrift、Google的gRPC以及Twitter的Finagle都有各自对应的RPC协议,用于各个服务之间的交互。从而,可根据配置的RPC协议对捕获的原始数据(例如,TCP数据包)进行解析,得到服务调用信息。在一个具体例子中,通过预设的RPC协议解析原始数据可得到包括所述应用程序被调用服务的服务名称、服务方法、数据类型、服务是否发生错误、请求参数和响应数据、服务调用时间、服务调用方地址和服务被调用方地址等信息的服务调用信息。
进一步的,可根据预先配置的程序服务信息对所有服务调用信息进行过滤以得到与应用程序相关的服务调用信息。例如,可根据配置的服务名称等程序服务信息对解析得到的服务调用信息进行过滤,将程序服务信息配置的需要处理的服务调用信息筛选出来,从而可根据开发人员配置自动获取并筛选得到开发人员需要的服务调用信息,提高了测试异常分析装置的应用灵活性,提高开发人员的开发和测试效率。
在优选的实施方式中,所述S300对所述服务调用信息进行异常分析具体包括:
S310:通过预设服务关键字和预期结果信息对所述服务调用信息进行匹配以判断所述应用程序是否存在异常。
具体的,对于需要进行异常判断的服务调用信息,可根据预设的服务关键字和预期结果信息对服务调用信息进行信息匹配。例如,可预先设置与应用程序服务过程中形成的过程信息对应的服务关键字以及与应用程序服务完成后可得到的各种结果信息对应的预期结果信息。从而,对分析得到的服务调用信息与服务关键字和预期结果信息进行信息匹配可确定应用程序测试过程中的过程信息和最终运行得到的结果信息。从而,根据匹配得到的过程信息和结果信息可确定应用程序案例测试过程是否异常。开发人员可根据匹配得到的过程信息和结果信息进一步确定应用程序的异常情况,并有针对性的进行程序修复。
在优选的实施方式中,如图4所示,所述S300中若存在异常,根据所述服务调用信息形成报警信息具体包括:
S321:若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息。
S322:根据所述应用程序的服务调用信息及所述相关服务调用信息获取所述应用程序的日志数据。
S323:将所述应用程序的服务调用信息、相关服务调用信息、所述日志数据和服务配置数据传输至开发人员终端。
具体的,当应用程序在案例测试存在异常时,需要将应用程序测试时的相关信息反馈给开发人员,以便于开发人员根据测试相关信息确定应用程序的程序错误并进行修正。在该优选的实施方式中,获取应用程序预先配置的调用链路,该调用链路为服务依赖关系链路,包括链路上具有相互依赖关系服务的服务名称、服务上下游信息和服务对应的开发人员。在一个具体例子中,服务A依赖服务B,服务B依赖服务C,服务C依赖服务D。当应用程序调用了服务A,那么服务A就会调用服务B,服务B就会调用服务C,服务C就会调用服务D,服务A~服务D就形成了一条服务调用链路。如果调用链路中的一个服务出现了问题,例如服务C在测试时出现异常,则通过预设的调用链路可查询到上述服务A~服务D的调用链路,对该调用链路上的服务A、服务B和服务D的相关服务的服务调用信息进行采集以对调用链路上的其他所有相关服务调用信息进行采集。
进一步的,还可根据应用程序的服务调用信息和相关服务调用信息可从日志归集服务器上获取相关的日志数据,得到更多的案例测试错误现场数据。然后对应用程序的其他相关信息与服务调用信息及日志数据共同发送到开发人员终端,以使开发人员终端将应用程序测试的所有相关信息反馈给开发人员进行进一步的分析和判断。需要说明的是,应用程序通常会对服务调用的关键步骤进行日志记录,并传输至日志归集服务器中进行存储,从而可从日志归集服务器中获取相关的日志数据。本发明的应用程序测试异常并不对应用程序过多的入侵,通过应用程序自身常规的日志记录功能得到辅助及参考的日志数据即可,当应用程序本身并不进行日志记录,也可不采集日志数据。即根据所述服务调用信息形成报警信息可包括以下步骤:若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息。将所述应用程序的服务调用信息、相关服务调用信息和服务配置数据传输至开发人员终端。
其中,服务配置信息可包括应用程序的配置文件和服务基础数据。其中,应用程序的配置文件可包括数据库配置、服务注册中心配置以及服务名称、版本号和并行执行数的调用服务配置。服务基础数据是应用程序提供服务运行时所需的数据,即预设的应用号等应用程序参数。
综上,本发明提供了一种应用程序测试异常分析方法,通过数据捕获、数据解析、数据过滤、数据整理、数据分析、数据推送多个过程,对预设的调用链路的服务调用数据进行了捕获、分析和处理,实现了对应用程序测试异常进行自动识别和数据推送,提升测试效率,避免了捕获错误代码对相关功能代码的侵入性,减少了捕获业务案例错误现场的人工成本,可以让开发人员更快地定位错误发生原因。极大程度保留了程序运行异常时的现场信息,帮助研发人员提前识别并定位问题(尤其是偶发性问题),能帮助项目团队提高项目的研发质量,尽量在前期定位和发现问题,减少后期程序变动带来的风险。
基于相同原理,本实施例还公开了一种应用程序测试异常分析装置。如图5所示,本实施例中,所述装置包括数据获取模块11、数据分析模块12和异常检测模块13。
其中,数据获取模块11用于获取应用程序通过网络端口输入和输出的原始数据。
数据分析模块12用于对所述原始数据进行解析得到应用程序的服务调用信息。
异常检测模块13用于对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
本发明在应用程序进行案例测试时,采集应用程序在提供服务时通过网络端口输入和输出的原始数据,对原始数据进行解析以确定原始数据中应用程序的服务调用信息。然后,对自动采集并分析得到的服务调用信息进行异常分析以确定应用程序在服务调用时是否存在异常。若存在异常,则根据服务调用信息形成报警信息后发送至开发人员终端,以使开发人员可根据报警信息对应用程序的测试异常进行分析。本发明可自动识别应用程序执行异常,并对应用程序测试异常进行自动数据推送,提升测试效率。
在优选的实施方式中,所述数据获取模块11具体用于通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据。
具体的,Sidecar模式是一种将应用程序功能从应用程序本身剥离出来作为单独进程的方式。该模式允许向应用程序无侵入的添加多种功能,避免了为满足第三方组件需求而向应用添加额外的配置代码。在软件架构中,sidecar附加到主应用,即本申请的应用程序,或者叫父应用上,以扩展或增强功能特性,同时Sidecar与主应用是松耦合的。为了解决现有的应用程序测试通过日志记录进行异常记录的方式对应用程序的代码侵入性强的问题,同时也为了解决由于需要人工去日志归集服务器获取日志数据导致应用程序测试出现异常时的错误分析效率低的问题。在该优选的实施方式中,通过Sidecar模式对应用程序在案例测试向外提供服务时的状态进行监控。具体的,应用程序在案例测试时会通过设置应用程序的装置上的网络端口与外部服务调用方的设备进行数据交换,以向外部服务调用方提供应用程序的服务。由此,可通过根据Sidecar模式编写的程序对应用程序通过网络端口与外部服务调用方设备的数据交换过程进行记录,即通过Sidecar模式获取应用程序通过网络端口输入和输出的数据得到原始数据。从而,对该原始数据进行数据分析可确定应用程序在案例测试向外提供服务时是否存在异常。由此,在该优选的实施方式中,异常分析装置可自动对案例测试时应用程序是否存在异常进行检测,无需开发人员人工干预,可大幅提升开发人员分析应用程序错误的效率。
在优选的实施方式中,所述数据获取模块11进一步可用于根据应用程序的端口配置信息确定应用程序的网络端口。对所述网络端口对应的网卡上输入和输出的数据进行采集得到所述应用程序的原始数据。
具体的,应用程序的正常运行依赖于应用程序设备上的操作系统,操作系统(operation system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。应用程序通过操作系统的网络端口接收输入的数据以及向外部设备输出的数据。由此,在该优选的实施方式中,可通过应用程序的端口配置信息获取应用程序输入和输出数据的网络端口。根据网络端口的端口信息对网卡上该网络端口输入和输出的数据进行采集得到应用程序测试时的原始数据。在一个具体例子中,该端口配置信息包括提供或调用服务的网络端口,例如端口配置信息可设置为:dubbo.protocols.dubboprotocol.port=28080。其中,网络端口的端口号为28080。
网卡是用来允许计算机在计算机网络上进行通讯的计算机硬件。网卡并不是独立的自治单元,其受到计算机设备的控制,可看成为一个半自治的单元。当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知它所连接的计算机。当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层。当计算机要发送一个IP数据包时,它就由协议栈向下交给网卡组装成帧后发送到局域网。对于应用程序设备上的应用程序,应用程序通过网卡接收应用程序对应的网络端口输入的数据或向应用程序对应的网络端口发送数据。通常一个网卡对应的会有一个网络地址(IP),一个IP会对应多个网络端口,由此一个网卡会有多个网络端口,从而一个应用程序会用到网卡上的一个或多个网络端口进行数据传输。为了有针对性的获取一个特定应用程序的输入和输出数据,需要首先确定应用程序配置的网络端口,对网卡上应用程序使用的网络端口输入和输出的数据进行过滤以得到应用程序在案例测试时的原始数据。
在一个具体例子中,应用程序与外部设备通过传输控制协议(TCP协议)进行数据交换。TCP协议是一种面向连接的、可靠的及基于字节流的传输层通信协议。TCP协议用于应用程序之间的通信。当应用程序希望通过TCP协议与另一个应用程序通信时,会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,即两个应用程序建立通信后,TCP将在两个应用程序之间建立一个全双工(full-duplex)的通信。这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。根据应用程序的网络端口对网卡上与该网络端口相关的输入输出数据进行获取,得到网络端口的原始TCP数据包,即得到原始数据。
在优选的实施方式中,所述数据分析模块12具体用于根据预设的远程过程调用协议对所述原始数据进行解析得到所有服务调用信息。根据配置的程序服务信息对所述所有服务调用信息进行过滤得到所述应用程序服务调用信息。
具体的,远程过程调用(Remote Procedure Call,RPC)简单来说就是为了解决远程调用服务的一种技术,使得服务调用方像调用本地服务一样方便透明。目前流行的开源RPC框架如阿里巴巴的Dubbo、Facebook的Thrift、Google的gRPC以及Twitter的Finagle都有各自对应的RPC协议,用于各个服务之间的交互。从而,可根据配置的RPC协议对捕获的原始数据(例如,TCP数据包)进行解析,得到服务调用信息。通过预设的RPC协议解析原始数据可得到包括所述应用程序被调用服务的服务名称、服务方法、数据类型、服务是否发生错误、请求参数和响应数据、服务调用时间、服务调用方地址和服务被调用方地址等信息的服务调用信息。
进一步的,可根据预先配置的程序服务信息对所有服务调用信息进行过滤以得到与应用程序相关的服务调用信息。例如,可根据配置的服务名称等程序服务信息对解析得到的服务调用信息进行过滤,将程序服务信息配置的需要处理的服务调用信息筛选出来,从而可根据开发人员配置自动获取并筛选得到开发人员需要的服务调用信息,提高了测试异常分析装置的应用灵活性,提高开发人员的开发和测试效率。
在优选的实施方式中,所述异常检测模块13具体用于通过预设服务关键字和预期结果信息对所述服务调用信息进行匹配以判断所述应用程序是否存在异常。
具体的,对于需要进行异常判断的服务调用信息,可根据预设的服务关键字和预期结果信息对服务调用信息进行信息匹配。例如,可预先设置与应用程序服务过程中形成的过程信息对应的服务关键字以及与应用程序服务完成后可得到的各种结果信息对应的预期结果信息。从而,对分析得到的服务调用信息与服务关键字和预期结果信息进行信息匹配可确定应用程序测试过程中的过程信息和最终运行得到的结果信息。从而,根据匹配得到的过程信息和结果信息可确定应用程序案例测试过程是否异常。开发人员可根据匹配得到的过程信息和结果信息进一步确定应用程序的异常情况,并有针对性的进行程序修复。
在优选的实施方式中,所述异常检测模块13进一步用于若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息。根据所述应用程序的服务调用信息及所述相关服务调用信息获取所述应用程序的日志数据。将所述应用程序的服务调用信息、相关服务调用信息、所述日志数据和服务配置数据传输至开发人员终端。
具体的,当应用程序在案例测试存在异常时,需要将应用程序测试时的相关信息反馈给开发人员,以便于开发人员根据测试相关信息确定应用程序的程序错误并进行修正。在该优选的实施方式中,获取应用程序预先配置的调用链路,该调用链路为服务依赖关系链路,包括链路上具有相互依赖关系服务的服务名称、服务上下游信息和服务对应的开发人员。在一个具体例子中,服务A依赖服务B,服务B依赖服务C,服务C依赖服务D。当应用程序调用了服务A,那么服务A就会调用服务B,服务B就会调用服务C,服务C就会调用服务D,服务A~服务D就形成了一条服务调用链路。如果调用链路中的一个服务出现了问题,例如服务C在测试时出现异常,则通过预设的调用链路可查询到上述服务A~服务D的调用链路,对该调用链路上的服务A、服务B和服务D的相关服务的服务调用信息进行采集以对调用链路上的其他所有相关服务调用信息进行采集。
进一步的,还可根据应用程序的服务调用信息和相关服务调用信息可从日志归集服务器上获取相关的日志数据,得到更多的案例测试错误现场数据。然后对应用程序的其他相关信息与服务调用信息及日志数据共同发送到开发人员终端,以使开发人员终端将应用程序测试的所有相关信息反馈给开发人员进行进一步的分析和判断。需要说明的是,应用程序通常会对服务调用的关键步骤进行日志记录,并传输至日志归集服务器中进行存储,从而可从日志归集服务器中获取相关的日志数据。本发明的应用程序测试异常并不对应用程序过多的入侵,通过应用程序自身常规的日志记录功能得到辅助及参考的日志数据即可,当应用程序本身并不进行日志记录,也可不采集日志数据。即根据所述服务调用信息形成报警信息可包括以下步骤:若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息。将所述应用程序的服务调用信息、相关服务调用信息和服务配置数据传输至开发人员终端。
其中,服务配置信息可包括应用程序的配置文件和服务基础数据。其中,应用程序的配置文件可包括数据库配置、服务注册中心配置以及服务名称、版本号和并行执行数的调用服务配置。服务基础数据是应用程序提供服务运行时所需的数据,即预设的应用号等应用程序参数。
由于该装置解决问题的原理与以上方法类似,因此本装置的实施可以参见方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图6,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图6所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机应用程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种应用程序测试异常分析方法,其特征在于,包括:
获取应用程序通过网络端口输入和输出的原始数据;
对所述原始数据进行解析得到应用程序的服务调用信息;
对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
2.根据权利要求1所述的应用程序测试异常分析方法,其特征在于,所述获取应用程序通过网络端口输入和输出的原始数据具体包括:
通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据。
3.根据权利要求2所述的应用程序测试异常分析方法,其特征在于,所述通过Sidecar模式获取应用程序通过网络端口输入和输出的原始数据具体包括:
根据应用程序的端口配置信息确定应用程序的网络端口;
对所述网络端口对应的网卡上输入和输出的数据进行采集得到所述应用程序的原始数据。
4.根据权利要求1所述的应用程序测试异常分析方法,其特征在于,所述对所述原始数据进行解析得到应用程序服务调用信息具体包括:
根据预设的远程过程调用协议对所述原始数据进行解析得到所有服务调用信息;
根据配置的程序服务信息对所述所有服务调用信息进行过滤得到所述应用程序服务调用信息。
5.根据权利要求1所述的应用程序测试异常分析方法,其特征在于,所述对所述服务调用信息进行异常分析具体包括:
通过预设服务关键字和预期结果信息对所述服务调用信息进行匹配以判断所述应用程序是否存在异常。
6.根据权利要求1所述的应用程序测试异常分析方法,其特征在于,所述若存在异常,根据所述服务调用信息形成报警信息具体包括:
若存在异常,根据所述服务调用信息和预设的服务调用链路采集调用链路上的相关服务调用信息;
根据所述应用程序的服务调用信息及所述相关服务调用信息获取所述应用程序的日志数据;
将所述应用程序的服务调用信息、相关服务调用信息、所述日志数据和服务配置信息传输至开发人员终端。
7.根据权利要求1所述的应用程序测试异常分析方法,其特征在于,所述服务调用信息包括所述应用程序被调用服务的服务名称、服务方法、数据类型、服务是否发生错误、请求参数和响应数据、服务调用时间、服务调用方地址和服务被调用方地址。
8.一种应用程序测试异常分析装置,其特征在于,包括:
数据获取模块,用于获取应用程序通过网络端口输入和输出的原始数据;
数据分析模块,用于对所述原始数据进行解析得到应用程序的服务调用信息;
异常检测模块,用于对所述服务调用信息进行异常分析,若存在异常,根据所述服务调用信息形成报警信息,并将所述报警信息传输至开发人员终端。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1-7任一项所述方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,
该程序被处理器执行时实现如权利要求1-7任一项所述方法。
CN202110386813.9A 2021-04-12 2021-04-12 应用程序测试异常分析方法及装置 Pending CN113094269A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110386813.9A CN113094269A (zh) 2021-04-12 2021-04-12 应用程序测试异常分析方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110386813.9A CN113094269A (zh) 2021-04-12 2021-04-12 应用程序测试异常分析方法及装置

Publications (1)

Publication Number Publication Date
CN113094269A true CN113094269A (zh) 2021-07-09

Family

ID=76676181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110386813.9A Pending CN113094269A (zh) 2021-04-12 2021-04-12 应用程序测试异常分析方法及装置

Country Status (1)

Country Link
CN (1) CN113094269A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297074A (zh) * 2022-08-02 2022-11-04 卓望数码技术(深圳)有限公司 一种监控微服务应用的方法及装置
WO2023125053A1 (zh) * 2021-12-30 2023-07-06 中兴通讯股份有限公司 数据采集方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293520A1 (en) * 2016-04-06 2017-10-12 Dell Products, Lp Method for System Debug and Firmware Update of a Headless Server
CN108509313A (zh) * 2018-03-23 2018-09-07 深圳乐信软件技术有限公司 一种业务监控方法、平台及存储介质
CN109684280A (zh) * 2018-12-19 2019-04-26 泰康保险集团股份有限公司 日志文件处理方法、装置及系统
CN110851298A (zh) * 2019-11-08 2020-02-28 卫盈联信息技术(深圳)有限公司 异常分析及处理方法、电子装置及存储介质
CN110933075A (zh) * 2019-11-28 2020-03-27 腾讯音乐娱乐科技(深圳)有限公司 服务调用方法、装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170293520A1 (en) * 2016-04-06 2017-10-12 Dell Products, Lp Method for System Debug and Firmware Update of a Headless Server
CN108509313A (zh) * 2018-03-23 2018-09-07 深圳乐信软件技术有限公司 一种业务监控方法、平台及存储介质
CN109684280A (zh) * 2018-12-19 2019-04-26 泰康保险集团股份有限公司 日志文件处理方法、装置及系统
CN110851298A (zh) * 2019-11-08 2020-02-28 卫盈联信息技术(深圳)有限公司 异常分析及处理方法、电子装置及存储介质
CN110933075A (zh) * 2019-11-28 2020-03-27 腾讯音乐娱乐科技(深圳)有限公司 服务调用方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023125053A1 (zh) * 2021-12-30 2023-07-06 中兴通讯股份有限公司 数据采集方法、装置、电子设备及存储介质
CN115297074A (zh) * 2022-08-02 2022-11-04 卓望数码技术(深圳)有限公司 一种监控微服务应用的方法及装置

Similar Documents

Publication Publication Date Title
US10528454B1 (en) Intelligent automation of computer software testing log aggregation, analysis, and error remediation
US6584491B1 (en) Arrangement for monitoring a progress of a message flowing through a distributed multiprocess system
US7525422B2 (en) Method and system for providing alarm reporting in a managed network services environment
US11126711B2 (en) System and method for implementing a log source value tool for security information event management
US20040167793A1 (en) Network monitoring method for information system, operational risk evaluation method, service business performing method, and insurance business managing method
CN113094269A (zh) 应用程序测试异常分析方法及装置
CN109460307B (zh) 基于日志埋点的微服务调用跟踪方法及其系统
WO2019051948A1 (zh) 监控数据的处理方法、设备、服务器及存储介质
CN111290958B (zh) 一种调试智能合约的方法及装置
KR102088285B1 (ko) 규칙 기반의 동적 로그 수집 방법 및 장치
US20170011302A1 (en) Action correlation framework
CN114666407A (zh) 一种rpa跨端通信方法及设备
CN113495820A (zh) 异常信息收集、处理方法和装置以及异常监控系统
CN114579194A (zh) 一种基于Spring远程调用的异常处理方法和系统
CN112765246A (zh) 任务处理方法、装置、电子设备和存储介质
CN116431443A (zh) 日志记录方法、装置、计算机设备及计算机可读存储介质
CN115202973A (zh) 应用运行状态的确定方法、装置、电子设备和介质
CN114826874A (zh) 一种安全告警日志自动化处置方法、系统及存储介质
CN113282506A (zh) 测试数据获取方法、装置、设备及计算机可读存储介质
CN113032341A (zh) 一种基于可视化配置的日志处理方法
CN110532253A (zh) 一种业务分析方法、系统及集群
Ramakrishna et al. A platform for end-to-end mobile application infrastructure analytics using system log correlation
CN113094268B (zh) 测试方法、装置、设备和介质
CN113672910B (zh) 安全事件处理方法及装置
CN112541183B (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