CN104298604A - 云服务健壮性测试系统及测试方法 - Google Patents
云服务健壮性测试系统及测试方法 Download PDFInfo
- Publication number
- CN104298604A CN104298604A CN201410620689.8A CN201410620689A CN104298604A CN 104298604 A CN104298604 A CN 104298604A CN 201410620689 A CN201410620689 A CN 201410620689A CN 104298604 A CN104298604 A CN 104298604A
- Authority
- CN
- China
- Prior art keywords
- test
- module
- service
- interface
- user
- 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
Links
Landscapes
- Maintenance And Management Of Digital Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
云服务健壮性测试系统及测试方法,涉及云服务健壮性测试领域。实现了对云服务健壮性的测试。本发明提供用户选择界面,用于实现人机交互,用户可以选择待测云服务,管理控制模块将测试信息打包成消息通过通信模块作用于具体测试对象,并管理测试的控制逻辑,包括测试的开始与终止、结果清空与数据分析等,通信模块将测试控制信息发送给测试对象并将测试对象返回的测试结果输出到测试平台的相应控制界面。实现对云服务的健壮性的测试,并通过结果分析实现对云服务健壮性的评估。本发明适用于对云服务做健壮性测试。
Description
技术领域
本发明涉及云服务健壮性测试领域。
背景技术
近年来,随着云服务的普及与推广,云服务的健壮性显得越来越重要。为了加快云服务产业的成型与发展,加速云服务平台与应用的技术研究,云服务器系统与云服务平台的健壮性评测具有重要的研究意义。
云计算体系三种包括核心云服务SaaS(Software-as-a-Service,软件即服务)、PaaS(Platform-as-a-Service,平台即服务)和IaaS(Infrastructure-as-a-Service,基础设施即服务),虽然三者彼此之间存在依赖关系,但对用户来说,其服务的内容及与用户的交互方式存在较大的差异,尽管如此,也可以从整体的角度来理解云服务的健壮性,将其看成一种提供给用户使用的服务资源,可以这样定义其健壮性:在外界压力或具有异常的服务调用申请情况下,云服务能够保持正常提供给用户使用状态的一种能力的度量。
健壮性测试的结果大体分为两种即通过与失效,具体结果随着服务模式的不同而有所区别。经典的crash模型能够定义和度量操作系统的健壮性,针对系统的失效定义了不同的crash类别,如表1所示:
表1 CRASH类别
为了定量的描述测试对象的健壮性,对测试结果进行了统计与分析,重点关注失效的概率,通过失效率可以定量直观的评价测试对象的健壮性强弱,失效率F定义如下:
N——被测对象个数;
wi——根据被测对象i出现次数设定的权值;
fi——被测对象i失效的次数;
ti——被测对象i的测试次数。
从健壮性的定义看其侧重点在于测试对象对外界不合理输入的异常情况的处理能力,所以用户访问方式的不同直接导致不同云服务健壮性测试的差异,IaaS的接口与PaaS命令行工具接口类似于操作系统API接口,SaaS层接口与PaaS Web API类似于web服务接口,所以IaaS层服务的健壮性测试与操作系统健壮性测试相似,SaaS层服务健壮性测试与web服务健壮性测试相似,PaaS层服务健壮性测试二者均可借鉴。
发明内容
本发明是为了实现对云服务健壮性的测试,提出了一种云服务健壮性测试系统及测试方法。
本发明所述的一种云服务健壮性测试系统,它包括用户选择模块、管理控制模块、通信模块和具体测试模块;
用户选择模块包括选择待测服务层次模块、选择测试服务模块和选择测试接口类型模块;
选择待测服务层次模块用于为用户提供云服务层次选择端口,同时向管理控制模块发送用户所选择的服务层次信息;云服务层次包括laaS层、paaS层和SaaS层;
选择测试服务模块用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块;
择测试接口类型模块用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块;
管理控制模块包括测试结果输出显示模块、测试执行模块、测试结果清空模块、测试结果分析模块、测试停止模块和测试继续执行模块;
测试结果输出显示模块用于接收通信模块发送的测试结果信息,并对测试结果进行输出显示;
测试执行模块用于向用户提供开始执行测试操作端口,接收选择待测服务层次模块、选择测试服务模块和选择测试接口类型模块所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块发送至具体测试模块;
测试结果清空模块用于向用户提供清空测试结果操作端口,同时向测试结果分析模块和测试结果输出显示模块发送结果清空命令;
测试结果分析模块用于向用户提供分析测试结果操作端口,接收通信模块发送的测试结果信息,并根据用户的操作对测试结果进行健壮性分析;
测试停止模块用于向用户提供控制测试停止的操作端口,同时向测试执行模块发送测试停止命令,并经通信模块向具体测试模块发送测试停止命令;
测试继续执行模块用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块发送至具体测试模块;
通信模块用于接收管理控制模块发送的测试控制信息,并将接收的控制信息发送至具体测试模块,同时接收具体测试模块的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块;
具体测试模块包括IaaS层云服务健壮性测试模块、PaaS层云服务健壮性测试模块和SaaS层云服务健壮性测试模块;
IaaS层云服务健壮性测试模块用于接收通信模块发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务的健壮性测试,并将测试结果进行发送至通信模块,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
PaaS层云服务健壮性测试模块用于接收通信模块发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务的健壮性测试,并将测试结果发送至通信模块,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
SaaS层云服务健壮性测试模块用于接收通信模块发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层云服务的健壮性测试,并将测试结果发送至通信模块,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
云服务健壮性测试方法,该方法的具体步骤为:
用户选择步骤;该步骤包括的具体子步骤为:
用于为用户提供云服务层次选择端口,同时向管理控制模块发送用户所选择的服务层次信息选择待测服务层次的子步骤;该步骤中所述的云服务层次包括laaS层云服务、paaS层云服务和SaaS层云服务;
用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块的选择测试服务的子步骤;
用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块的选择测试接口类型的子步骤;
管理控制步骤,该步骤包括的具体子步骤为:
包括测试结果输出显示模块择测试接口类型模块、测试执行模块、测试结果清空模块、测试结果分析模块、测试停止模块和测试继续执行模块;
用于接收通信模块发送的测试结果信息,并对测试结果进行输出显示的测试结果输出显示的子步骤;
用于向用户提供开始执行测试操作端口,接收测试停止模块发送的停止测试命令和测试继续执行模块的继续执行测试命令的测试执行子步骤;该步骤同时接收选择待测服务层次模块、选择测试服务模块和选择测试接口类型模块所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块发送至具体测试模块;
用于向用户提供清空测试结果操作端口,同时向测试结果分析模块和测试结果输出显示模块发送结果清空命令的测试结果清空的子步骤;
用于向用户提供分析测试结果操作端口,接收通信模块发送的测试结果信息,并根据用户的操作对测试结果进行分析的测试结果健壮性分析的的子步骤;
用于向用户提供控制测试停止的操作端口,同时向测试执行模块发送测试停止命令,并经通信模块向具体测试模块发送测试停止命令的测试停止的测试执行的子步骤;
用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块发送至具体测试模块的测试继续执行的子步骤;
通信步骤;该步骤用于接收管理控制模块发送的测试控制信息,并将接收的控制信息发送至具体测试模块,同时接收具体测试模块的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块;
具体测试步骤,该步骤包括的具体子步骤为:
用于接收通信模块发送的测试控制信息,并根据接收的信息中用户选择的云服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务健壮性测试,并将测试结果发送至通信模块的IaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块发送的控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务健壮性测试,并将测试结果发送至通信模块的PaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层服务的健壮性测试,并将测试结果发送至通信模块的SaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
本发明提供用户选择界面,用于实现人机交互,用户可以选择待测云服务,管理控制模块将测试信息打包成消息通过通信模块作用于具体测试对象,并管理测试的控制逻辑,包括测试的开始与终止、结果清空与数据分析等,通信模块将测试控制信息发送给测试对象并将测试对象返回的测试结果输出到测试平台的相应控制界面。实现对云服务的健壮性的测试,并通过结果分析实现对云服务健壮性的评估。
选择测试对象模块向用户提供界面选择,接受用户对指定测试对象的选择,将其选择的消息发送至管理控制模块。选择测试对象模块中我们提供三种选择对象:待测云服务的层次选择、该层具体测试的云服务选择以及该云服务接口类型选择,其中,云服务接口类型选择又包括两个子方面:根据接口作用对象选择与接口功能选择。待测云服务的层次选择主要支持三种层次,即IaaS层、PaaS层与SaaS层,每一层的云服务目前只支持了有限几种。
附图说明
图1为本发明所述的云服务健壮性测试系统的结构示意图;
图2为本发明所述的云服务健壮性测试系统界面图。
具体实施方式
具体实施方式一、结合图1说明本实施方式,本实施方式所述的一种云服务健壮性测试系统,它包括用户选择模块1、管理控制模块2、通信模块3和具体测试模块4;
用户选择模块1包括选择待测服务层次模块1-1、选择测试服务模块1-2和选择测试接口类型模块1-3;
选择待测服务层次模块1-1用于为用户提供云服务层次选择端口,同时向管理控制模块2发送用户所选择的服务层次信息;云服务层次包括laaS层、paaS层和SaaS层;
选择测试服务模块1-2用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块2;
择测试接口类型模块1-3用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块2;
管理控制模块2包括测试结果输出显示模块2-1、测试执行模块2-2、测试结果清空模块2-3、测试结果分析模块2-4、测试停止模块2-5和测试继续执行模块2-6;
测试结果输出显示模块2-1用于接收通信模块3发送的测试结果信息,并对测试结果进行输出显示;
测试执行模块2-2用于向用户提供开始执行测试操作端口,接收选择待测服务层次模块1-1、选择测试服务模块1-2和选择测试接口类型模块1-3所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块3发送至具体测试模块4;
测试结果清空模块2-3用于向用户提供清空测试结果操作端口,同时向测试结果分析模块2-4和测试结果输出显示模块2-1发送结果清空命令;
测试结果分析模块2-4用于向用户提供分析测试结果操作端口,接收通信模块3发送的测试结果信息,并根据用户的操作对测试结果进行健壮性分析;
测试停止模块2-5用于向用户提供控制测试停止的操作端口,同时向测试执行模块2-2发送测试停止命令,并经通信模块3向具体测试模块4发送测试停止命令;
测试继续执行模块2-6用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块3发送至具体测试模块4;
通信模块3用于接收管理控制模块2发送的测试控制信息,并将接收的控制信息发送至具体测试模块4,同时接收具体测试模块4的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块2;
具体测试模块4包括IaaS层云服务健壮性测试模块4-1、PaaS层云服务健壮性测试模块4-2和SaaS层云服务健壮性测试模块4-2;
IaaS层云服务健壮性测试模块4-1用于接收通信模块3发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务的健壮性测试,并将测试结果进行发送至通信模块3,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
PaaS层云服务健壮性测试模块4-2用于接收通信模块3发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务的健壮性测试,并将测试结果发送至通信模块3,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
SaaS层云服务健壮性测试模块4-2用于接收通信模块3发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层云服务的健壮性测试,并将测试结果发送至通信模块3,并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
具体实施方式二、本实施方式是对具体实施方式一所述的一种云服务健壮性测试系统的进一步说明,IaaS层云服务健壮性测试模块4-1、PaaS层云服务健壮性测试模块4-2和SaaS层云服务健壮性测试模块4-2均包括服务接口分析模块、测试用例生成模块、服务调用模块和测试结果分析模块;
接口分析模块用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析;
测试用例生成模块用于列表描述接口分析模块中的接口参数,并在接口分析模块中的参数库中参数进行随机选择生成测试用例;
服务调用模块用于对用户选择的具体云服务的接口调用方式进行测试用例的服务申请;
测试结果回收模块用于采用测试端结果输出与云服务日志查看两种方式来回收测结果,并根据测试结果分析模块2-4经通信模块3发送的控制信息进行健壮性评估,并将健壮性评估结构发送至通信模块3。
具体实施方式三、本实施方式是对具体实施方式二所述的一种云服务健壮性测试系统的进一步说明,接口分析模块还包括:接口的参数分析模块,参数预定义模块、参数库生成策略模块和分类并生成参数库模块;
接口的参数分析模块用于根据用户所选择的具体云服务,收集改云服务的接口信息,获得用户所选择的具体云服务的接口信息;
参数预定义模块根据高覆盖率与合理性的原则对用户所选择的具体云服务进行接口参数数据类型定义,获得预定义参数库;所述高覆盖率是定义出的数据类型必须完全覆盖所有接口参数的类型;合理性是接口参数的数据类型分类合理,预定义的参数数据类型合理;
参数库生成策略模块用于选择参数数据类型的边界值、空值、异常值和有效值加入到预定义后的参数类型的参数库中;
测试用例随机生成模块用于描述预先定义好参数数据类型每个接口的信息,将接口与其参数生成接口与参数列表;
参数列表的格式为:
服务调用模块用于接口参数列表中查询是否有用户选择的测试接口类别描述信息,并根据用户选择接口类型进行接口类别匹配;
若类别匹配,则说明该接口符合测试标准,若类别不匹配该接口不在测试范围内,进行下一个接口的类别匹配直至匹配到接口信息后,针对其参数类型从其参数库中随机选择参数生成测试用例。
本发明在得到云服务接口信息的前提条件下,我们需要对其接口进行分析并设计生成云服务接口的异常调用,参数配置模块主要完成了这个功能。
首先需要针对具体的云服务收集其接口信息,得到其接口参数,对参数进行分析与参数类型的预定义,之后向每一类参数库中添加正常与异常的参数以提高测试的效率,在手工列表描述每个接口与其参数后,调用接口时自动在相应参数库中随机匹配参数,生成测试用例。参数配置模块主要包含两个方面:接口参数的配置与测试用例的随机生成。其中,接口参数的配置包括参数的数据类型定义、错误的参数生成和参数的随机组合等,测试用例的随机生成主要是指利用配置好的接口参数进行接口服务的随机调用。
参数数据类型定义
不同的云服务其接口参数有较大的差异,一般来说IaaS提供命令行接口参数类型较简单,而SaaS通过WSDL描述的接口参数较复杂,一般为其本身定义的底层封装数据对象,所以在测试前我们需要对每一类服务进行接口参数数据类型的定义。预先定义数据类型需要有一个准则,即高覆盖率与合理性。高覆盖率指的是定义出的数据类型必须完全覆盖所有接口参数的类型;合理性指的是接口参数的数据类型分类合理,预定义的参数数据类型合理。通常来说,常见的数据类型作为预定义类型的一类,比如int、long、double和string类型等,而常用的指针、文件句柄、buffer缓存、IP地址、文件路径和byte字节等也可以单独定义一类,预定义的数据类型还要参考分析具体的参数类型。
参数库生成策略
接口的参数库中既要包含错误的参数也要包含正确的参数。错误的参数也要针对其参数类型的不同而进行不同的定义,为了提高测试的覆盖率,我们通常选择参数数据类型的边界值、空值、异常值和有效值等加入到该类参数类型的参数库中,例如,long数据类型,我们在其参数库中加入了:MINLONG、MAXLONG、NULL、0和正常的LONG值。又比如文件路径数据类型,我们在其参数库中加入了:正确的文件路径、NULL、错误的文件路径等。
测试用例随机生成
在预先定义好参数数据类型并实现了其参数库后,需要具体描叙每个接口的信息,将接口与其参数生成接口与参数列表,其格式如下:
接口按照功能与对象的不同可以分为不同的类别,接口类别也包含两种不同的类别信息,信息记录着我们对接口进行的功能与对象的类别划分;不同云服务提供接口调用方法不同,如IaaS提供命令行接口的调用方式一般可以简单的通过命令行下的curl、wget等调用,而SaaS提供的基于WSDL描述的接口一般通过JAVA编程针对不同的接口编写不同的调用函数。同样接口调用后服务的返回也随着服务的不同、接口的不同而有不同的类型,有的返回的是简单的int型标记是否调用成功,也有的返回的是Json格式或XML格式的报文。接口名与接口参数则按照接口信息一一对应,其中参数是否可省指的是调用该接口时该参数是否可以省略,如果有多个参数,则需要一一说明是否可省。当接口与其参数表完成后,需要按照用户选择的测试接口类别进行匹配分析。
首先在接口参数列表中查询是否有用户选择的测试接口类别描述信息,若类别匹配则说明该接口符合测试标准可进行调用,若类别不匹配说明该接口不在测试范围内,需要进行下一个接口的类别匹配。匹配到接口信息后,针对其参数类型从其参数库中随机选择参数生成测试用例,其中测试用例以设置伪随机产生函数seed值的伪随机方式产生。
以接口FileSystem.delete(Path f,Boolean recursive)为例,该接口功能是删除指定路径的文件,其中路径类参数f为需要删除文件的完整路径,布尔型参数recuresive用来确定是否进行递归删除。
首先分析接口的参数为PATH路径类与布尔类型,然后分别到PATH类的参数库与布尔类型的参数库进行参数随机选择,比如此次选择的PATH类型为PATH_NULL空路径,布尔类参数库中选择的是B_P_NUM正数,二者组合构成delete接口的参数。
生成接口测用例后,接下来就是用该接口进行服务的申请了。不同的云服务提供不同的服务申请方式。
前面参数配置模块中,在接口参数表的格式内包含了接口调用的方式,我们提到过不同的云服务提供的接口调用方法不同,按照云服务的不同,我们大致将其调用方式分为两种,即命令行调用和根据WSDL描述接口信息的JAVA调用。在具体调用时主要分为两个方面:取得服务申请权限和发送服务申请。服务申请权限的取得是发送服务申请的前提条件,如果没有权限则无法调用服务。不同的云服务具有不同的权限的申请方式,一般来说,多数云服务提供的是账号密码的权限申请方式。在获得云服务申请权限后,即针对其不同的申请方式,利用生成的接口测试用例进行服务申请。服务调用时要保持联网状态以确保申请发送到云端且能够从云端获得返回的服务结果。
结果回收模块主要是结果的收集、归纳与统计分析,结果收集的方法可能随着云服务的不同与具体接口调用服务功能的不同而不同,有一些接口的服务申请结果可能会直接在测试端显示输出,如查询类接口与输出信息类接口等,而有一些接口,如创建类、更改文件路径类、删除类等并没有直观的服务信息输出,这种情况下就需要针对不同的服务采取不同的结果分析方式。
我们采用测试端结果输出与云服务日志查看两种方式来回收测结果。很多云服务有日志功能,里面记录云服务的运行情况,在一些输出信息不明显的服务申请下,日志信息会对测试结果的分析提供很大的帮助。收集的测试结果数据需要按照之前定义的各层云服务测试指标来对其结果进行分类统计,分别统计各级故障所占的比率方便之后的健壮性评测。
具体实施方式四、本实施方式所述云服务健壮性测试方法,该方法的具体步骤为:
用户选择步骤;该步骤包括的具体子步骤为:
用于为用户提供云服务层次选择端口,同时向管理控制模块2发送用户所选择的服务层次信息选择待测服务层次的子步骤;该步骤中所述的云服务层次包括laaS层云服务、paaS层云服务和SaaS层云服务;
用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块2的选择测试服务的子步骤;
用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块2的选择测试接口类型的子步骤;
管理控制步骤,该步骤包括的具体子步骤为:
包括测试结果输出显示模块2-1择测试接口类型模块1-3、测试执行模块2-2、测试结果清空模块2-3、测试结果分析模块2-4、测试停止模块2-5和测试继续执行模块2-6;
用于接收通信模块3发送的测试结果信息,并对测试结果进行输出显示的测试结果输出显示的子步骤;
用于向用户提供开始执行测试操作端口,接收测试停止模块2-5发送的停止测试命令和测试继续执行模块2-6的继续执行测试命令的测试执行子步骤;该步骤同时接收选择待测服务层次模块1-1、选择测试服务模块1-2和选择测试接口类型模块1-3所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块3发送至具体测试模块4;
用于向用户提供清空测试结果操作端口,同时向测试结果分析模块2-4和测试结果输出显示模块2-1发送结果清空命令的测试结果清空的子步骤;
用于向用户提供分析测试结果操作端口,接收通信模块3发送的测试结果信息,并根据用户的操作对测试结果进行分析的测试结果健壮性分析的的子步骤;
用于向用户提供控制测试停止的操作端口,同时向测试执行模块2-2发送测试停止命令,并经通信模块3向具体测试模块4发送测试停止命令的测试停止的测试执行的子步骤;
用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块3发送至具体测试模块4的测试继续执行的子步骤;
通信步骤;该步骤用于接收管理控制模块2发送的测试控制信息,并将接收的控制信息发送至具体测试模块4,同时接收具体测试模块4的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块2;
具体测试步骤,该步骤包括的具体子步骤为:
用于接收通信模块3发送的测试控制信息,并根据接收的信息中用户选择的云服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务健壮性测试,并将测试结果发送至通信模块3的IaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块3发送的控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务健壮性测试,并将测试结果发送至通信模块3的PaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块3发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层服务的健壮性测试,并将测试结果发送至通信模块3的SaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
具体实施方式五、本实施方式是对具体实施方式四所述的云服务健壮性测试方法的进一步说明,IaaS层云服务健壮性测试子步骤、PaaS层云服务健壮性测试的子步骤和SaaS层云服务健壮性测试的子步骤均包括:
用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析的接口分析的步骤;
用于列表描述接口分析模块中的接口参数,并在接口分析模块中的参数库中参数进行随机选择生成测试用例的测试用例生成的步骤;
用于对用户选择的具体云服务的接口调用方式进行测试用例的服务申请的服务调用的步骤;
用于采用测试端结果输出与云服务日志查看两种方式来回收测结果的测试结果回收的步骤,该步骤还根据测试结果分析模块2-4经通信模块3发送的控制信息进行健壮性评估,并将健壮性评估结构发送至通信模块3。
具体实施方式六、本实施方式是对具体实施方式五所述的云服务健壮性测试方法的进一步说明,用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析的接口分析的步骤还包括:
用于根据用户所选择的具体云服务,收集该云服务的接口信息,获得用户所选择的具体云服务的接口信息的接口的参数分析的步骤;
用于根据高覆盖率与合理性的原则对用户所选择的具体云服务进行接口参数数据类型定义,获得预定义参数库的参数预定义的步骤;所述高覆盖率是定义出的数据类型必须完全覆盖所有接口参数的类型;合理性是接口参数的数据类型分类合理,预定义的参数数据类型合理;
用于选择参数数据类型的边界值、空值、异常值和有效值加入到预定义后的参数类型的参数库中的参数库生成策略的步骤;
用于描述预先定义好参数数据类型每个接口的信息,将接口与其参数生成接口与参数列
表的测试用例随机生成的步骤
所述参数列表的格式为:
用于接口参数列表中查询是否有用户选择的测试接口类别描述信息,并根据用户选择接口类型进行接口类别匹配的服务调用的步骤;
若类别匹配,则说明该接口符合测试标准,若类别不匹配,该接口不在测试范围内,进行下一个接口的类别匹配直至匹配到接口信息后,针对其参数类型从其参数库中随机选择参数生成测试用例,其中测试用例以设置伪随机产生函数seed值的伪随机方式产生。
本发明对于云服务进行健壮性测试,其中主要选择三种云服务,即SPI服务模式(SaaS,PaaS,IaaS),虽然具体执行的健壮性测试由于三种服务的差异而有所不同,但其测试的指导思想是一致的,即从服务健壮性的定义入手,通过异常的输入来调用服务,观察服务的响应,根据各层不同的评价指标对实验结果进行失效率统计,在分析结果后,对其健壮性进行评价,在分析结果方面采用分类对比法,即将不同类别的接口测试结果比对或者不同层次的服务测试结果比对,同一服务的不同版本之间也可以进行结果比对,通过对比的结果得出针对其服务健壮性的评估,找到服务中存在的不健壮因素与薄弱环节。
自动化测试平台的搭建基于各层的健壮性测试之上,将各层的健壮性测试工具进行集成并实现界面化,优点是直观方便快捷,测试平台提供给用户的主要功能是选择测试的对象,即选择测试的云服务模式,选择具体的云服务,选择待测云服务接口类型等,并具备结果收集、结果显示与自动分析结果等功能。测试结果分析模块,收集测试结果并进行健壮性评估。测试结果一般包含两方面,一种是服务返回结果,另一种是服务日志结果。
首先用户选择界面用于与用户交互,用户可以选择待测云服务,管理控制模块将测试信息打包成消息通过通信模块作用于具体测试对象,并管理测试的控制逻辑,包括测试的开始与终止、结果清空与数据分析等,通信模块将测试控制信息发送给测试对象并将测试对象返回的测试结果输出到测试平台的相应控制界面。
选择测试对象模块向用户提供界面选择,接受用户对指定测试对象的选择,将其选择的消息发送至管理控制模块。选择测试对象模块中我们提供三种选择对象:待测云服务的层次选择、该层具体测试的云服务选择以及该云服务接口类型选择,其中,云服务接口类型选择又包括两个子方面:根据接口作用对象选择与接口功能选择。待测云服务的层次选择主要支持三种层次,即IaaS层、PaaS层与SaaS层,每一层的云服务目前只支持了有限几种,按照不同的分类思路将其接口分成不同的类别,用户可以选择具体测试的接口类型。
管理控制模块主要实现三个功能:
1.将选择测试对象模块中用户选择的测试信息打包成消息传送给通信模块,通过通信模块将对测试对象的控制信息传给具体测试目标。
2.将通信模块传回的测试对象测试结果数据流输出显示到界面相应控件。
3.控制测试流程,完成测试执行、测试中止、测试结果清空和测试结果分析等功能。
通讯模块主要负责消息的传输,将用户的测试对象信息与测试控制信息传递给测试对象的测试模块,并将其测试结果数据传回,显示到平台的相应控件中。因为可以网络调用云服务,所以不同云服务可以在不同的物理主机、不同的操作系统、不同的软件平台等进行其服务的调用或其健壮性测试,如可在Linux系统下通过perl脚本实现对CloudStack的健壮性测试,也可以通过eclipse JAVA编程实现对Hadoop的健壮性测试,测试模块的差异对健壮性测试集成增加了难度。
若所有的云服务测试模块均在JAVA环境下实现,测试平台的搭建会简单很多,由于大多数云服务提供的接口支持HTTP调用,所以JAVA环境下理论上可以实现大多数的服务调用,在同样的开发环境下,平台的搭建简单高效,只需要实现界面设计与添加事件触发调用的依赖包即可。若是需要集成其他类型跨操作平台的健壮性测试,从方便与效率的角度考虑,可以选择STAF自动化测试框架来实现。STAF是一个成熟高效跨平台且支持多语言的软件测试自动化框架,可复用性好,实现了对不同平台、不同语言间通信复杂性的封装,服务器端点是对等的,从一个端点可直接调用另一端点提供的服务。STAF的这种特性满足对屏蔽不同平台的健壮性测试模块的集成需求。
为实现测试的自动高效化,我们进行云服务健壮性测试的集成,搭建测试系统;如图1所示。
测试平台的具体工作流程分为以下几步:
1.用户选择待测云服务的层次、具体的云服务、服务待测接口的类别。
2.点击“测试开始”按钮,进行健壮性测试。
3.测试过程中可选择测试中止,若中止需要判断是否继续测试,若继续则可重新选择,否则可直接退出;若不执行中止测试持续进行直到结束。
4.测试结束后点“结果分析”按钮进行测试结果分析,输出至显示栏中。
5.若需要继续测试则重复1,若不需要则测试结束退出。
最终生成的测试平台JAVA界面如图2所示:其中选择服务层次、种类、接口对象以及接口功能是选择测试对象模块实现的,结果输出显示与测试开始、测试中止、结果清空及结果分析是管理控制模块实现,而控制信息流的发出与结果数据流的回收是由通信模块实现。
选择测试对象模块实现
选择测试对象模块给用户提供的选择包括:服务层次、服务种类、接口对象、接口功能。界面通过JAVA编程实现,界面元素与成员变量如表2:
表2选择测试对象模块界面元素
管理控制模块实现
管理控制模块在界面上主要实现的是测试流程的控制,即测试开始、中止、结果分析、清空几种控制作用,界面元素与变量声明如表3所示:
表3管理控制模块界面元素
管理控制流程分为以下几步:
1.待用户选择测试信息,Start按钮被触发,调用测试事件,进行测试。
2.测试过程中,若Stop按钮被触发则调用测试中止事件,测试中止并返回。
3.一次测试结束后若Analysis按钮触发则调用结果分析。
通信模块实现
一般来说由于测试平台在JAVA环境下搭建而成所以当服务测试也是JAVA实现的话其通信较为简单,通过添加包之间的依赖关系即可实现测试的简单调用和结果的返回,而跨平台的服务调用,如在JAVA下调用Linux下的测试模块,对通信的要求较高。跨平台的调用可以借鉴STAF实现,下表简单的介绍基于该框架下信息传输中基类部分成员参数及其说明,如表4所述:
表4基类成员参数与说明
类的成员部分函数列表如下表:
表5基类成员函数与功能说明
IaaS健壮性测试实现
IaaS层服务我们以CloudStack为例对其进行健壮性测试与评估。CloudStack是一个开源的云计算解决方案,用户以CloudStack为基础可以方便快捷的通过基础设施架构IaaS云服务。按照第三章介绍的云服务测试流程,从CloudStack的接口分析、用例生成、服务申请与结果分析四个方面对实现其健壮性测试进行说明;
CloudStack接口分析
CloudStack根据不同的帐户等级对API的访问权限有不同的限制,权限包括管理员权限、域管理员权限和用户权限,按照CloudStack版本的不同、用户权限的不同其接口也有不同,API手册中对于接口的信息描述中,接口输入包含了接口的输入参数、输入参数的描述、输入参数是否必填三类信息,接口输出包含了输出信息的名称、输出信息描述两类信息。在安装好管理服务器节点后,可以在如下配置文件找到系统支持的所有接口及对应权限:
接口定义在*commands*.properties文件,接口定义采用相同格式:
Command即命令,Class是处理请求命令的类,level用数字表示代表命令支持的运行级别。接口有权限级别有:admin:1,resource_domain_admin:2,domain_admin:4,user:8。如列出所有账号信息的命令listAccounts定义如下:
listAccounts是命令,com.cloud.api.commands是处理listAccounts命令的类,数字15(1&2&4&8)表示四种账户权限都可以访问此API。
CloudStack用例生成
CloudStack提供的接口数量庞大且部分接口参数众多,最重要的是接口参数有必需和可以为空两种状态,而CloudStack多半命令的参数中有可以为空的参数选项,如列出用户所有的虚拟机命令接口listVirtualMachines,其参数包括虚拟机ID(id)、虚拟机名字(name)、网络ID(networkid)和虚拟机状态(state)在内的共25个参数,而所有这些参数都是可以为空的,若对所有参数进行分类与预定义工作量过大,在此我们对CloudStack的接口与参数进行简化,对一些过于繁琐和复杂的可为空的接口参数,我们对其统一定义为OTHERS,并标识该参数可为空。在可以为空的OTHERS参数库中,我们为其定义了多种可能的参数情况,包括正常与异常的参数,如参数为空NULL、参数为字符串STRING、参数为ID格式、参数为PATH路径格式等。
下表6以较为简单的接口为例,说明其接口与参数对应表的设置。
用户API login(Username,Password,domain,domainid),功能是实现用户的登陆。
表6 CloudStack接口参数表
接口参数表是在第三章介绍的表格属性下对每个接口进行的接口描述,描述信息包括接口类型(类型分为对象类型与功能类型两类)、接口调用方式、接口返回消息类型、接口名、接口参数以及参数是否可为空这几种接口属性。每次调用login接口时,会在其三种参数类型库Username、Password、OTHERS中随机选择一种参数作为login接口的相应参数,以此生成测试用例。
CloudStack服务调用
服务调用方法有以下三种:
1.开放API服务器端口
2.在全局配置中打开integration.api.port设置成固定值如8096等,之后可通过Http工具访问,在全局配置打开API服务端口后系统没有认证鉴权的步骤,以listUsers命令为例,选用Linux常用工具curl进行服务调用,
3.API key认证调用
首先管理员给调用者分配API Key和Security Key,调用者以哈希算法对API Key与Command String加密成API Request即Base URL+API Path+Command String+Signature。认证中我们利用perl脚本生成签名。脚本参数为:-a:API Key,-s:Security Key,-u:command,脚本加密生成签名部分如下:
my$command=$opt_u;
my$api_key=$opt_a;
my$secret_key=$opt_s;
my$digest=hmac_sha1($output,$secret_key);
my$base64_encoded=encode_base64($digest);chomp($base64_encoded;
my$url_encoded=$uri->encode($base64_encoded,1);
my$url=$site.$command.″&apikey="$api_key"&signature="$url_encoded;
4.Session认证调用
首先通过processRequest做session认证检查,之后调用verifyRequest来判定请求参数是否合法,若是则调用handleRequest处理请求。
PaaS健壮性测试实现
PaaS使用的技术主要包括并行处理、分布式缓存和多租户等,其中为了处理海量的数据而设计的并行处理技术中,Google的MapReduce是这方面的代表之作,而实现了HDFS文件系统和MapRecue的Hadoop,正在被越来越多的PaaS层云服务使用到。从测试的方便与覆盖范围角度考虑,在这一层我们选择Hadoop作为测试对象。虽然严格来讲Hadoop并不是PaaS服务,但它为很多PaaS服务提供技术支持,而且Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序,在这一角度看,利用Hadoop也可以搭建PaaS服务,同时,各类不同PaaS服务由于提供商的不同其接口标准较难统一,且选择单一服务没有较强的代表性,所以我们选择Hadoop作为PaaS层的测试对象。
Hadoop接口分析
Hadoop为用户提供了两种类型的API:命令行接口与Web API接口。所有的Hadoop命令均由bin/hadoop脚本引发。不指定参数运行hadoop脚本会打印所有命令的描述。Hadoop集群用户的常用命令如表7:
表7 Hadoop集群用户的常用命令
Hadoop集群管理员的常用命令如表8:
表8 Hadoop集群管理员的常用命令
Hadoop提供的web API主要分为下面几种包,如表9
表9 Hadoop web API
Hadoop用例生成
以下重点通过Web API进行健壮性测试。接口返回结果根据功能不同而不同,以FileSystem.existsPath p为例,该接口的返回类型为布尔型,该接口的功能是文件存在返回为真不存在返回为假,下面是其接口参数对应表,如表10:
表10 Hadoop接口参数对应表
FileSystem.exists(Path f)接口的对象类型为FS文件类接口,功能类型为Exist是否存在类接口,每次调用该接口时,会自动匹配其接口参数,对应PATH文件路径参数库中随机选择一个参数值作为exists()的参数,以此生成测试用例。
Hadoop服务调用
Hadoop提供两种接口,所以也有两种方式分别调用其服务。针对命令行接口,所有的Hadoop命令均由bin/hadoop脚本引发,调用时需要进入HADOOP_HOME目录,然后执行sh bin/hadoop命令,即可进行接口调用。针对web API接口,我们采用JAVA编程实现其接口的调用与服务的访问。
Hadoop的服务调用方式我们以FS相关接口来进行说明,FS类接口操作的程序基本框架为:
我们以FS下具体的FileSystem.mkdirs(Path p)接口为例服务调用程序如下:
SaaS健壮性测试实现
SaaS云服务我们选择经典的Salesforce CRM作为测试对象。Salesforce是全球按需CRM解决方案的领导者。
Salesforce CRM接口分析
Saleforce CRM提供了两种接口类型,Web Services API和Metadata API。Web ServicesAPI包含创建、更新或删除帐目记录等功能,Metadata API用于管理和建立自定义工具。我们重点利用Web Services API进行测试。Saleforce CRM为用户提供WSDL文件,WSDL即Web Service描叙语言,主要是对Web Service的接口信息进行描述。描述的接口信息包括:接口名、输入参数、输出参数与可能抛出的异常。
Salesforce CRM用例生成
根据WSDL文件描述的接口信息,我们首先对web服务接口进行接口与参数对应的描述。同样以login接口为例,接口与参数对应描述如表:
表11 Salesforce接口与参数对应表
每次调用该接口时会按照其参数类型,分别到username与password参数库中随机选择一个参数值作为本次login调用的输入参数,以此作为一个测试用例。
Salesforce CRM服务调用
我们选择JAVA语言来调用Salesforce SOAP API,
在登陆Salesforce成功后即可进行正常的服务调用。其接口调用方法与Hadoop web API调用方法类似,根据WSDL文件得到具体API的输入参数与输出参数后即可进行该API的调用。
调用config.setUsername()与config.setPassword()设置了登陆参数,其中PASSWORD是用户的PASSWORD&Security Token,配置好登陆参数后,进行newConnection(config)请求建立一个服务新连接,若连接成功,则可正常的调用其他服务接口,如getUsername()、getSessionID()等,若调用不成功则会抛出异常。
Claims (6)
1.一种云服务健壮性测试系统,其特征在于,它包括用户选择模块(1)、管理控制模块(2)、通信模块(3)和具体测试模块(4);
用户选择模块(1)包括选择待测服务层次模块(1-1)、选择测试服务模块(1-2)和选择测试接口类型模块(1-3);
选择待测服务层次模块(1-1)用于为用户提供云服务层次选择端口,同时向管理控制模块(2)发送用户所选择的服务层次信息;云服务层次包括laaS层、paaS层和SaaS层;
选择测试服务模块(1-2)用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块(2);
择测试接口类型模块(1-3)用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块(2);
管理控制模块(2)包括测试结果输出显示模块(2-1)、测试执行模块(2-2)、测试结果清空模块(2-3)、测试结果分析模块(2-4)、测试停止模块(2-5)和测试继续执行模块(2-6);
测试结果输出显示模块(2-1)用于接收通信模块(3)发送的测试结果信息,并对测试结果进行输出显示;
测试执行模块(2-2)用于向用户提供开始执行测试操作端口,接收选择待测服务层次模块(1-1)、选择测试服务模块(1-2)和选择测试接口类型模块(1-3)所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块(3)发送至具体测试模块(4);
测试结果清空模块(2-3)用于向用户提供清空测试结果操作端口,同时向测试结果分析模块(2-4)和测试结果输出显示模块(2-1)发送结果清空命令;
测试结果分析模块(2-4)用于向用户提供分析测试结果操作端口,接收通信模块(3)发送的测试结果信息,并根据用户的操作对测试结果进行健壮性分析;
测试停止模块(2-5)用于向用户提供控制测试停止的操作端口,同时向测试执行模块(2-2)发送测试停止命令,并经通信模块(3)向具体测试模块(4)发送测试停止命令;
测试继续执行模块(2-6)用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块(3)发送至具体测试模块(4);
通信模块(3)用于接收管理控制模块(2)发送的测试控制信息,并将接收的控制信息发送至具体测试模块(4),同时接收具体测试模块(4)的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块(2);
具体测试模块(4)包括IaaS层云服务健壮性测试模块(4-1)、PaaS层云服务健壮性测试模块(4-2)和SaaS层云服务健壮性测试模块(4-2);
IaaS层云服务健壮性测试模块(4-1)用于接收通信模块(3)发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务的健壮性测试,并将测试结果进行发送至通信模块(3),并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
PaaS层云服务健壮性测试模块(4-2)用于接收通信模块(3)发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务的健壮性测试,并将测试结果发送至通信模块(3),并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
SaaS层云服务健壮性测试模块(4-2)用于接收通信模块(3)发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层云服务的健壮性测试,并将测试结果发送至通信模块(3),并对测试结构进行存储,同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
2.根据权利要求1所述的一种云服务健壮性测试系统,其特征在于,IaaS层云服务健壮性测试模块(4-1)、PaaS层云服务健壮性测试模块(4-2)和SaaS层云服务健壮性测试模块(4-2)均包括服务接口分析模块、测试用例生成模块、服务调用模块和测试结果分析模块;
接口分析模块用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析;
测试用例生成模块用于列表描述接口分析模块中的接口参数,并在接口分析模块中的参数库中参数进行随机选择生成测试用例;
服务调用模块用于对用户选择的具体云服务的接口调用方式进行测试用例的服务申请;
测试结果回收模块用于采用测试端结果输出与云服务日志查看两种方式来回收测结果,并根据测试结果分析模块(2-4)经通信模块(3)发送的控制信息进行健壮性评估,并将健壮性评估结构发送至通信模块(3)。
3.根据权利要求2所述的一种云服务健壮性测试系统,其特征在于,接口分析模块还包括:接口的参数分析模块,参数预定义模块、参数库生成策略模块和分类并生成参数库模块;
接口的参数分析模块用于根据用户所选择的具体云服务,收集改云服务的接口信息,获得用户所选择的具体云服务的接口信息;
参数预定义模块根据高覆盖率与合理性的原则对用户所选择的具体云服务进行接口参数数据类型定义,获得预定义参数库;所述高覆盖率是定义出的数据类型必须完全覆盖所有接口参数的类型;合理性是接口参数的数据类型分类合理,预定义的参数数据类型合理;
参数库生成策略模块用于选择参数数据类型的边界值、空值、异常值和有效值加入到预定义后的参数类型的参数库中;
测试用例随机生成模块用于描述预先定义好参数数据类型每个接口的信息,将接口与其参数生成接口与参数列表;
参数列表的格式为:
服务调用模块用于接口参数列表中查询是否有用户选择的测试接口类别描述信息,并根据用户选择接口类型进行接口类别匹配;
若类别匹配,则说明该接口符合测试标准,若类别不匹配该接口不在测试范围内,进行下一个接口的类别匹配直至匹配到接口信息后,针对其参数类型从其参数库中随机选择参数生成测试用例。
4.云服务健壮性测试方法,其特征在于,该方法的具体步骤为:
用户选择步骤;该步骤包括的具体子步骤为:
用于为用户提供云服务层次选择端口,同时向管理控制模块(2)发送用户所选择的服务层次信息选择待测服务层次的子步骤;该步骤中所述的云服务层次包括laaS层云服务、paaS层云服务和SaaS层云服务;
用于向用户提供云服务的类型的选择端口,并将用户所选择的云服务类型发送至管理控制模块(2)的选择测试服务的子步骤;
用于向用户提供云测试接口类型的选择端口,并将用户所选择的云服务测试接口类型发送至管理控制模块(2)的选择测试接口类型的子步骤;
管理控制步骤,该步骤包括的具体子步骤为:
包括测试结果输出显示模块(2-1)择测试接口类型模块(1-3)、测试执行模块(2-2)、测试结果清空模块(2-3)、测试结果分析模块(2-4)、测试停止模块(2-5)和测试继续执行模块(2-6);
用于接收通信模块(3)发送的测试结果信息,并对测试结果进行输出显示的测试结果输出显示的子步骤;
用于向用户提供开始执行测试操作端口,接收测试停止模块(2-5)发送的停止测试命令和测试继续执行模块(2-6)的继续执行测试命令的测试执行子步骤;该步骤同时接收选择待测服务层次模块(1-1)、选择测试服务模块(1-2)和选择测试接口类型模块(1-3)所发送的用户选择信息,并将用户选择的信息进行打包后经通信模块(3)发送至具体测试模块(4);
用于向用户提供清空测试结果操作端口,同时向测试结果分析模块(2-4)和测试结果输出显示模块(2-1)发送结果清空命令的测试结果清空的子步骤;
用于向用户提供分析测试结果操作端口,接收通信模块(3)发送的测试结果信息,并根据用户的操作对测试结果进行分析的测试结果健壮性分析的的子步骤;
用于向用户提供控制测试停止的操作端口,同时向测试执行模块(2-2)发送测试停止命令,并经通信模块(3)向具体测试模块(4)发送测试停止命令的测试停止的测试执行的子步骤;
用于向用户提供控制测试继续执行的操作端口,并将继续执行操作命令通过通信模块(3)发送至具体测试模块(4)的测试继续执行的子步骤;
通信步骤;该步骤用于接收管理控制模块(2)发送的测试控制信息,并将接收的控制信息发送至具体测试模块(4),同时接收具体测试模块(4)的发送的测试结果信号,并将接收的测试结果信号发送至管理控制模块(2);
具体测试步骤,该步骤包括的具体子步骤为:
用于接收通信模块(3)发送的测试控制信息,并根据接收的信息中用户选择的云服务是否属于IaaS层的服务,若是,则根据用户的选择信息做IaaS层云服务健壮性测试,并将测试结果发送至通信模块(3)的IaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块(3)发送的控制信息,并根据接收的信息判断用户所选择的测试服务是否属于PaaS层的服务,若是,则根据用户的选择信息做PaaS层云服务健壮性测试,并将测试结果发送至通信模块(3)的PaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作;
用于接收通信模块(3)发送的测试控制信息,并根据接收的信息判断用户所选择的测试服务是否属于SaaS层的服务,若是,则根据用户的选择信息做SaaS层服务的健壮性测试,并将测试结果发送至通信模块(3)的SaaS层云服务健壮性测试的子步骤;该步骤同时接收通信模块发送的测试执行、测试结果清空、测试结果分析、测试停止或测试继续执行控制命令执行相应的操作。
5.根据权利要求4所述的云服务健壮性测试方法,其特征在于,IaaS层云服务健壮性测试子步骤、PaaS层云服务健壮性测试的子步骤和SaaS层云服务健壮性测试的子步骤均包括:
用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析的接口分析的步骤;
用于列表描述接口分析模块中的接口参数,并在接口分析模块中的参数库中参数进行随机选择生成测试用例的测试用例生成的步骤;
用于对用户选择的具体云服务的接口调用方式进行测试用例的服务申请的服务调用的步骤;
用于采用测试端结果输出与云服务日志查看两种方式来回收测结果的测试结果回收的步骤,该步骤还根据测试结果分析模块(2-4)经通信模块(3)发送的控制信息进行健壮性评估,并将健壮性评估结构发送至通信模块(3)。
6.根据权利要求5所述的云服务健壮性测试方法,其特征在于,用于接收通信模块发送的用户选择的信息包选择信息包和控制信息,并对用户选择的云服务提供的接口进行分析的接口分析的步骤还包括:
用于根据用户所选择的具体云服务,收集该云服务的接口信息,获得用户所选择的具体云服务的接口信息的接口的参数分析的步骤;
用于根据高覆盖率与合理性的原则对用户所选择的具体云服务进行接口参数数据类型定义,获得预定义参数库的参数预定义的步骤;所述高覆盖率是定义出的数据类型必须完全覆盖所有接口参数的类型;合理性是接口参数的数据类型分类合理,预定义的参数数据类型合理;
用于选择参数数据类型的边界值、空值、异常值和有效值加入到预定义后的参数类型的参数库中的参数库生成策略的步骤;
用于描述预先定义好参数数据类型每个接口的信息,将接口与其参数生成接口与参数列表的测试用例随机生成的步骤;
所述参数列表的格式为:
用于接口参数列表中查询是否有用户选择的测试接口类别描述信息,并根据用户选择接口类型进行接口类别匹配的服务调用的步骤;
若类别匹配,则说明该接口符合测试标准,若类别不匹配,该接口不在测试范围内,进行下一个接口的类别匹配直至匹配到接口信息后,针对其参数类型从其参数库中随机选择参数生成测试用例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620689.8A CN104298604B (zh) | 2014-11-06 | 2014-11-06 | 云服务健壮性测试系统及测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410620689.8A CN104298604B (zh) | 2014-11-06 | 2014-11-06 | 云服务健壮性测试系统及测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104298604A true CN104298604A (zh) | 2015-01-21 |
CN104298604B CN104298604B (zh) | 2017-06-20 |
Family
ID=52318339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410620689.8A Active CN104298604B (zh) | 2014-11-06 | 2014-11-06 | 云服务健壮性测试系统及测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104298604B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105357067A (zh) * | 2015-10-14 | 2016-02-24 | 广州杰赛科技股份有限公司 | 一种云平台的测试方法及系统 |
CN105955885A (zh) * | 2016-04-28 | 2016-09-21 | 中国农业银行股份有限公司 | 一种工作流自动化测试系统及方法 |
CN106294033A (zh) * | 2015-05-13 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种多机房缓存同步功能的测试方法及装置 |
CN107203473A (zh) * | 2017-05-26 | 2017-09-26 | 四川长虹电器股份有限公司 | 自动扩展接口测试用例的自动化测试系统与方法 |
CN107609026A (zh) * | 2017-08-09 | 2018-01-19 | 中南大学 | 一种数据密集型应用集成测试方法及系统 |
WO2018014580A1 (zh) * | 2016-07-20 | 2018-01-25 | 平安科技(深圳)有限公司 | 数据接口测试方法、装置、服务器和存储介质 |
CN107766248A (zh) * | 2017-10-20 | 2018-03-06 | 国云科技股份有限公司 | 一种快速验证云计算iaas平台搭建情况的方法 |
CN108133021A (zh) * | 2017-12-26 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种数据异常检测方法及装置 |
CN108446220A (zh) * | 2018-03-02 | 2018-08-24 | 国网吉林省电力有限公司信息通信公司 | 一种测试用例的生成方法和装置 |
CN109962820A (zh) * | 2017-12-22 | 2019-07-02 | 中移(苏州)软件技术有限公司 | 一种云平台的检测方法和检测平台 |
CN111949525A (zh) * | 2020-08-04 | 2020-11-17 | 上海金仕达软件科技有限公司 | 基于ai的健壮性智能测试系统及其测试方法 |
CN112256572A (zh) * | 2020-10-21 | 2021-01-22 | 海光信息技术股份有限公司 | 随机测试用例生成方法与装置以及电子设备和存储介质 |
CN113360825A (zh) * | 2021-07-26 | 2021-09-07 | 深圳平安智汇企业信息管理有限公司 | WebUI自动化测试方法、装置、电子设备及存储介质 |
US11169905B2 (en) | 2018-10-30 | 2021-11-09 | International Business Machines Corporation | Testing an online system for service oriented architecture (SOA) services |
CN116846782A (zh) * | 2023-08-31 | 2023-10-03 | 北京仁科互动网络技术有限公司 | Saas crm系统移动端的业务异常观测方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736921A (zh) * | 2012-06-18 | 2012-10-17 | 阿坝师范高等专科学校 | 一种面向云的软件自动生成方法 |
CN103997515A (zh) * | 2014-04-25 | 2014-08-20 | 西安电子科技大学昆山创新研究院 | 一种分布式云中计算中心选择方法及其应用 |
US20140281741A1 (en) * | 2013-03-15 | 2014-09-18 | Khushboo Shah Bohacek | Method, user interface and apparatus for cloud service confidence level generation and display |
-
2014
- 2014-11-06 CN CN201410620689.8A patent/CN104298604B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102736921A (zh) * | 2012-06-18 | 2012-10-17 | 阿坝师范高等专科学校 | 一种面向云的软件自动生成方法 |
US20140281741A1 (en) * | 2013-03-15 | 2014-09-18 | Khushboo Shah Bohacek | Method, user interface and apparatus for cloud service confidence level generation and display |
CN103997515A (zh) * | 2014-04-25 | 2014-08-20 | 西安电子科技大学昆山创新研究院 | 一种分布式云中计算中心选择方法及其应用 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294033A (zh) * | 2015-05-13 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种多机房缓存同步功能的测试方法及装置 |
CN105357067A (zh) * | 2015-10-14 | 2016-02-24 | 广州杰赛科技股份有限公司 | 一种云平台的测试方法及系统 |
CN105955885A (zh) * | 2016-04-28 | 2016-09-21 | 中国农业银行股份有限公司 | 一种工作流自动化测试系统及方法 |
CN105955885B (zh) * | 2016-04-28 | 2018-06-29 | 中国农业银行股份有限公司 | 一种工作流自动化测试系统及方法 |
WO2018014580A1 (zh) * | 2016-07-20 | 2018-01-25 | 平安科技(深圳)有限公司 | 数据接口测试方法、装置、服务器和存储介质 |
CN107203473A (zh) * | 2017-05-26 | 2017-09-26 | 四川长虹电器股份有限公司 | 自动扩展接口测试用例的自动化测试系统与方法 |
CN107609026A (zh) * | 2017-08-09 | 2018-01-19 | 中南大学 | 一种数据密集型应用集成测试方法及系统 |
CN107609026B (zh) * | 2017-08-09 | 2020-11-06 | 中南大学 | 一种数据密集型应用集成测试方法及系统 |
CN107766248A (zh) * | 2017-10-20 | 2018-03-06 | 国云科技股份有限公司 | 一种快速验证云计算iaas平台搭建情况的方法 |
CN109962820A (zh) * | 2017-12-22 | 2019-07-02 | 中移(苏州)软件技术有限公司 | 一种云平台的检测方法和检测平台 |
CN109962820B (zh) * | 2017-12-22 | 2021-03-09 | 中移(苏州)软件技术有限公司 | 一种云平台的检测方法和检测平台 |
CN108133021A (zh) * | 2017-12-26 | 2018-06-08 | 北京奇艺世纪科技有限公司 | 一种数据异常检测方法及装置 |
CN108446220A (zh) * | 2018-03-02 | 2018-08-24 | 国网吉林省电力有限公司信息通信公司 | 一种测试用例的生成方法和装置 |
US11169905B2 (en) | 2018-10-30 | 2021-11-09 | International Business Machines Corporation | Testing an online system for service oriented architecture (SOA) services |
CN111949525A (zh) * | 2020-08-04 | 2020-11-17 | 上海金仕达软件科技有限公司 | 基于ai的健壮性智能测试系统及其测试方法 |
CN112256572A (zh) * | 2020-10-21 | 2021-01-22 | 海光信息技术股份有限公司 | 随机测试用例生成方法与装置以及电子设备和存储介质 |
CN112256572B (zh) * | 2020-10-21 | 2023-11-24 | 海光信息技术股份有限公司 | 随机测试用例生成方法与装置以及电子设备和存储介质 |
CN113360825A (zh) * | 2021-07-26 | 2021-09-07 | 深圳平安智汇企业信息管理有限公司 | WebUI自动化测试方法、装置、电子设备及存储介质 |
CN116846782A (zh) * | 2023-08-31 | 2023-10-03 | 北京仁科互动网络技术有限公司 | Saas crm系统移动端的业务异常观测方法和装置 |
CN116846782B (zh) * | 2023-08-31 | 2024-01-02 | 北京仁科互动网络技术有限公司 | Saas crm系统移动端的业务异常观测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104298604B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104298604A (zh) | 云服务健壮性测试系统及测试方法 | |
US10606565B2 (en) | Visual devops systems and methods | |
US10861013B2 (en) | Containerization of network services | |
US11372997B2 (en) | Automatic audit logging of events in software applications performing regulatory workloads | |
US10089082B2 (en) | Visual devops systems and methods | |
US10031735B2 (en) | Secure deployment of applications in a cloud computing platform | |
US9992166B2 (en) | Hierarchical rule development and binding for web application server firewall | |
KR20190082926A (ko) | 메시징 프로토콜 통신 관리 | |
Moscato et al. | Model-driven engineering of cloud components in metamorp (h) osy | |
Calcote et al. | Istio: Up and running: Using a service mesh to connect, secure, control, and observe | |
CN113055492A (zh) | 服务灰度链路的控制方法、装置、计算机设备和存储介质 | |
US20240054366A1 (en) | AI Application Deployment Method and Related Platform, Cluster, Medium, and Program Product | |
Scholl et al. | Cloud native: using containers, functions, and data to build next-generation applications | |
CN111385124A (zh) | 一种网关业务实现方法、控制装置和网关 | |
US11178252B1 (en) | System and method for intelligent distribution of integration artifacts and runtime requests across geographic regions | |
CN116057512A (zh) | 智能分布式追踪上下文注入 | |
CN115118705A (zh) | 一种基于微服务的工业边缘管控平台 | |
CN114254606A (zh) | 微服务框架模型 | |
Sanderson | Programming Google App Engine with Python: Build and Run Scalable Python Apps on Google's Infrastructure | |
CN113296987B (zh) | 调用模块的接口调用方法、装置、计算机设备及存储介质 | |
US20220382670A1 (en) | Test space sampling for model-based biased random system test through rest api | |
FR3105847A1 (fr) | Procede et systeme de gestion des flux de donnees pour la gouvernance unifiee d’une pluralite de solutions de calculs intensifs | |
Raghuramu et al. | Metered boot: trusted framework for application usage rights management in virtualized ecosystems | |
US20230362266A1 (en) | System and method for determination and use of workflow characteristics with an integration cloud service | |
FR3063101A1 (fr) | Architecture d'appareil pour l'exploration, la maintenance et la production de puits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |