CN103019931A - Asn.1接口的检测处理方法和装置 - Google Patents

Asn.1接口的检测处理方法和装置 Download PDF

Info

Publication number
CN103019931A
CN103019931A CN2012104866625A CN201210486662A CN103019931A CN 103019931 A CN103019931 A CN 103019931A CN 2012104866625 A CN2012104866625 A CN 2012104866625A CN 201210486662 A CN201210486662 A CN 201210486662A CN 103019931 A CN103019931 A CN 103019931A
Authority
CN
China
Prior art keywords
response
asn
interface
server
expression formula
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
CN2012104866625A
Other languages
English (en)
Other versions
CN103019931B (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.)
Honor Device Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201210486662.5A priority Critical patent/CN103019931B/zh
Publication of CN103019931A publication Critical patent/CN103019931A/zh
Application granted granted Critical
Publication of CN103019931B publication Critical patent/CN103019931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种Asn.1接口的检测处理方法和装置,该方法包括:对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,获得请求结构体和响应结构体;通过修改请求结构体中的参数值,获得该Asn.1接口对应的多个文本请求脚本;重复上述过程,获得各Asn.1接口对应的文本请求脚本;从第一服务器中备份出数据库,根据各响应结构体生成对应的表达式并存储在文本请求脚本中;将数据库和各文本请求脚本恢复到第二服务器中;在第二服务器中,根据各文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得响应;应用表达式对响应的内容进行校验,以完成对Asn.1接口的检测,从而解决了现有技术中存在的问题。

Description

