一种在线计费接口消息的检测方法及装置与流程

文档序号:11253797阅读:887来源:国知局
一种在线计费接口消息的检测方法及装置与流程

本发明涉及通信应用的技术领域,特别是指一种在线计费接口消息的检测方法及装置。



背景技术:

在线计费是以核心网业务控制网元与业务支撑系统间gy接口的diameter信用控制(diametercreditcontrol,dcc)消息为依据,进行实时计费和欠费风险控制的计费模式,目前多用于国内外的通信运营商网络系统中。由于运营商网络庞大,核心网业务控制网元厂家、业务支撑系统厂家多,厂家提供的设备差异大,导致gy接口的消息差异非常大,导致了严重接口互通问题,极大影响本地和漫游的语音、数据分组流量业务使用。而语音、数据分组流量业务是运营商的主营业务,必须对在线计费接口dcc消息进行标准化测试,并持续对新上线版本开展测试。

现阶段,在线计费接口dcc消息的检测主要是采用人工检测的方式。人工检测具有很多弊端:第一,使用频率低的业务场景消息,手工无法进行消息取样,检测结果不全面。第二,dcc协议的结构复杂、字段和类型多等,对测试执行人员的业务技术能力要求非常高;第三,运营商生产系统中接口量大,dcc消息种类多,测试工作量庞大,需投入大量人力,且容易出现人为错误。



技术实现要素:

本发明的目的在于提供一种在线计费接口消息的检测方法及装置,用以解决现有人工检测dcc消息方式存在的测试结果不全面、不准确、工作量巨大等问题。

为了实现上述目的,本发明提供了一种在线计费接口消息的检测方法,包括:

从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;

根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;

根据预设测试标准对所述消息样本进行检测处理,得出检测结果。

其中,所述从在线计费接口文件中分割出dcc消息原始码文件,包括:

对所述在线计费接口文件进行解析处理,得到tcp报文;

根据tcp协议对所述tcp报文进行解析处理,得到dcc消息码;

判断所述dcc消息码是否为空;

若所述dcc消息码不为空,则根据dcc消息码中长度属性对应的长度值在所述dcc消息码中分割出所述dcc消息原始码文件,否则,丢弃所述dcc消息码,其中,分割出的所述dcc消息原始码文件的数据长度与所述长度属性对应的长度值相等。

其中,所述对所述在线计费接口文件进行解析处理,得到tcp报文,包括:

对所述在线计费接口文件进行解析处理,得到包含多个以太网帧的原始码文件;

根据以太网帧的格式,对所述原始码文件进行解析处理,得到ip数据报文;

根据ip协议对所述ip数据报文进行解析处理,得到所述tcp报文。

其中,所述根据tcp协议对所述tcp报文进行解析处理,得到dcc消息码,包括:

判断所述tcp报文中当前以太网帧的长度属性的值是否为0,得出一判断结果;

若所述判断结果为是,且当前以太网帧的末尾存在m个连续的0字节,则将下一个以太网帧的起始位置向后移m个字节,并根据移动后的下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码,m以太网标准零数据消息的长度与理论最小帧长度之间的差值;

若所述判断结果为否,则获取下一个以太网帧的起始位置,并根据所述下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码。

其中,所述根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本,包括:

对所述dcc消息原始码文件进行格式转换处理,得到转换后的dcc消息原始码文件,所述转换后的dcc消息原始码文件为基于树形结构的xml文件;

根据所述筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本。

其中,所述根据所述筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本,包括:

解析出所述转换后的dcc消息原始码文件中的avp字段;

判断所述avp字段是否为所述筛选规则中要求携带n次的预定字段,n为大于1的整数;

若所述avp字段为所述筛选规则中要求携带n次的预定字段,则判断所述dcc消息原始码文件中所述预定字段出现的次数是否大于或者等于n;

若所述dcc消息原始码文件中所述预定字段出现的次数大于或者等于n,则将所述dcc消息原始码文件作为携带n个预定字段的消息样本。

其中,所述根据预设测试标准对所述消息样本进行检测处理,得出检测结果,包括:

根据预设测试标准对所述消息样本的格式及所述消息样本所包含的每一个avp字段进行检测处理,得出检测结果,所述检测结果为基于树形结构的xml文件。

本发明还提供了一种在线计费接口消息的检测装置,包括:

获取模块,用于从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;

筛选模块,用于根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;

检测模块,用于根据预设测试标准对所述消息样本进行检测处理,得出检测结果。

其中,所述获取模块包括:

第一获取子模块,用于对所述在线计费接口文件进行解析处理,得到tcp报文;

