CN110233818B - 测试数据报文异常的方法、装置和计算机可读存储介质 - Google Patents
测试数据报文异常的方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110233818B CN110233818B CN201810225984.1A CN201810225984A CN110233818B CN 110233818 B CN110233818 B CN 110233818B CN 201810225984 A CN201810225984 A CN 201810225984A CN 110233818 B CN110233818 B CN 110233818B
- Authority
- CN
- China
- Prior art keywords
- data
- data message
- message
- monitoring point
- intercepted
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/70—Routing based on monitoring results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/30—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
- H04L63/306—Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information intercepting packet switched data communications, e.g. Web, Internet or IMS communications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机网络领域,公开了一种测试数据报文异常的方法、装置和计算机可读存储介质,以解决现有的测试数据报文异常的方法通用性欠佳和效率低下的问题。所述方法包括:确定被测试系统运行时数据报文正常传输流程中的监测点;在收到监测任务后,启动在监测点部署的消息截获函数截获数据报文正常传输流程中的数据报文;按照预设测试要求,对截获的数据报文进行异常操作。本发明提供的技术方案一方面在于技术方案的通用性较强,适合各种系统的测试;另一方面,不会影响其他用户对待测系统进行的测试,其他用户可以共享待测系统的代码,因而对待测系统的测试效率高。
Description
技术领域
本发明涉及计算机网络领域,尤其涉及一种测试数据报文异常的方法、装置和计算机可读存储介质。
背景技术
随着计算机网络技术的发展,越来越多的终端都会接入互联网(Internet),访问网上的资源或者与另一终端交互。终端的联网也意味着在网络上传输的信息会被截获、篡改。对于一些重要的信息,例如,网购的支付信息或者其他涉及到金钱方面的支付信息,用户是绝不希望被篡改的,这就要求软件开发商对其开发的软件在发布和实施之前进行严格的数据报文异常测试。系统各个模块之间的调用关系,本质是通过TCP/UDP网络协议实现数据交互,完成各种业务流程。交互的过程当然要求是安全的,但系统的异常又在所难免,因此,如何高效地测试出系统的异常以进一步做处理是业界普遍关心的问题。
现有的一种测试数据报文异常的方法是对程序插桩。所谓程序插桩,是在被测程序中插入探针(又称为“探测仪”,本质上就是进行信息采集的代码段,可以是赋值语句或采集覆盖信息的函数调用等),通过探针的执行并抛出程序运行的特征数据,对这些数据进行分析,便可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等动态信息,从而实现测试目的。
然而,通过程序插桩来测试数据报文异常,其一个缺陷在于通用性不强,即针对不同的业务场景,需要不同的插桩程序,例如,A模块调用B模块时,为了测试这个过程是否异常,需要针对B模块写一个插桩程序,待到A模块调用C模块时,为了测试这个过程是否异常,又需要针对C模块写一个插桩程序,等等;通过程序插桩来测试数据报文异常的另一缺陷在于测试效率低下,这是因为,插桩程序一旦启动,被替换的模块就不能正常启动,在资源共享的测试环境中,就会对其他用户针对被测试系统或模块的测试造成干扰。
发明内容
本发明实施例的主要目的在于提供一种测试数据报文异常的方法、装置和计算机可读存储介质,以解决现有的测试数据报文异常的方法通用性欠佳和效率低下的问题。
为实现上述目的,本发明实施例第一方面提供测试数据报文异常的方法,所述方法包括:
确定被测试系统运行时数据报文正常传输流程中的监测点;
在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文;
按照预设测试要求,对所述截获的数据报文进行异常操作。
为实现上述目的,本发明实施例第二方面提供一种测试数据报文异常的装置,所述装置包括:
确定模块,用于确定被测试系统运行时数据报文正常传输流程中的监测点;
数据捕获模块,用于在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文;
异常构建模块,用于按照预设测试要求,对所述截获的数据报文进行异常操作。
为实现上述目的,本发明实施例第三方面提供一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下方法的步骤:
确定被测试系统运行时数据报文正常传输流程中的监测点;
在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文;
按照预设测试要求,对所述截获的数据报文进行异常操作。
结合本发明第三方面,在第三方面的第一种实施方式中,所述确定被测试系统运行时数据报文正常传输流程中的监测点,包括:
在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点。
结合本发明第三方面的第一种实施方式,在第三方面的第二种实施方式中,所述在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点,包括:
若所收数据报文被第一次路由判决时判决为流向本机的数据报文,则在流向本机的路径上设置监测点;以及
在所述本机流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点。
结合本发明第三方面,在第三方面的第三种实施方式中,所述按照预设测试要求,对所述截获的数据报文进行异常操作,包括:
解析所述截获的数据报文;
若所述截获的数据报文不包含有效数据或不符合所述预设测试要求,则将所述不包含有效数据或不符合所述预设测试要求的数据报文放回队列;
若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作。
结合本发明第三方面的第三种实施方式,在第三方面的第四种实施方式中,所述若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作,包括:
按照所述预设测试要求,篡改所述包含有效数据的数据报文;和/或
按照所述预设测试要求,丢弃所述包含有效数据的数据报文。
结合本发明第三方面、第三方面的第一种实施方式、第三方面的第二种实施方式、第三方面的第三种实施方式后者第三方面的第四种实施方式,在第三方面的第五种实施方式中,所述方法还包括:
在所述确定被测试系统运行时数据报文正常传输流程中的监测点之前,注册所述在所述监测点部署的消息截获函数。
为实现上述目的,本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下方法的步骤:
确定被测试系统运行时数据报文正常传输流程中的监测点;
在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文;
按照预设测试要求,对所述截获的数据报文进行异常操作。
结合本发明第四方面,在第四方面的第一种实施方式中,所述确定被测试系统运行时数据报文正常传输流程中的监测点,包括:
在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点。
结合本发明第四方面的第一种实施方式,在第四方面的第二种实施方式中,所述在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点,包括:
若所收数据报文被第一次路由判决时判决为流向本机的数据报文,则在流向本机的路径上设置监测点;以及
在所述本机流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点。
结合本发明第四方面,在第四方面的第三种实施方式中,所述按照预设测试要求,对所述截获的数据报文进行异常操作,包括:
解析所述截获的数据报文;
若所述截获的数据报文不包含有效数据或不符合所述预设测试要求,则将所述不包含有效数据或不符合所述预设测试要求的数据报文放回队列;
若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作。
结合本发明第四方面的第三种实施方式,在第四方面的第四种实施方式中,所述若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作,包括:
按照所述预设测试要求,篡改所述包含有效数据的数据报文;和/或
按照所述预设测试要求,丢弃所述包含有效数据的数据报文。
结合本发明第四方面、第四方面的第一种实施方式、第四方面的第二种实施方式、第四方面的第三种实施方式后者第四方面的第四种实施方式,在第四方面的第五种实施方式中,所述方法还包括:
在所述确定被测试系统运行时数据报文正常传输流程中的监测点之前,注册所述在所述监测点部署的消息截获函数。
从上述本发明实施例提供的技术方案可知,一方面,由于在监测点对截获的数据报文进行异常操作,构造数据报文传输的异常场景,而不是对程序的代码进行改动,因此,无需像程序插桩那样对每一段被测代码都写一个桩程序,因此,本发明所用测试程序独立于待测系统的代码,技术方案的通用性较强,适合各种系统的测试;另一方面,由于数据报文的异常操作时按照预设要求进行,只有指定的数据报文才会按照预设要求进行异常操作,不会影响其他用户对待测系统进行的测试,其他用户可以共享待测系统的代码,因而对待测系统的测试效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的计算设备的结构框图;
图2为本发明实施例提供的测试数据报文异常的方法流程示意图;
图3为本发明实施例提供的网络的一个数据报文正常传输时协议栈底层机制示意图;
图4为本发明实施例提供的对截获的数据报文进行解析所获得的解析结果的示意图;
图5为本发明实施例提供的测试程序测试财付通系统数据报文异常的方法框架示意图;
图6为本发明实施例提供的测试数据报文异常的装置的结构框图;
图7为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图8为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图9为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图10为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图11-a为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图11-b为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图11-c为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图11-d为本发明另一实施例提供的测试数据报文异常的装置的结构框图;
图11-e为本发明另一实施例提供的测试数据报文异常的装置的结构框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了一种计算设备的结构框图。本发明实施例提供的测试数据报文异常的方法可应用于如图1所示的计算设备10中,计算设备10可以但不限于包括:需依靠电池维持正常运行且支持网络及下载功能的智能手机、笔记本、平板电脑、穿戴智能设备、个人电脑、服务器等。
如图1所示,计算设备10包括存储器101、存储控制器102,一个或多个(图中仅示出一个)处理器103、外设接口104、射频模块105、按键模块106、音频模块107以及触控屏幕108。这些组件通过一条或多条通讯总线/信号线109相互通讯。
可以理解,图1所示的结构仅为示意,其并不对计算设备的结构造成限定。计算设备10还可包括比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。
存储器101可用于存储软件程序以及模块,如本发明实施例中的测试数据报文异常的方法及计算设备对应的程序指令/模块,处理器103通过运行存储在存储器101内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的测试数据报文异常的方法。
存储器101可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器101可进一步包括相对于处理器103远程设置的存储器,这些远程存储器可以通过网络连接至计算设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器103以及其他可能的组件对存储器101的访问可在存储控制器102的控制下进行。
外设接口104将各种输入/输入装置耦合至CPU以及存储器101。处理器103运行存储器101内的各种软件、指令以执行计算设备10的各种功能以及进行数据处理。
在一些实施例中,外设接口104,处理器103以及存储控制器102可以在单个芯片中实现。在其他一些实例中,它们可以分别由独立的芯片实现。
射频模块105用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频模块105可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。射频模块105可与各种网络如互联网、企业内部网、预置类型的无线网络进行通讯或者通过预置类型的无线网络与其他设备进行通讯。上述的预置类型的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的预置类型的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for MobileCommunication,GSM),增强型移动通信技术(Enhanced Data GSM Environment,EDGE),宽带码分多址技术(Wideband Code Division Multiple Access,W-CDMA),码分多址技术(Code Division Access,CDMA),时分多址技术(Time Division Multiple Access,TDMA),蓝牙,无线保真技术(Wireless-Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a、IEEE 802.11b、IEEE802.11g和/或IEEE 802.11n),网络电话(Voice overInternet Protocal,VoIP),全球微波互联接入(Worldwide Interoperability forMicrowave Access,Wi-Max),其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议。
按键模块106提供用户向计算设备进行输入的接口,用户可以通过按下不同的按键以使计算设备10执行不同的功能。
音频模块107向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口104处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口104中以进行进一步的处理。音频数据可以从存储器101处或者通过射频模块105获取。此外,音频数据也可以存储至存储器101中或者通过射频模块105进行发送。在一些实例中,音频模块107还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。
触控屏幕108在计算设备与用户之间同时提供一个输出及输入界面。具体地,触控屏幕108向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。触控屏幕108还接收用户的输入,例如用户的点击、滑动等手势操作,以便用户界面对象对这些用户的输入做出响应。检测用户输入的技术可以是基于电阻式、电容式或者其他任意可能的触控检测技术。触控屏幕108显示单元的具体实例包括但并不限于液晶显示器或发光聚合物显示器。
基于上述计算设备,本发明实施例提供的一种测试数据报文异常的方法的流程图如附图2所示,主要包括如下步骤S201至S203,详细说明如下:
S201,确定被测试系统运行时数据报文正常传输流程中的监测点。
需要说明的是,本发明实施例提供的测试数据报文异常的方法,其所对应的测试程序即用于测试被测试系统的代码是独立于被测试系统的。网络的一个数据报文正常传输时,其协议栈底层机制如附图3所示,假设终端(或服务器或其他电子设备)接收一个来自网络的数据报文,该数据报文并非“长驱直入”,直接进入终端,而是从数据入口流入时经第一次路由判决,确定该数据报文是否是发到本机的数据报文,若是,则流向上层协议栈进行处理,否则向外转发(Forward),这是收报文的流程;经上层协议栈处理的数据报文流出后,经第二次路由判决,确定该已处理数据报文的目的地,然后,从数据出口流出。从上述对一个数据报文的协议栈底层机制的分析可知,在本发明实施中,确定被测试系统运行时数据报文正常传输流程中的监测点可以是在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点,即附图3示例的A、B、C、D和E这五处设置监测点。
进一步地,对于附图3示例的网络数据报文正常传输时的协议栈底层机制,考虑到一个数据报文在流向上层协议栈之前会进行一次路由判决(即附图3中的第一次路由判决),在A点设置监测点不是必须的,这是因为,若经第一次路由判决,所收数据报文并非发给本机,会向外转发,而对转发出去的数据报文,或者对经上层协议栈处理并且经第二次路由判决是应该发送出去的数据报文进行监测也不是必须的,因为前者并没有经过本机,而后者已经本身是从本机流出的报文。基于上述事实,作为本发明一个实施例,在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点可以是:若所收数据报文被第一次路由判决时判决为流向本机的数据报文,则在流向本机的路径上设置监测点,即在附图3示例的B点设置监测点;以及在本机流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点,即在附图3示例的D点设置监测点。
S202,在收到监测任务后,启动在监测点部署的消息截获函数截获数据报文正常传输流程中的数据报文。
在本发明实施例中,可以在步骤S201即确定被测试系统运行时数据报文正常传输流程中的监测点之前,注册在监测点部署的消息截获函数。消息截获函数的特点在于,当有消息事件发生时即开始启动执行某个动作。例如,对于本发明而言,是在收到监测任务后,启动在监测点部署的消息截获函数截获数据报文正常传输流程中的数据报文,其中,消息截获函数可以是回调函数或者钩子函数等具有消息捕获这一基本功能的函数。
需要说明的是,在本发明实施例中,监测任务携带了需要监测的数据报文的属性信息,主要包含需要监测的数据报文的地址信息,例如,源IP、源端口、目的IP和目的端口,等等。测试程序收到监测任务后,根据这些属性信息,从用于缓存收发两方的消息队列里匹配与这些属性信息对应的数据报文,从而实现截获数据报文正常传输流程中的数据报文。
S203,按照预设测试要求,对截获的数据报文进行异常操作。
在本发明实施例中,测试要求由用户(此处指的是对被测试系统进行测试的人员)预先设置,其用于实现特定的测试目的,例如,在数据报文被篡改后,被测试系统的反应,包括识别、自动纠错、发送错误提示,等等。如前所述,消息截获函数具有消息捕获这一基本功能。除此之外,消息截获函数还可以由用户根据测试要求来实现其某种功能,例如,过滤、网络地址转换、修改数据报文的内容等,实现这些功能时可以实现对截获的数据报文进行异常操作,具体地,步骤S203可通过如下步骤S2031至S2033实现:
S2031,解析截获的数据报文。
在互联网领域,数据报文,例如TCP/IP报文在从发送方发送出去之前,每经过一个网络协议层,就会添加一些信息对报文进行封装一次。当收到或截获到这些数据报文时,为了获知其中的内容,需要一层层地除去封装的信息,这种对数据报文进行“解剖”、分析的过程就是数据报文的解析。在本发明实施例中,对截获的数据报文进行解析具有上述数据报文解析的通常释义。附图4是对截获的数据报文进行解析,所获得的解析结果的一个示例,其中,TCP协议信息是被包含在IP协议里,而业务数据则是在TCP协议Raw字段的load信息里,获取到业务数据后,再按照被测试系统的私有协议进行解析。
S2032,若所述截获的数据报文不包含有效数据或不符合所述预设测试要求,则将所述不包含有效数据或不符合所述预设测试要求的数据报文放回队列。
若截获的数据报文不包含有效数据,例如,截获的数据报文只是诸如建立连接、断开连接和数据确认的数据报文,或者,截获的数据报文不符合预设测试要求,则将这些不包含有效数据或不符合预设测试要求的数据报文放回队列,继续后续流程。
S2033,若截获的数据报文包含有效数据,则对包含有效数据的数据报文进行异常操作。
需要说明的是,数据报文的有效数据通常包含重要信息,因此,数据报文包含有效数据是后续测试进行下去的前提。若截获的数据报文不含有效数据,则测试的意义就较小。只有当截获的数据报文包含有效数据时,对包含有效数据的数据报文进行异常操作才有较大意义。
具体地,作为本发明一个实施例,若截获的数据报文包含有效数据,则对包含有效数据的数据报文进行异常操作可以是:按照预设测试要求,篡改包含有效数据的数据报文;和/或按照预设测试要求,丢弃包含有效数据的数据报文,其中,篡改包含有效数据的数据报文可以直接修改,例如增加、删除字段,或修改字段值,构造、模拟各种业务异常,而丢弃包含有效数据的数据报文则可以构造、模拟数据丢包的业务异常,从而进行业务异常的测试。
需要说明的是,由于消息截获函数可以是回调函数或钩子函数,因此,上述篡改所述包含有效数据的数据报文的实施例中,修改后的业务数据将返回给调用方,被调用方无任何感知。
以下以被测试系统是财付通系统为例,说明本发明的技术方案。
一般地,财付通系统包括Relay模块、Middle模块和核心模块,其中,Relay模块是财付通系统的业务接入网关,提供统一接口,对业务请求、返回报文进行转发,在整体业务架构中承上启下,Middle模块是财付通系统的业务逻辑框架,封装网络通讯,提供接口供业务使用,完成大部分业务逻辑处理,核心模块是财付通系统的核心业务层,包含各种用户、商户、单类的逻辑处理,数据最终落地。财付通系统各模块间的调用关系,本质是通过TCP/UDP网络协议实现数据交换,完成支付相关的各种业务流程。现有技术在测试财付通系统的数据报文异常,通常是采用程序插桩的方法。例如,CGI调用relay模块时,需要针对relay模块写对应的插桩程序,同理,relay模块调用middle模块、middle模块调用核心模块时,都需要写对应的插桩程序,且插桩程序的返回串每次需要根据请求报文进行修改以适配;插桩程序的另一重要特征是和此处的被测试系统即财付通系统是紧耦合的,而非独立的。本发明的技术方案中所使用的测试程序独立于财付通系统,测试财付通系统数据报文异常的方法框架如附图5所示。测试程序启动后,开始监听网络端口,例如,9528端口或其他备用网络端口。用户(指测试人员)发送一条监测任务,例如,要对源IP地址是168.1.2.231、源端口号为8621、目的IP地址是165.3.124.203、目的端口号为7421的数据报文P监测,且该数据报文P涉及买卖双方的数据,例如货物的多少和支付的金额多少。测试程序通过9528端口收到该监测任务后,启动在监测点A、B、C、D、E部署的消息截获函数截获数据报文正常传输流程中的数据报文P。优选地,启动在监测点B和D部署的回调函数(或钩子函数)截获数据报文P。假设用户的预设测试要求是要对买卖双方的数据进行篡改,以测试在买卖双方的数据被篡改的场景下财付通系统的反应,则可以先对截获的数据报文P解析。当然,若截获的数据报文P不包含有效数据或不符合预设测试要求,则将不包含有效数据或不符合预设测试要求的数据报文P放回队列。若截获的数据报文P包含有效数据,则就可以篡改数据报文P涉及的货物的多少和支付的金额多少,等等。再如,若用户发送的一条监测任务是要对源IP地址是159.223.4.211、源端口号为7436、目的IP地址是146.211.4.209、目的端口号为2563的数据报文P’监测。测试程序通过9528端口收到该监测任务后,启动在监测点A、B、C、D、E部署的消息截获函数截获数据报文正常传输流程中的数据报文P。优选地,启动在监测点B和D部署的回调函数(或钩子函数)截获数据报文P’。假设用户的预设测试要求是要模拟丢包场景下财付通系统的反应,则可以先对截获的数据报文P’解析。当然,若截获的数据报文P’不包含有效数据或不符合预设测试要求,则将不包含有效数据或不符合预设测试要求的数据报文P’放回队列。若截获的数据报文P’包含有效数据,则就可以在收到数据文P’时丢弃,从而测试财付通系统此时的反应是怎样的。
从上述附图2示例的测试数据报文异常的方法可知,一方面,由于在监测点对截获的数据报文进行异常操作,构造数据报文传输的异常场景,而不是对程序的代码进行改动,因此,无需像程序插桩那样对每一段被测代码都写一个桩程序,因此,本发明所用测试程序独立于待测系统的代码,技术方案的通用性较强,适合各种系统的测试;另一方面,由于数据报文的异常操作时按照预设要求进行,只有指定的数据报文才会按照预设要求进行异常操作,不会影响其他用户对待测系统进行的测试,其他用户可以共享待测系统的代码,因而对待测系统的测试效率高。
请参阅图6,为本发明实施例提供的测试数据报文异常的装置。为了便于说明,仅示出了与本发明实施例相关的部分。图6提供的测试数据报文异常的装置主要包括确定模块601、数据捕获模块602和异常构建模块603,详细说明如下:
确定模块601,用于确定被测试系统运行时数据报文正常传输流程中的监测点;
数据捕获模块602,用于在收到监测任务后,启动在监测点部署的消息截获函数截获数据报文正常传输流程中的数据报文;
异常构建模块603,用于按照预设测试要求,对截获的数据报文进行异常操作。
需要说明的是,本发明实施例提供的装置,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
附图6示例的确定模块601可以包括设置单元701,如附图7示例测试数据报文异常的装置。设置单元701用于在数据报文被路由判决前、转发和路由判决后的传输路径上设置监测点。
附图7示例的设置单元701可以包括第一监测点设置单元801和第二监测点设置单元802,如附图8示例测试数据报文异常的装置,其中:
第一监测点设置单元801,用于若所收数据报文被第一次路由判决时判决为流向本机的数据报文,则在流向本机的路径上设置监测点;
第二监测点设置单元802,用于在本机流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点。
附图6示例的异常构建模块603可以包括解析单元901、重置单元902和异常操作单元903,如附图9示例测试数据报文异常的装置,其中:
解析单元901,用于解析截获的数据报文;
重置单元902,用于若截获的数据报文不包含有效数据或不符合预设测试要求,则将不包含有效数据或不符合预设测试要求的数据报文放回队列;
异常操作单元903,用于若截获的数据报文包含有效数据,则对包含有效数据的数据报文进行异常操作。
附图9示例的异常操作单元903可以包括篡改单元1001和/或丢包单元1002,如附图10示例测试数据报文异常的装置,其中:
篡改单元1001,用于按照预设测试要求,篡改包含有效数据的数据报文;
丢包单元1002,用于按照预设测试要求,丢弃包含有效数据的数据报文。
附图6至附图10任一示例的装置还可以包括函数注册模块1101,如附图11-a至附图11-e示例测试数据报文异常的装置。函数注册模块1101用于在确定模块601确定被测试系统运行时数据报文正常传输流程中的监测点之前,注册在监测点部署的消息截获函数。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的测试数据报文异常的方法、装置、计算设备和计算机可读存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种测试数据报文异常的方法,其特征在于,所述方法对应的测试程序独立于被测试系统,所述方法包括:
确定所述被测试系统运行时数据报文正常传输流程中的监测点,所述监测点设置于所述被测试系统所在终端的内部;其中,若从所述终端的数据入口流入的数据报文被第一次路由判决时判决为流向本机的数据报文,则在所述第一次路由判决后流向上层协议栈的路径上设置监测点,以及在所述上层协议栈流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点;
在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文,所述监测任务携带有需要监测的数据报文的属性信息,所述截获的数据报文是与所述属性信息对应的数据报文;
解析所述截获的数据报文,得到业务数据;
获取到所述业务数据后,按照所述被测试系统的私有协议进行解析;
若所述截获的数据报文不包含有效数据或不符合所述预设测试要求,则将所述不包含有效数据或不符合所述预设测试要求的数据报文放回队列;其中,所述截获的数据报文不包含有效数据的情况包括所述截获的数据报文是建立连接、断开连接或数据确认的报文;
若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作,并将修改后的业务数据返回给调用方;
其中,所述异常操作包括:按照所述预设测试要求,篡改所述包含有效数据的数据报文;和/或按照所述预设测试要求,丢弃所述包含有效数据的数据报文。
2.如权利要求1所述测试数据报文异常的方法,其特征在于,所述方法还包括:
在所述确定所述被测试系统运行时数据报文正常传输流程中的监测点之前,注册所述在所述监测点部署的消息截获函数。
3.一种测试数据报文异常的装置,其特征在于,所述装置对应的测试程序独立于被测试系统,所述装置包括:
确定模块,用于确定所述被测试系统运行时数据报文正常传输流程中的监测点,所述监测点设置于所述被测试系统所在终端的内部;其中,所述确定模块包括第一监测点设置单元和第二监测点设置单元,所述第一监测点设置单元用于若从所述终端的数据入口流入的数据报文被第一次路由判决时判决为流向本机的数据报文,则在所述第一次路由判决后流向上层协议栈的路径上设置监测点,所述第二监测点设置单元用于在所述上层协议栈流出已处理数据报文的流出起点和第二次路由判决之间的路径上设置监测点;
数据捕获模块,用于在收到监测任务后,启动在所述监测点部署的消息截获函数截获所述数据报文正常传输流程中的数据报文,所述监测任务携带有需要监测的数据报文的属性信息,所述截获的数据报文是与所述属性信息对应的数据报文;
解析单元,用于解析所述截获的数据报文,得到业务数据;以及获取到所述业务数据后,按照所述被测试系统的私有协议进行解析;
重置单元,用于若所述截获的数据报文不包含有效数据或不符合所述预设测试要求,则将所述不包含有效数据或不符合所述预设测试要求的数据报文放回队列;其中,所述截获的数据报文不包含有效数据的情况包括所述截获的数据报文是建立连接、断开连接或数据确认的报文;
异常操作单元,用于若所述截获的数据报文包含有效数据,则对所述包含有效数据的数据报文进行异常操作,并将修改后的业务数据返回给调用方;
其中,所述异常操作单元包括:篡改单元,用于按照所述预设测试要求,篡改所述包含有效数据的数据报文;和/或丢包单元,用于按照所述预设测试要求,丢弃所述包含有效数据的数据报文。
4.如权利要求3所述测试数据报文异常的装置,其特征在于,所述装置还包括:
函数注册模块,用于在所述确定模块确定所述被测试系统运行时数据报文正常传输流程中的监测点之前,注册所述在所述监测点部署的消息截获函数。
5.一种计算设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至2任意一项所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至2任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810225984.1A CN110233818B (zh) | 2018-03-19 | 2018-03-19 | 测试数据报文异常的方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810225984.1A CN110233818B (zh) | 2018-03-19 | 2018-03-19 | 测试数据报文异常的方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110233818A CN110233818A (zh) | 2019-09-13 |
CN110233818B true CN110233818B (zh) | 2023-05-12 |
Family
ID=67862251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810225984.1A Active CN110233818B (zh) | 2018-03-19 | 2018-03-19 | 测试数据报文异常的方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110233818B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112825504B (zh) * | 2019-11-20 | 2023-02-03 | 深信服科技股份有限公司 | 一种数据监测方法、装置、设备及存储介质 |
CN113852610B (zh) * | 2021-09-06 | 2024-03-05 | 招银云创信息技术有限公司 | 报文处理方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077219A (zh) * | 2013-04-23 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种软件测试方法和装置 |
WO2017211169A1 (zh) * | 2016-06-06 | 2017-12-14 | 中兴通讯股份有限公司 | 链路测试方法和装置及系统 |
CN107547312A (zh) * | 2017-09-21 | 2018-01-05 | 广州四三九九信息科技有限公司 | 应用程序测试方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632906B2 (en) * | 2013-03-15 | 2017-04-25 | Ca, Inc. | Automated software system validity testing |
US10127023B2 (en) * | 2013-09-20 | 2018-11-13 | Oracle International Corporation | Computer-aided development of native mobile application code |
CN105227411B (zh) * | 2015-11-16 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 测试接口的方法、网络代理和系统 |
US10341214B2 (en) * | 2016-03-30 | 2019-07-02 | Ca, Inc. | Scenario coverage in test generation |
CN107277019B (zh) * | 2017-06-23 | 2020-05-12 | 武汉斗鱼网络科技有限公司 | 数据明文获取方法、装置、电子终端及可读存储介质 |
-
2018
- 2018-03-19 CN CN201810225984.1A patent/CN110233818B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077219A (zh) * | 2013-04-23 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种软件测试方法和装置 |
WO2017211169A1 (zh) * | 2016-06-06 | 2017-12-14 | 中兴通讯股份有限公司 | 链路测试方法和装置及系统 |
CN107547312A (zh) * | 2017-09-21 | 2018-01-05 | 广州四三九九信息科技有限公司 | 应用程序测试方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110233818A (zh) | 2019-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967595B (zh) | 将设备在物联网平台进行注册的方法和装置 | |
EP3276907B1 (en) | A method and apparatus for testing a security of communication of a device under test | |
US20150229669A1 (en) | Method and device for detecting distributed denial of service attack | |
CN109152094B (zh) | 用于终端的无线网络连接方法 | |
CN104660557B (zh) | 操作处理方法和装置 | |
CN104346560B (zh) | 一种安全验证方法及装置 | |
CN107018504A (zh) | 通信方法、黑名单配置方法及装置 | |
CN110648241B (zh) | 一种基于微服务架构的理赔处理方法及装置 | |
CN112087362B (zh) | 一种客户端之间的消息转发方法和装置以及终端 | |
CN110675159A (zh) | 金融市场交易事前风险控制方法、系统及电子设备 | |
CN110233818B (zh) | 测试数据报文异常的方法、装置和计算机可读存储介质 | |
CN107948055A (zh) | 屏蔽群成员所发消息的方法、装置和计算机可读存储介质 | |
CN112073923A (zh) | 兼容多运营商的通信方法、装置、网关及可读存储介质 | |
US10244107B1 (en) | Systems and methods for causing display of a reputation indicator associated with a called party | |
US9942766B1 (en) | Caller validation for end service providers | |
CN102572814A (zh) | 一种移动终端病毒监测方法、系统及装置 | |
KR101520246B1 (ko) | 금융 피싱 방지를 위한 발신자 인증시스템 및 그 방법 | |
CN112613933A (zh) | 发票数据处理方法、装置、存储介质及电子设备 | |
US8503645B1 (en) | Systems and methods for providing protection against a solicitation for information during a telephone call | |
CN113259436B (zh) | 网络请求的处理方法和装置 | |
CN112653609B (zh) | 一种vpn识别应用方法、装置、终端及存储介质 | |
CN111988473B (zh) | 基于智能合约的语音通信呼叫控制方法及装置 | |
CN111447236B (zh) | 基于区块链的通信鉴权方法、装置、终端设备和存储介质 | |
US11275602B1 (en) | Virtual communication service for mobile devices | |
CN104640093B (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 |