Asn.1接口的检测处理方法和装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种Asn.1接口的检测处理方法和装置。
背景技术
在大型管理软件中,一般一个大型软件由很多进程组成,一个进程提供若干抽象语法表示法1(Abstract Syntax Notation One,简称为Asn.1)接口,因此,在对该软件进行测试的时候,需要验证各进程提供的Asn.1接口是否可以正常工作。现有技术中,主要通过为每一个ASN.1接口提供一个测试代码,而且还为每一个Asn.1接口对应的每一个功能场景提供一个XML脚本,然后将每一个测试代码与对应的各XML脚本结合生成各测试请求来完成对每一个Asn.1接口的检测,若测试的返回值与预期的返回值相同,则说明Asn.1接口为正常工作状态。
在实现本发明的过程中,发明人发现现有技术中,各Asn.1接口均不一样,而且每一个Asn.1接口对应的功能场景也不一样,相应地,各测试代码和各XML脚本均不同,因此,需要将各测试代码中的宏枚举与对应的各XML脚本中的枚举值数字一一对应,生成各测试请求来完成ASN.1接口的检测,导致检测效率低下,同时,测试代码与XML脚本为不同类型的文件,导致测试代码与XML脚本的维护难度大。
发明内容
本发明提供一种Asn.1接口的检测处理方法和装置,用以解决现有技术中检测效率低以及测试代码与XML脚本的维护难度大的问题。
一方面,本发明实施例提供一种Asn.1接口的检测处理方法,包括:
对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得所述Asn.1接口打印的请求结构体和响应结构体;通过修改所述请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本;重复上述过程,获得所述管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本;
从所述第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各所述响应结构体生成对应的表达式并存储在所述文本请求脚本中;将所述数据库和各所述文本请求脚本恢复到装载有所述管理软件的第二服务器中;所述第一服务器和所述第二服务器具有相同的工作环境;
在所述第二服务器中,根据各所述文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;
应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测。
结合一方面,在一方面的第一种可能实现的方式中,所述根据各所述文本请求脚本生成请求和响应消息并下发到被测试进程,获得对应的响应包括:
应用所述文本请求脚本中的参数值自动填充所述请求消息;
将所述请求消息和空的响应消息下发到被测试进程;
获得所述响应,并将所述响应的内容转换成字符串结构体形式。
结合一方面或一方面的第一种可能实现的方式,在一方面的第二种可能实现的方式中,所述应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测包括:
应用所述表达式对所述响应的内容进行校验,若所述响应的内容与所述表达式一致,则检测成功;若不一致,则检测失败,并将所述响应的内容输出到验证结果文件中;依次进行全部或部分所述表达式的校验。
另一方面,本发明实施例提供一种Asn.1接口的检测处理装置,包括:
获取模块,用于对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得所述Asn.1接口打印的请求结构体和响应结构体;通过修改所述请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本;重复上述过程,获得所述管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本;
第一处理模块,用于从所述第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各所述响应结构体生成对应的表达式并存储在所述文本请求脚本中;将所述数据库和各所述文本请求脚本恢复到装载有所述管理软件的第二服务器中;所述第一服务器和所述第二服务器具有相同的工作环境;
第二处理模块,用于在所述第二服务器中,根据各所述文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;
检测模块,用于应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测。
结合另一方面,在另一方面的第一种可能实现的方式中,所述第二处理模块具体用于:
应用所述文本请求脚本中的参数值自动填充所述请求消息;
将所述请求消息和空的响应消息下发到被测试进程;
获得所述响应,并将所述响应的内容转换成字符串结构体形式。
结合另一方面或另一方面的第一种可能实现的方式中,所述检测模块具体用于:
用于应用所述表达式对所述响应的内容进行校验,若所述响应的内容与所述表达式一致,则检测成功;若不一致,则检测失败,并所述响应的内容输出到验证结果文件中;依次进行全部或部分所述表达式的校验。
本发明提供的Asn.1接口的检测处理方法和装置,通过将从第一服务器上所获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本和用于存储工作环境下配置数据的数据库,恢复到装载有管理软件的第二服务器中,使第一服务器和第二服务器具有相同的工作环境;然后在第二服务器中,根据各文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;应用表达式对响应的内容进行校验,以完成对Asn.1接口的检测。通过在第二服务器与第一服务器具有相同的工作环境下,将各文本请求脚本生成各Asn.1接口的不同场景下的请求消息来完成对Asn.1接口的检测,提高了检测效率,同时,不需要为不同的Asn.1接口提供不同的测试代码,而且对各文本请求脚本维护过程简单。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明Asn.1接口的检测处理方法实施例一的流程图;
图2为本发明Asn.1接口的检测处理方法实施例二的流程图;
图3为本发明Asn.1接口的检测处理装置实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明Asn.1接口的检测处理方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得Asn.1接口打印的请求结构体和响应结构体;通过修改请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本。
本实施例中,将被测试的管理软件装载在第一服务器中,然后对该管理理软件的一Asn.1接口进行一次功能操作例如查询功能等,由于输出日志中会记录有关这一次功能操作的所有相关信息,因此,可以从输出日志中获得Asn.1接口打印的请求结构体,同时还可以从输出日志中获得Asn.1接口打印的响应结构,然后将该请求结构体生成一文本请求脚本,该文本请求脚本对应着该Asn.1接口的一个场景,由于该Asn.1接口可以包括多个场景,每一个场景的对应的文本请求脚本均不相同,因此,为了获得该Asn.1接口的不同场景下对应的文本请求脚本,可以以该输出日志中所获得的该文本请求脚本为模板,修改该文本请求脚本中请求结构体的参数值,同时也修改该文本请求脚本中的表达式,从而可以获得该Asn.1接口多个场景下对应的文本请求脚本。
需要说明的是,通过Asn.1接口传输的请求结构体和响应结构体均符合Asn.1结构体,其中,Asn.1结构体是一个以括号开始和结束的嵌套树形结构体,该Asn.1结构体与现有技术中一致,此处不再赘述。
步骤102、重复上述过程,获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本。
本实施例中,重复步骤101的过程,也就是,在获得一个Asn.1接口多个不同场景下对应的文本请求脚本后,若要获得其它Asn.1接口多个不同场景下对应的文本请求脚本,则其它每个Asn.1接口对应地均执行步骤101,从而可以获得该管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本。
步骤103、从第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各响应结构体生成对应的表达式并存储在文本请求脚本中。
本实施例中,从装载该管理软件的该第一服务器中用于存储工作环境下配置数据的数据库进行备份,获得该备份的数据库。同时还可以从输出日志中获得每个Asn.1接口打印的响应结构体,以一Asn.1接口为例,根据响应结构体生成表达式,即该请求结构体对应着该表达式,而该表达式也为该请求对应着的预期结果,其中该表达式可以包括至少一个表达式,根据修改该请求结构体的参数,可以对应地修改该表达式中的相关参数,从而可以获得多个场景下的请求对应着的表达式,并且将各表达式存储在对应的文本请求脚本中,此时,每一个文本请求脚本中包括请求结构体和对应的表达式。其中,表达式可以为:
EXPECTED_TRUE(AsnRsp.trailDetailInfoList.size()==3);
EXPECTED_TRUE(AsnRsp.trailDetailInfoList[0].trailname.comp(“EPL”)==1);
EXPECTED_TRUE(AsnRsp.trailDetailInfoList[0].trailed>0);
EXPECTED_TRUE(AsnRsp.trailDeteailInfoList[0].alarmstatus==255)。该表达式包括四个表达式,需要说明的是,上述表达式是为了举例说明,本发明并不以此为限。
步骤104、将数据库和各文本请求脚本恢复到装载有管理软件的第二服务器中;第一服务器和第二服务器具有相同的工作环境。
本实施例中,将所获得的该备份的数据库和所有的文本请求脚本恢复到装载有该管理软件的第二服务器,在将该备份的数据库和各文本请求脚本下载到该第二服务器后,则将第二服务器的数据库恢复为该备份的数据库,从而使得第二服务器数据库存储的工作环境下配置数据与第一服务器相同,从而使得第一服务器和第二服务器具有相同的工作环境,其中,工作环境包括软件环境和硬件环境,由于软件环境是个动态变化的环境,即在不同的服务器中软件环境不同,因此,为了使第二服务器与第一服务器具有相同的工作环境,应该将第二服务器的软件环境也恢复为第一服务器的软件环境;而且硬件环境包括硬件设备、硬件设备在服务器中所处的位置以及各硬件设备的连接,因此还需要将第一服务器中的硬件环境移植到第二服务器中。
步骤105、在第二服务器中,根据各文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应。
本实施例中,在第二服务器中的数据库恢复为从第一服务器中备份出来的数据库后,再将各文本请求脚本生成各请求消息和响应消息,需要说明的是,一个文本请求脚本可以生成一个请求消息和一个响应消息,其中,响应消息可以为请求获取响应的消息。然后将生成的各请求消息和响应消息下发到被测试进程中,其中,该被测试进程为提供Asn.1接口(即各文本请求脚本对应的Asn.1接口)的被测试进程,被测试进程接收到各请求消息后,根据第二服务器中的工作环境(即恢复备份的数据库之后的工作环境)和各响应消息,生成各请求消息对应的响应,从而可以从被测试进程中获得各文本请求脚本对应的响应。
步骤106、应用表达式对响应的内容进行校验,以完成对Asn.1接口的检测。
本实施例中,由于各文本请求脚本中存储有对应的表达式,而且各文本请求脚本具有对应的响应,然后应用文本请求脚本中存储的表达式对该文本请求脚本对应的响应的内容进行校验,从而完成Asn.1接口的检测。如果校验一个响应的内容与对应的表达式相同,则说明Asn.1接口在这一场景下能正常工作,对应地,如果校验Asn.1接口对应的所有的响应的内容均与对应的表达式相同,则说明该Asn.1接口可以正常工作。
本发明实施例一提供的Asn.1接口的检测处理方法,通过将从第一服务器上所获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本和用于存储工作环境下配置数据的数据库,恢复到装载有管理软件的第二服务器中,使第一服务器和第二服务器具有相同的工作环境;然后在第二服务器中,根据各文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;应用表达式对响应的内容进行校验,以完成对Asn.1接口的检测。通过在第二服务器与第一服务器具有相同的工作环境下,将各文本请求脚本生成各Asn.1接口的不同场景下的请求消息来完成对Asn.1接口的检测,提高了检测效率,同时,不需要为不同的Asn.1接口提供不同的测试代码,而且对各文本请求脚本维护过程简单。
图2为本发明Asn.1接口的检测处理方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得Asn.1接口打印的请求结构体和响应结构体;通过修改请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本。
步骤202、重复上述过程,获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本。
步骤203、从第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各响应结构体生成对应的表达式并存储在文本请求脚本中。
步骤204、将数据库和各文本请求脚本恢复到装载有管理软件的第二服务器中;第一服务器和第二服务器具有相同的工作环境。
本实施例中,步骤201~步骤204的具体实现过程与本发明实施例一中步骤101~步骤104的具体实现过程一致,详细可以参见上述实施例中的记载,此处不再赘述。
步骤205、在第二服务器中,应用文本请求脚本中的参数值自动填充请求消息。
本实施例中,在第二服务器中的数据库恢复为从第一服务器中备份出来的数据库后,将应用文本请求脚本中的参数值自动填充请求消息,其中,可以通过FillAsn1Req函数来实现将应用文本请求脚本中的参数值自动填充请求消息,具体地,根据reqstructstring来获得应用文本请求脚本对应的是哪个Asn.1接口,即获得Asn.1接口对应的请求类型,然后遍历文本请求脚本中的各字段,根据reqstructring的内容以字段名称相同的映射关系填充该文本请求脚本对应的请求类型,从而生成请求消息。
步骤206、将请求消息和空的响应消息下发到被测试进程。
本实施例中,在步骤205生成请求消息后,接着生成各请求消息对应的响应消息,该响应消息为空的响应消息,用于请求获取该请求消息对应的响应。然后将请求消息和空的响应消息下发到被测试进程,其中,可能通过SendAsn1Msg函数将请求消息和空的响应消息下发到被测试进程。
步骤207、获得响应,并将响应的内容转换成字符串结构体形式。
本实施例中,被测试进程为提供上述各Asn.1接口(即各文本请求脚本对应的Asn.1接口)的被测试进程,被测试进程接收到各请求消息后,根据第二服务器中的工作环境(即该备份的数据库)和各空的响应消息,生成各请求消息对应的响应,从而可以从被测试进程中获得各文本请求脚本对应的响应,进一步地,还将所获得的响应转换成字符串结构体形式。
步骤208、应用表达式对响应的内容进行校验,若响应的内容与表达式一致,则检测成功;若不一致,则检测失败,并将响应的内容输出到验证结果文件中;依次进行全部或部分表达式的校验。
本实施例中,应用各文本请求脚本中所存储的表达式对响应的内容进行校验,具体地,可以通过CheckRsp函数应用该表达式对已转换成字符串结构体形式的响应进行校验,具体地,可以将Asn.1接口在一场景下应用对应的表达式与所获得响应的内容进行校验,如果响应的内容与表达式一致,则说明对该Asn.1接口在这一场景下的检测成功,以此类推,可以将该Asn.1接口在不同场景下应用对应的表达式与所获得的响应的内容进行校验,如果响应的内容与表达式一致,则说明对该Asn.1接口的检测成功。如果响应的内容与表达式不一致,则检测失败,说明Asn.1接口不能正常工作,然后将检测失败所对应的响应的内容输出到验证结果文件中。
另外,可以依次应用全部或部分表达式进行校验,由于响应的内容所对应的表达式可以包括至少一个表达式,所以在校验过程中,可以应用一个表达式进行校验,也可以应用全部的表达式进行校验。需要说明的是,还可以只对响应的内容中感兴趣的关键字段做校验,而不是对整个响应的内容都进行校验,例如响应内容中的路径标识(IDentity,简称ID)、创建时间等,可以仅校验其值满足某一条件(例如大于0)即为检测成功。
需要说明的是,步骤204~步骤208可以通过软件来实现,通过软件来实现的对应的过程为:
Figure GDA00002469317700091
另外,本实施例在测试多个Asn.1接口时,还可以通过将前一个Asn.1接口反馈回来的响应内容作为下一个Asn.1接口对应的请求消息的填充数据,例如:在查询所有路径的信息之前需要查询所有路径的ID列表,然后才能根据所有路径的ID列表获得所有路径的ID,再根据所有路径的ID查询各路径的路径信息。
本发明实施例二提供的Asn.1接口的检测处理方法,通过将从第一服务器上所获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本和用于存储工作环境下配置数据的数据库,恢复到装载有管理软件的第二服务器中,使第一服务器和第二服务器具有相同的工作环境;在第二服务器中,应用文本请求脚本中的参数值自动填充请求消息;将请求消息和空的响应消息下发到被测试进程;获得响应,并将响应的内容转换成字符串结构体形式;应用表达式对响应的内容进行校验,若响应的内容与表达式一致,则检测成功;若不一致,则检测失败,并将响应的内容输出到验证结果文件中;依次进行全部或部分表达式的校验。通过在第二服务器与第一服务器具有相同的工作环境下,将各文本请求脚本生成各Asn.1接口的不同场景下的请求消息来完成对Asn.1接口的检测,提高了检测效率,同时,不需要为不同的Asn.1接口提供不同的测试代码,而且对各文本请求脚本维护过程简单。
下面特举例对本发明上述实施例进行详细说明:假设需要验证一管理软件的被测试进程的两个Asn.1接口,第一个Asn.1接口为路径搜索接口,第二个Asn.1接口为查询路径的接口,其中,该路径搜索接口对应的场景为全量搜索和增量搜索,该查询路径的接口对应的场景为查询所有路径和查询一条具体的路径。首先对第一服务器上装载的管理软件的第一个Asn.1接口进行一次功能操作(即进行全量搜索),对第二个Asn.1接口进行一次功能操作(即查询一条具体的路径),然后从输出日志中获得第一个Asn.1接口打印的请求结构体和响应结构体,还可以从输出日志中获得第二个Asn.1接口打印的请求结构体和响应结构体。值得注意的是,还需要备份从第一服务器中备份出用于存储工作环境下配置数据的数据库。
第一个Asn.1接口:将第一个Asn.1接口打印的请求结构体生成全量搜索文本请求脚本,该全量搜索文本请求脚本可以为:
Figure GDA00002469317700101
同时,还将根据该Asn.1接口打印的响应结构体生成表达式,其中,该响应结构体未示出,该全量搜索对应的表达式为:
EXPECTED_TRUE(AsnEtherSearchTrailRsp.listofEtherTrailID.size()==20);
EXPECTED_TRUE(AsnEtherSearchTrailRsp.listofEtherTrailID[0]>0);
然后将所生成的表达式存储在全量搜索文本请求脚本,此时的全量搜索文本请求脚本为:
Figure GDA00002469317700102
由于全量搜索对应的searchStrategy为27,而增量搜索对应的searchStrategy为23,因此,可以对全量搜索文本请求脚本请求结构体中相应的参数值进行修改,根据该参数值的修改,可以对应的将文本请求脚本所存储的表达式也进行修改,从而可以获得增量搜索文本请求脚本,该增量搜索文本请求脚本可以为:
Figure GDA00002469317700112
通过上述过程,可以获得第一个Asn.1接口的不同场景下对应的文本请求脚本。
第二Asn.1接口:将第二个Asn.1接口打印的请求结构体生成查询一条具体的路径请求脚本,该查询一条具体的路径文本请求脚本可以为:
Figure GDA00002469317700121
同时,还将根据该Asn.1接口打印的响应结构体生成表达式,其中,该响应结构体未示出,该查询一条具体路径对应的表达式为:
Figure GDA00002469317700122
然后将所生成的表达式存储在查询一条具体路径文本请求脚本,此时的查询一条具体路径文本请求脚本为:
Figure GDA00002469317700123
由于查询一条具体的路径对应的参数值为AsnIntList SEQUENCE OFINTEGER'583'H,而ID列表为空查询所有路径对应的参数值为空,因此,可以对查询一条具体的路径文本请求脚本请求结构体中相应的参数进行修改,根据该参数的修改,可以对应的将文本请求脚本所存储的表达式也进行修改,从而可以获得ID列表为空查询所有路径文本请求脚本,该ID列表为空查询所有路径文本请求脚本可以为:
Figure GDA00002469317700131
通过上述过程,可以获得第二个Asn.1接口的不同场景下对应的文本请求脚本。
在获得第一个Asn.1接口和第二Asn.1接口的不同场景下对应的文本请求脚本之后,将备份的数据库和上述各文本请求脚本恢复到装载有管理软件的第二服务器中;第一服务器和第二服务器具有相同的工作环境。在第二服务器中,根据全量搜索文本请求脚本和增量搜索文本请求脚本中的AsnEtherSearchTrailReq可以获知这两个文本请求脚本对应的是路径搜索接口,从而应用全量搜索文本请求脚本和增量搜索文本请求脚本中的参数值分别自动填充为路径搜索接口对应的请求消息,然后将请求消息和空的响应消息下发给被测试进程;同时根据查询一条具体的路径文本请求脚本和ID为空查询所有路径文本请求脚本中的AsnEtherGetTailInfoReq可以获知这两个文本请求脚本对应的是查询路径接口,从而应用查询一条具体的路径文本请求脚本和ID为空查询所有路径文本请求脚本分别自动填充为查询路径接口对应的请求消息,然后将请求消息和空的响应消息下发给被测试进程。
然后可以从被测试进程中获得四个响应,并将各响应的内容转换为字符串结构体形式,然后应用各表达式对各响应的内容进行校验,具体过程可以为:
对第一个Asn.1接口进行检测:应用全量搜索文本请求脚本中的AsnEtherSearchTrailRsp.listofEtherTrailID.size()以及该全量搜索文本请求脚本中的AsnEtherSearchTrailRsp.listofEtherTrailID[0]对相应的响应的内容进行校验,若校验结果分别为20、大于0时,则该文本请求脚本对应的检测成功。应用增量搜索文本请求脚本中的AsnEtherSearchTrailRsp.listofEtherTrailID.size()、AsnEtherSearchTrailRsp.listofEtherTrailID[0]对相应的响应的内容进行校验,若校验结果分别为10、大于0时,则增量搜索文本请求脚本对应的检测成功。
从而可以确定第一个Asn.1接口检测成功。
对第二个Asn.1接口进行检测:应用查询一条具体的路径文本请求脚本中的AsnEtherGetTrailInfoRsp.trailDetailInfoList.size()以及该文本请求脚本中的AsnEtherGetTrailInfoRsp.trailDetailInfoList[0].trailname.compare(“EPL”)对相应的响应的内容进行校验,若校验结果分别为1、1时,则查询一条具体的路径文本请求脚本对应的检测成功。应用ID列表为空查询所有路径文本请求脚本中的AsnEtherGetTrailInfoRsp.trailDetailInfoList.size()以及该文本请求脚本中的AsnEtherGetTrailInfoRsp.trailDetailInfoList[0].trailname.compare(“EPL”)对相应的响应的内容进行校验,若校验结果分别为1、1时,则ID列表为空查询所有路径文本请求脚本对应的检测成功。从而可以确定第二个Asn.1接口检测成功。
进一步地,还可以为在一次恢复数据库后,重复下发多次请求消息和响应消息,即文本请求脚本可以是一个请求结构体和表达式的列表,按照顺序分别下发请求消息和校验返回的响应的内容。例如可以做到先查询路径再启动搜索再查询路径,也就是,可以先向被测试进行下发查询一个具体的路径文本请求脚本对应的请求消息,再下发全量搜索文本请求脚本对应的请求消息,然后再下发ID列表为空查询所有路径文本请求脚本对应的请求消息等。
更进一步地,本发明各实施例提供了数据库恢复功能,因此还可以做一些修改数据的动作,例如删除一条路径,然后校验路径数量被减少一条。因此在向被测试进程下发下一个请求消息时还可以将第二服务器中的数据库恢复为备份的数据库,所以删除一条路径不会影响到下一个请求消息对应的响应,因此,相互之间不会存在影响。
大型软件(包括企业级电信软件)在实现上一般都会使用Asn.1接口作为交互接口,Asn.1接口在测试验证时因为软件和逻辑场景复杂导致数据构造、预期结果验证都很困难,通过本发明上述实施例在前期做一定投入,完成基础功能设计,即可支持所有使用Asn.1接口的数据快速打桩和响应的返回值校验,达到在既有Asn.1接口中新增场景时不用新写测试代码,只需要修改对该Asn.1接口对应的请求结构体中的参数值和对应的表达式,即可获得该新增场景下对应的文本请求脚本,因此,仅需要少量的工作,这对大型软件具体非常好的累积效果,文本请求脚本可以无限继承,新增文本请求脚本非常轻松方便。
通过本发明上述实施例在做测试驱动开发(Test-Driven Development,简称TDD)、One Track,敏捷开发等都有可以做到快速上手,对单元测试的核心模块,核心功能、重点场景都可以快速覆盖。长期来看,企业级大型软件能得到很好的内部测试验证和测试代码覆盖,使得在较少的投入下,软件的质量有很大的提升。
图3为本发明Asn.1接口的检测处理装置实施例一的结构示意图,如图3所示,本实施例的装置可以包括:获取模块11、第一处理模块12、第二处理模块13和检测模块14,其中,获取模块11用于对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得Asn.1接口打印的请求结构体和响应结构体;通过修改请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本;重复上述过程,获得管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本。第一处理模块12用于从第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各响应结构体生成对应的表达式并存储在文本请求脚本中;将数据库和各文本请求脚本恢复到装载有管理软件的第二服务器中;第一服务器和第二服务器具有相同的工作环境。第二处理模块13用于在第二服务器中,根据各文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应。检测模块14用于应用表达式对响应的内容进行校验,以完成对Asn.1接口的检测。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的记载,此处不再赘述。
在本发明Asn.1接口的检测处理装置的实施例二中,本实施例的装置在图3所示装置结构的基础上,上述的第二处理模块13具体用于:应用文本请求脚本中的参数值自动填充请求消息;将请求消息和空的响应消息下发到被测试进程;获得响应,并将响应的内容转换成字符串结构体形式。
进一步地,上述的检测模块14具体用于:用于应用表达式对响应的内容进行校验,若响应的内容与表达式一致,则检测成功;若不一致,则检测失败,并响应的内容输出到验证结果文件中;依次进行全部或部分表达式的校验。
本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的记载,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (6)