第二获取子模块,用于根据tcp协议对所述tcp报文进行解析处理,得到 dcc消息码;

判断子模块,用于判断所述dcc消息码是否为空;

第三获取子模块,用于若所述dcc消息码不为空,则根据dcc消息码中长度属性对应的长度值在所述dcc消息码中分割出所述dcc消息原始码文件,否则,丢弃所述dcc消息码,其中,分割出的所述dcc消息原始码文件的数据长度与所述长度属性对应的长度值相等。

其中,所述第一获取子模块包括:

第一获取单元,用于对所述在线计费接口文件进行解析处理,得到包含多个以太网帧的原始码文件;

第二获取单元,用于根据以太网帧的格式,对所述原始码文件进行解析处理,得到ip数据报文;

第三获取单元,用于根据ip协议对所述ip数据报文进行解析处理,得到所述tcp报文。

其中,所述第二获取子模块包括:

第一判断单元,用于判断所述tcp报文中当前以太网帧的长度属性的值是否为0,得出一判断结果;

第一处理单元,用于若所述判断结果为是,且当前以太网帧的末尾存在m个连续的0字节,则将下一个以太网帧的起始位置向后移m个字节,并根据移动后的下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码,m以太网标准零数据消息的长度与理论最小帧长度之间的差值;

第二处理单元,用于若所述判断结果为否,则获取下一个以太网帧的起始位置,并根据所述下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码。

其中,所述筛选模块包括:

转换子模块,用于对所述dcc消息原始码文件进行格式转换处理,得到转换后的dcc消息原始码文件,所述转换后的dcc消息原始码文件为基于树形结构的xml文件;

筛选子模块,用于根据所述筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本。

其中,所述筛选子模块包括:

解析单元,用于解析出所述转换后的dcc消息原始码文件中的avp字段;

第二判断单元,用于判断所述avp字段是否为所述筛选规则中要求携带n次的预定字段,n为大于1的整数;

第三判断单元,用于若所述avp字段为所述筛选规则中要求携带n次的预定字段,则判断所述dcc消息原始码文件中所述预定字段出现的次数是否大于或者等于n;

处理单元,用于若所述dcc消息原始码文件中所述预定字段出现的次数大于或者等于n,则将所述dcc消息原始码文件作为携带n个预定字段的消息样本。

其中,所述检测模块具体用于根据预设测试标准对所述消息样本的格式及所述消息样本所包含的每一个avp字段进行检测处理,得出检测结果,所述检测结果为基于树形结构的xml文件。

本发明实施例具有以下有益效果:

本发明实施例的在线计费接口消息的检测方法,从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;根据预设测试标准对所述消息样本进行检测处理,得出检测结果,解决了现阶段人工测试存在的巨大人力和时间成本问题,同时解决了测试结果不全面、存在人为误差的问题,满足功能和效率的要求,具有很强的实用性。

附图说明

图1为本发明实施例的在线计费接口消息的检测方法的工作流程图;

图2为本发明实施例从在线计费接口文件中分割出dcc消息原始码文件的工作流程图;

图3为本发明实施例中非标准零数据以太网帧自动识别的工作流程图;

图4为本发明实施例中消息包筛选的工作流程图;

图5为本发明实施例中基于同字段计数器的消息自动筛选的工作流程图;

图6为本发明实施例中消息包自动化对比的工作流程图;

图7为本发明实施例的在线计费接口消息的检测装置的结构框图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合具体实施例及附图进行详细描述。

本发明的实施例提供了一种在线计费接口消息的检测方法及装置,解决了现有人工检测dcc消息方式存在的测试结果不全面、不准确、工作量巨大等问题。

第一实施例:

如图1所示,本发明实施例的在线计费接口消息的检测方法,包括:

步骤11:从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件。

具体的,获取生产系统服务器ip端口的cap等报文形式的在线计费接口消息文件,并从cap等报文形式的在线计费接口消息文件中自动分割出dcc消息原始码文件。

步骤12:根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本。

这里,筛选规则可具体包括avp字段的取值、筛选消息条数属性等。自动文件分割流程和消息样本自动筛选流程,能从tb量级的生产系统接口消息中,快速找到频率低的业务场景消息的样本,解决样本不全导致的测试范围不全问题。

步骤13:根据预设测试标准对所述消息样本进行检测处理,得出检测结果。