1.一种Asn.1接口的检测处理方法,其特征在于,包括:
对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得所述Asn.1接口打印的请求结构体和响应结构体;通过修改所述请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本;重复上述过程,获得所述管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本;
从所述第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各所述响应结构体生成对应的表达式并存储在所述文本请求脚本中;将所述数据库和各所述文本请求脚本恢复到装载有所述管理软件的第二服务器中;所述第一服务器和所述第二服务器具有相同的工作环境;
在所述第二服务器中,根据各所述文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;
应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测。
2.根据权利要求1所述的方法,其特征在于,所述根据各所述文本请求脚本生成请求和响应消息并下发到被测试进程,获得对应的响应包括:
应用所述文本请求脚本中的参数值自动填充所述请求消息;
将所述请求消息和空的响应消息下发到被测试进程;
获得所述响应,并将所述响应的内容转换成字符串结构体形式。
3.根据权利要求1或2所述的方法,其特征在于,所述应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测包括:
应用所述表达式对所述响应的内容进行校验,若所述响应的内容与所述表达式一致,则检测成功;若不一致,则检测失败,并将所述响应的内容输出到验证结果文件中;依次进行全部或部分所述表达式的校验。
4.一种Asn.1接口的检测处理装置,其特征在于,包括:
获取模块,用于对第一服务器上装载的管理软件的一Asn.1接口进行一次功能操作,从输出日志中获得所述Asn.1接口打印的请求结构体和响应结构体;通过修改所述请求结构体中的参数值,获得多个不同场景下对应的文本请求脚本;重复上述过程,获得所述管理软件的各Asn.1接口多个不同场景下对应的文本请求脚本;
第一处理模块,用于从所述第一服务器中备份出用于存储工作环境下配置数据的数据库,根据各所述响应结构体生成对应的表达式并存储在所述文本请求脚本中;将所述数据库和各所述文本请求脚本恢复到装载有所述管理软件的第二服务器中;所述第一服务器和所述第二服务器具有相同的工作环境;
第二处理模块,用于在所述第二服务器中,根据各所述文本请求脚本生成请求消息和响应消息并下发到被测试进程,获得对应的响应;
检测模块,用于应用所述表达式对所述响应的内容进行校验,以完成对所述Asn.1接口的检测。
5.根据权利要求4所述的装置,其特征在于,所述第二处理模块具体用于:
应用所述文本请求脚本中的参数值自动填充所述请求消息;
将所述请求消息和空的响应消息下发到被测试进程;
获得所述响应,并将所述响应的内容转换成字符串结构体形式。
6.根据权利要求4或5所述的装置,其特征在于,所述检测模块具体用于:
用于应用所述表达式对所述响应的内容进行校验,若所述响应的内容与所述表达式一致,则检测成功;若不一致,则检测失败,并所述响应的内容输出到验证结果文件中;依次进行全部或部分所述表达式的校验。
CN201210486662.5A 2012-11-26 2012-11-26 Asn.1接口的检测处理方法和装置 Active CN103019931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210486662.5A CN103019931B (zh) 2012-11-26 2012-11-26 Asn.1接口的检测处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210486662.5A CN103019931B (zh) 2012-11-26 2012-11-26 Asn.1接口的检测处理方法和装置

Publications (2)

Publication Number Publication Date
CN103019931A true CN103019931A (zh) 2013-04-03
CN103019931B CN103019931B (zh) 2015-12-02

Family

ID=47968556

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210486662.5A Active CN103019931B (zh) 2012-11-26 2012-11-26 Asn.1接口的检测处理方法和装置

Country Status (1)

Country Link
CN (1) CN103019931B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104516794A (zh) * 2014-12-12 2015-04-15 国家电网公司 数据库文件的备份方法、装置及***
CN104714860A (zh) * 2013-12-16 2015-06-17 航天信息股份有限公司 一种网络***的密钥备份装置
CN105446825A (zh) * 2014-06-12 2016-03-30 阿里巴巴集团控股有限公司 数据库测试方法及装置
CN111309584A (zh) * 2018-12-11 2020-06-19 迈普通信技术股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111694749A (zh) * 2020-06-24 2020-09-22 深圳壹账通智能科技有限公司 接口自动测试方法、装置、计算机设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1641601A (zh) * 2004-01-04 2005-07-20 华为技术有限公司 一种软件的单元测试方法
CN1845514A (zh) * 2005-04-07 2006-10-11 华为技术有限公司 软件模块的测试方法
CN102096631A (zh) * 2009-12-11 2011-06-15 华为技术有限公司 接口测试方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1641601A (zh) * 2004-01-04 2005-07-20 华为技术有限公司 一种软件的单元测试方法
CN1845514A (zh) * 2005-04-07 2006-10-11 华为技术有限公司 软件模块的测试方法
CN102096631A (zh) * 2009-12-11 2011-06-15 华为技术有限公司 接口测试方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714860A (zh) * 2013-12-16 2015-06-17 航天信息股份有限公司 一种网络***的密钥备份装置
CN104714860B (zh) * 2013-12-16 2018-04-10 航天信息股份有限公司 一种网络***的密钥备份装置
CN105446825A (zh) * 2014-06-12 2016-03-30 阿里巴巴集团控股有限公司 数据库测试方法及装置
CN105446825B (zh) * 2014-06-12 2020-08-11 阿里巴巴集团控股有限公司 数据库测试方法及装置
CN104516794A (zh) * 2014-12-12 2015-04-15 国家电网公司 数据库文件的备份方法、装置及***
CN104516794B (zh) * 2014-12-12 2017-11-14 国家电网公司 数据库文件的备份方法、装置及***
CN111309584A (zh) * 2018-12-11 2020-06-19 迈普通信技术股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111309584B (zh) * 2018-12-11 2024-02-23 迈普通信技术股份有限公司 数据处理方法、装置、电子设备及存储介质
CN111694749A (zh) * 2020-06-24 2020-09-22 深圳壹账通智能科技有限公司 接口自动测试方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
CN103019931B (zh) 2015-12-02