具体的,根据预设测试标准对所述消息样本的格式及所述消息样本所包含的每一个avp字段进行检测处理,得出检测结果,所述检测结果为基于树形结构的xml文件。通过消息样本自动匹配和自动消息检测流程,实现机器替代人工完成大批量测试执行工作功能,将释放大部分测试人员。且本发明采用的基于树形结构的xml检测结果保存技术,能完整地保存复杂dcc消息的测试结果,使测试结果无须人工再次过滤,而其它自动化测试技术中的结果保存技术均不具有该效果。

本发明实施例的在线计费接口消息的检测方法,从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;根据预设测试标准对所述消息样本进行检测处理,得出检测结果,解决了现阶段人工测试存在的巨大人力和时间成本问题,同时解决了测试结果不全面、存在人为误差的问题,满足功能和效率的要求,具有很强的实用性。

进一步地,上述步骤11包括:对所述在线计费接口文件进行解析处理,得到tcp报文;根据tcp协议对所述tcp报文进行解析处理,得到dcc消息码;判断所述dcc消息码是否为空;若所述dcc消息码不为空,则根据dcc消息码中长度属性对应的长度值在所述dcc消息码中分割出所述dcc消息原始码文件,否则,丢弃所述dcc消息码,其中,分割出的所述dcc消息原始码文件的数据长度与所述长度属性对应的长度值相等。

具体的,上述对所述在线计费接口文件进行解析处理,得到tcp报文,包括:对所述在线计费接口文件进行解析处理,得到包含多个以太网帧的原始码文件;根据以太网帧的格式,对所述原始码文件进行解析处理,得到ip数据报文;根据ip协议对所述ip数据报文进行解析处理,得到所述tcp报文。

下面结合附图2具体说明本发明实施例从在线计费接口文件中分割出dcc消息原始码文件的流程。

如图2所示,该流程包括:

步骤21:获取生产系统服务器ip端口的一批cap等报文格式的在线计费接口消息。

步骤22:解析cap等格式的报文,得到包含多个以太网帧的原始码文件。

步骤23:根据以太网帧的格式,解析以太网帧,得到ip数据报。

步骤24:根据ip协议,解析ip数据报,得到tcp报文。

步骤25:根据tcp协议,解析tcp报文,得到dcc消息码。

解析tcp报文时,有一部分tcp消息的数据包是零数据的,即数据长度为0。按以太网帧的国际标准,数据长度为0的,在数据链路层填写6位0,使该以太网帧消息的帧长度达到60位(标准要求的最小帧长度)。但由于现有接口抓包软件只能在iso模型的数据链路层或以上层进行抓包,所以在线计费接口 吕抓取的数据包按长度可分三类,一类为帧长度大于60位(服务器发送和接收的非零数据消息),二类是帧长度60位的(服务器接收到的标准零数据消息);三类是帧长度54位的(服务器向外发送的非标准零数据消息,还未补充6位0)。最后一类消息的非标准消息,而且目前以太网标准帧结构中是没有专门的标识位区分第二类和第三类消息的,因此第三类消息影响tcp文件的正常切割,所有第三类消息后面的dcc消息的分割都会产生错误。

本发明在解析tcp协议时,设计了非标准零数据以太网帧自动识别技术。具体的,如图3所示,包括步骤31:判断tcp中长度属性len是否为0,如果是,dcc消息码为空,执行步骤32,否则跳转到步骤34;步骤32:以太网帧的末尾是否存在6个连续的0字节。如果是,则说明填充了连续的6个0字节,执行步骤33,否则,说明该以太网帧没有填充,那么下一个以太网帧的起始位置不需要往后挪,跳转到步骤34;步骤33:下一个以太网帧的起始位置需要往后挪6个字节;步骤34:得到下一个以太网帧的起始位置;步骤35:输出dcc消息码。

步骤26:判断dcc消息码是否不为空。

步骤27:若不为空,根据dcc协议,解析dcc消息的头部,得到dcc消息的长度messagelength。

步骤28:若为空,则丢弃该dcc消息码。

步骤29:判断dcc消息码长度是否大于或等于messagelength。

步骤210:若大于或等于,则根据dcc消息码中长度属性对应的长度值在所述dcc消息码中分割出所述dcc消息原始码文件。

其中,分割出的所述dcc消息原始码文件的数据长度与所述长度属性对应的长度值相等,并以txt文本格式保存分割出的dcc消息原始码文件。

步骤211:判断是否为最后一个以太网帧。

步骤212:若是最后一个以太帧,则结束。

步骤213:若不是最后一个以太帧,则获取下一个以太网帧,并跳转到步骤23。

本发明实施例的在线计费接口消息的检测方法,采用的非标准零数据以太网帧自动识别技术,能更准确地从通信运营商生产系统中的在线计费接口消息 接口文件中分割出dcc原始码。