Similar Documents

Publication Publication Date Title
CN110309071B (zh) 测试代码的生成方法及模块、测试方法及***
CN109614568B (zh) 一种页面生成方法及装置
WO2020155778A1 (zh) 接口自动化测试方法、测试装置、测试设备及存储介质
CN104793946B (zh) 基于云计算平台的应用部署方法和***
US8151247B2 (en) Test data management
US20170372247A1 (en) Methods, systems, and articles of manufacture for implementing software application development and releases
CN108572823B (zh) 基于接口引擎的前后端开发管理方法及***
CN104657274B (zh) 软件界面测试方法及装置
CN103019931A (zh) Asn.1接口的检测处理方法和装置
CN109508178A (zh) 一种程序开发方法及装置
CN107958010A (zh) 用于在线数据迁移的方法及***
CN108111364B (zh) 一种业务***的测试方法及装置
CN104077217A (zh) 代码文件的编译发布方法及***
CN106897053A (zh) 一种代码发布方法与装置
CN104794048A (zh) 一种ui自动化测试方法和***
CN110716870A (zh) 服务的自动化测试方法及装置
CN101308471A (zh) 一种恢复数据的方法及装置
CN109799985A (zh) 前端代码生成方法及装置、存储介质及电子设备
CN111240968A (zh) 一种自动测试管理方法及***
CN113791765A (zh) 云服务的资源编排方法、装置、设备及存储介质
CN110865806B (zh) 代码处理方法、装置、服务器及存储介质
US20130339798A1 (en) Methods for automated software testing and devices thereof
CN104252413A (zh) 一种自动化脚本生成方法、装置及***
CN106201859A (zh) 一种回归测试方法及***
US11372750B2 (en) Test script for application under test having abstracted action group instantiations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210423

Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040

Patentee after: Honor Device Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right