进一步地,上述步骤12,包括:

对所述dcc消息原始码文件进行格式转换处理,得到转换后的dcc消息原始码文件,所述转换后的dcc消息原始码文件为基于树形结构的xml文件;根据所述筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本。

其中,上述根据所述预设筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本,包括:解析出所述转换后的dcc消息原始码文件中的avp字段;判断所述avp字段是否为所述筛选规则中要求携带n次的预定字段,n为大于1的整数;若所述avp字段为所述筛选规则中要求携带n次的预定字段,则判断所述dcc消息原始码文件中所述预定字段出现的次数是否大于或者等于n;若所述dcc消息原始码文件中所述预定字段出现的次数大于或者等于n,则将所述dcc消息原始码文件作为携带n个预定字段的消息样本。

下面结合附图4具体说明本发明实施例中消息包筛选的处理流程。

如图4所示,包括:

步骤41:配置筛选规则。

具体的,各类消息配置对应的筛选规则,包括avp字段的取值、筛选消息条数属性等。

步骤42:选择dcc消息原始码文件作为消息筛选的输入文件。

步骤43:解析dcc消息,用有层次的树形结构xml文件来保存解析后的dcc消息结果。

步骤44:解析后的dcc消息,是否包含筛选配置中要求携带的字段。如果是,则执行步骤45;否则,跳转到步骤48;

补充说明:步骤44中,同一dcc消息在同一层中可能携带多个相同字段、且相同字段的取值一致或不一致的情况。对于此种情况,对相同字段的检测,一般的比对算法会存在字段漏测的情况。

本发明实施例设计了基于同字段计数器的消息自动筛选技术。具体执行步骤,如图5所示,包括:步骤51:筛选配置中要求携带的相同字段出现的次数为n,设计数器count=0;步骤52:解析消息包中的avp字段;步骤53:该avp 字段是否为要求携带字段。如果是,则执行步骤54;否则,跳转到步骤57;步骤54:计数器count加1;步骤55:count是否大于等于要求携带的相同字段出现的次数n;步骤56:如果是,则要求携带多个相同字段的条件已满足,输出结果为是y;否则,执行步骤57;步骤57:该avp字段是否为最后一个字段;步骤58:如果是,则要求携带多个相同字段的条件不满足,输出结果为否n;否则,跳转到步骤52。

步骤45:解析后的dcc消息,要求携带字段以及可选字段的取值是否和筛选配置中要求的取值相等。如果是,则执行步骤46;否则,跳转到步骤48;

步骤46:解析后的dcc消息,是否不包含筛选配置中要求必不携带的字段。

步骤47:如果是,则将该dcc消息保存到对应场景的目录下,执行步骤48;否则,跳转到步骤48;

步骤48:已经筛选出的dcc消息总数是否小于配置中的筛选消息条数。如果是,执行步骤49;否则,跳转到步骤410;

步骤49:该消息包是否为最后一个消息包。如果是,则执行步骤410;否则,跳转到步骤42;

步骤410:结束。

本发明实施例的消息样本自动筛选流程,采用基于同字段计数器的消息自动筛选技术,能准确地找出相同字段需在同一消息中出现多次的消息包。

进一步地,上述步骤13具体包括:根据预设测试标准对所述消息样本的格式及所述消息样本所包含的每一个avp字段进行检测处理,得出检测结果,所述检测结果为基于树形结构的xml文件。

下面结合附图6具体说明本发明实施例中消息包自动化对比的处理流程。

步骤61:配置各类消息的测试用例。包括必选字段和可选字段的取值,必不携带字段等;

步骤62:自动地将各类消息的测试用例和相应的消息包作匹配;

步骤63:根据前台和后台配置的各类消息的比对规则,对每一个消息包的格式以及其包含的每一个avp字段进行层次化的全量比对,具体步骤如下:

解析消息包,将消息包按照后台avp字段配置进行解析,封装成xml格式,保存到数据库;检测avp字段是否前台配置的场景测试用例所指定层次的 必选字段,必不携带字段,以及取值是否正确;检测avp字段是否符合后台对比规则要求,包括字段间关联关系、互斥关系、嵌套关系、数据格式和取值等层次化的全量比对;对检测出问题的avp字段按照分类用不同的颜色标记,并将问题描述分类保存起来;由于dcc消息检测结果必须精确描述到第一个字段,如果不按树形结构的xml记录结果,将出现同一消息内的相同字段的结果混淆的情况,即存在检测结果不准确的问题。为了解决这个问题,本发明对完成了检测的消息包,按照原消息包的结构,将测试结果的描述内容单独封装成一个树形结构的xml,保存到数据库,提升检测结果的准确性;自动生成问题检测报告和统计报告。

步骤64:输出所有消息包的检测结果文档。

本发明中采用的基于树形结构的xml检测结果保存技术,能完整地保存复杂dcc消息的测试结果,使测试结果无须人工再次过滤,其它自动化测试技术中的结果保存技术均不具有该能力。自动化检测技术应用后,测试人员只需进行简单的界面操作,降低测试执行人员技能要求,降低人员成本。

第二实施例:

如图7所示,本发明实施例还提供了一种在线计费接口消息的检测装置,包括:

获取模块71,用于从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;

筛选模块72,用于根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;

检测模块73,用于根据预设测试标准对所述消息样本进行检测处理,得出检测结果。

本发明实施例的在线计费接口消息的检测装置,所述获取模块71包括:

第一获取子模块711,用于对所述在线计费接口文件进行解析处理,得到tcp报文;

第二获取子模块712,用于根据tcp协议对所述tcp报文进行解析处理,得到dcc消息码;

判断子模块713,用于判断所述dcc消息码是否为空;

第三获取子模块714,用于若所述dcc消息码不为空,则根据dcc消息码中长度属性对应的长度值在所述dcc消息码中分割出所述dcc消息原始码文件,否则,丢弃所述dcc消息码,其中,分割出的所述dcc消息原始码文件的数据长度与所述长度属性对应的长度值相等。

本发明实施例的在线计费接口消息的检测装置,所述第一获取子模块711包括:

第一获取单元7111,用于对所述在线计费接口文件进行解析处理,得到包含多个以太网帧的原始码文件;

第二获取单元7112,用于根据以太网帧的格式,对所述原始码文件进行解析处理,得到ip数据报文;

第三获取单元7113,用于根据ip协议对所述ip数据报文进行解析处理,得到所述tcp报文。

本发明实施例的在线计费接口消息的检测装置,所述第二获取子模块712包括:

第一判断单元7121,用于判断所述tcp报文中当前以太网帧的长度属性的值是否为0,得出一判断结果;

第一处理单元7122,用于若所述判断结果为是,且当前以太网帧的末尾存在m个连续的0字节,则将下一个以太网帧的起始位置向后移m个字节,并根据移动后的下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码,m以太网标准零数据消息的长度与理论最小帧长度之间的差值;

第二处理单元7123,用于若所述判断结果为否,则获取下一个以太网帧的起始位置,并根据所述下一个以太网帧的起始位置,从当前以太网帧中分割出所述dcc消息码。

本发明实施例的在线计费接口消息的检测装置,所述筛选模块72包括:

转换子模块721,用于对所述dcc消息原始码文件进行格式转换处理,得到转换后的dcc消息原始码文件,所述转换后的dcc消息原始码文件为基于树形结构的xml文件;

筛选子模块722,用于根据所述筛选规则,从所述转换后的dcc消息原始码文件中筛选出所需的消息样本。

本发明实施例的在线计费接口消息的检测装置,所述筛选子模块722包括:

解析单元7221,用于解析出所述转换后的dcc消息原始码文件中的avp字段;

第二判断单元7222,用于判断所述avp字段是否为所述筛选规则中要求携带n次的预定字段,n为大于1的整数;

第三判断单元7223,用于若所述avp字段为所述筛选规则中要求携带n次的预定字段,则判断所述dcc消息原始码文件中所述预定字段出现的次数是否大于或者等于n;

处理单元7224,用于若所述dcc消息原始码文件中所述预定字段出现的次数大于或者等于n,则将所述dcc消息原始码文件作为携带n个预定字段的消息样本。

本发明实施例的在线计费接口消息的检测装置,所述检测模块73具体用于根据预设测试标准对所述消息样本的格式及所述消息样本所包含的每一个avp字段进行检测处理,得出检测结果,所述检测结果为基于树形结构的xml文件。

需要说明的是,该装置是与上述方法实施例对应的装置,上述方法实施例中所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

本发明实施例的在线计费接口消息的检测方法及装置,从在线计费接口文件中分割出diameter信用控制dcc消息原始码文件;根据预先配置的筛选规则,从所述dcc消息原始码文件中筛选出所需的消息样本;根据预设测试标准对所述消息样本进行检测处理,得出检测结果,解决了现阶段人工测试存在的巨大人力和时间成本问题,同时解决了测试结果不全面、存在人为误差的问题,满足功能和效率的要求,具有很强的实用性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1