软件测试的方法、设备及系统的制作方法

文档序号:6548413阅读:187来源:国知局
软件测试的方法、设备及系统的制作方法
【专利摘要】本发明公开了一种软件测试的方法、设备及系统,属于软件测试【技术领域】。所述方法包括:根据用户数量确定各个测试设备的测试执行器数量,并形成各个测试设备对应的ID组;将测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令;接收并分析各个测试设备返回的执行结果。本发明通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
【专利说明】软件测试的方法、设备及系统
【技术领域】
[0001]本发明涉及软件测试【技术领域】,特别涉及一种软件测试的方法、设备及系统。
【背景技术】
[0002]软件测试是模拟的软件应用的真实环境,并在模拟的真实环境中对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试过程时所模拟的真实环境与软件应用的真实环境越相似,越能发现软件在实际应用中出现的程序错误,得到的软件测试结果越能准确的衡量软件的质量。因此,软件测试的方法,是保证软件测试结果能准确的衡量软件质量的关键。
[0003]目前,软件测试的方法为:获取测试设备对应的测试脚本,该测试脚本是按测试内容的测试先后顺序创建的,测试内容是根据被测试系统的真实应用环境确定的;测试设备以被测试系统的一个用户的身份按照被测试系统的协议和应用程序编程接口访问被测试系统,依次执行测试脚本中的测试内容对被测试系统进行测试。如果需要进行多用户同时操作的测试,则根据用户数量n,配置η台相同的测试设备,且将测试脚本复制η份,使每台测试设备均对应一份测试脚本,η台测试设备同时执行各自的测试脚本对被测试系统进行测试。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]对于需要进行多用户同时操作的测试,则需要配置数量与同时操作的用户数量相同的多台相同的测试设备,增加了测试设备的数量,提升了软件测试的成本,提高了软件测试的实现复杂度。

【发明内容】

[0006]为了解决现有技术的问题,本发明实施例提供了一种软件测试的方法、设备及系统。所述技术方案如下:
[0007]第一方面,提供了一种软件测试的方法,所述方法包括:
[0008]获取测试脚本,所述测试脚本至少包含测试操作的用户数量及至少一条测试指令;
[0009]根据所述用户数量确定各个测试设备的测试执行器数量,并为各个测试设备分配测试执行器数量个不同的ID(Identity,标识),形成各个测试设备对应的ID组;
[0010]将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取所述测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个ID ;[0011 ] 将所述测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果;
[0012]接收并分析各个测试设备返回的执行结果,得到测试结果。
[0013]结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述用户数量确定各个测试设备的测试执行器数量,包括:[0014]获取测试设备的数量;
[0015]将所述用户数量与所述测试设备的数量的商进行下取整的结果作为第一数量,并将所述第一数量与所述测试设备的数量的积作为第二数量;
[0016]确定所述用户数量与所述第二数量是否相同;
[0017]如果所述用户数量与所述第二数量相同,则将所述第一数量作为各个测试设备的测试执行器数量。
[0018]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述确定所述用户数量与所述第二数量是否相同之后,还包括:
[0019]如果所述用户数量与所述第二数量不相同,则将所述用户数量与所述第二数量的差作为第三数量;
[0020]从所述测试设备中选择所述第三数量个测试设备,将所述第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量,并将所述第一数量作为未选择的各个测试设备的测试执行器数量。
[0021]第二方面,提供了一种软件测试的设备,所述设备包括:
[0022]获取模块,用于获取测试脚本,所述测试脚本至少包含测试操作的用户数量及至少一条测试指令;
[0023]确定模块,用于根据所述用户数量确定各个测试设备的测试执行器数量;
[0024]分配模块,用于为各个测试设备分配测试执行器数量个不同的标识ID,形成各个测试设备对应的ID组;
[0025]发送模块,用于将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取所述测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个ID ;
[0026]分发模块,用于将所述测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果;
[0027]分析模块,用于接收并分析各个测试设备返回的执行结果,得到测试结果。
[0028]结合第二方面,在第二方面的第一种可能的实现方式中,所述确定模块,包括:
[0029]获取单元,用于获取测试设备的数量;
[0030]第一确定单元,用于将所述用户数量与所述获取设备获取的测试设备的数量的商进行下取整的结果作为第一数量;
[0031]第二确定单元,用于将所述第一确定单元确定的第一数量与所述获取单元获取的测试设备的数量的积作为第二数量;
[0032]第三确定单元,用于确定所述用户数量与所述第二确定单元确定的第二数量是否相同;
[0033]第四确定单元,用于当所述第三确定单元确定所述用户数量与所述第二数量相同,则将所述第一数量作为各个测试设备的测试执行器数量。
[0034]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述确定模块,还包括:
[0035]第五确定单元,用于当所述用户数量与所述第二数量不相同时,将所述用户数量与所述第二数量的差作为第三数量;[0036]选择单元,用于从所述测试设备中选择所述第三数量个测试设备;
[0037]第六确定单元,用于将所述第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量;
[0038]第七确定单元,用于将所述第一数量作为未选择的各个测试设备的测试执行器数量。
[0039]第三方面,提供了一种软件测试的方法,所述方法包括:
[0040]接收测试控制设备发送的测试执行器数量及ID组;
[0041 ] 获取所述测试执行器数量个测试执行器;
[0042]为每个测试执行器分配一个所述ID组中的ID ;
[0043]接收所述测试控制设备分发的测试指令,并将所述测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果;
[0044]获取各个测试执行器返回的执行结果,并将执行结果返回给所述测试控制设备。
[0045]结合第三方面,在第三方面的第一种可能的实现方式中,所述获取所述测试执行器数量个测试执行器,包括:
[0046]获取测试执行器的配置,根据所述配置获取所述测试执行器数量个测试执行器。
[0047]第四方面,提供了一种软件测试的设备,所述设备包括:
[0048]第一接收模块,用于接收测试控制设备发送的测试执行器数量及ID组;
[0049]第一获取模块,用于获取所述测试执行器数量个测试执行器;
[0050]分配模块,用于为每个测试执行器分配一个所述ID组中的ID ;
[0051]第二接收模块,用于接收所述测试控制设备分发的测试指令;
[0052]分发模块,用于将所述第二接收模块接收到的测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果;
[0053]第二获取模块,用于获取各个测试执行器返回的执行结果;
[0054]发送模块,用于将所述第二获取模块获取到的执行结果返回给所述测试控制设备。
[0055]结合第四方面,在第四方面的第一种可能的实现方式中,所述第一获取模块,用于获取测试执行器的配置,根据所述配置获取所述测试执行器数量个测试执行器。
[0056]第五方面,提供了一种软件测试的系统,所述系统包括:一个测试控制设备和至少一个测试设备;
[0057]所述测试控制设备,如第二方面所述的软件测试的设备;
[0058]所述测试设备,如第四方面所述的软件测试的设备。
[0059]本发明实施例提供的技术方案带来的有益效果是:
[0060]通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
【专利附图】

【附图说明】
[0061]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0062]图1是本发明实施例提供的软件测试的方法的实施环境示意图;
[0063]图2是本发明实施例一提供的一种软件测试的方法流程图;
[0064]图3是本发明实施例一提供的另一种软件测试的方法流程图;
[0065]图4是本发明实施例二提供的一种软件测试的方法流程图;
[0066]图5是本发明实施例三提供的一种软件测试的设备结构示意图;
[0067]图6是本发明实施例三提供的一种确定模块的结构示意图;
[0068]图7是本发明实施例三提供的另一种确定模块的结构示意图;
[0069]图8是本发明实施例四提供的一种软件测试的设备结构示意图;
[0070]图9是本发明实施例五提供的一种软件测试的系统结构示意图。
【具体实施方式】
[0071]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0072]本发明实施例提供了 一种软件测试的方法,请参考图1,其展示出了本发明实施例提供的软件测试的方法所涉及的实施环境的结构示意图。该实施环境包括:测试控制设备101、测试设备102及被测试设备103。
[0073]其中,测试控制设备101上运行有下述实施例三所述的软件测试的设备。另外,该测试控制设备101可以是服务器,用于与被测试设备103及测试设备102结合来为用户提供软件测试的服务。
[0074]测试设备102上运行有如下面实施例四所述的软件测试的设备。另外,该测试设备102可以是服务器,且测试设备102包含测试执行器。测试设备102在接收到测试控制设备101分发的测试指令后,通过该测试执行器访问被测试设备103并执行测试指令,以为用户提供软件测试的服务。
[0075]被测试设备103可以是运行有被测试系统的服务器。
[0076]上述测试控制设备101与测试设备102之间,测试设备102与被测试设备103之间均可以通过无线网络或者有线网络进行通信。
[0077]实施例一
[0078]结合上述实施环境,本实施例提供了一种软件测试方法,参见图2,本实施例提供的方法流程具体如下:
[0079]201:获取测试脚本,测试脚本至少包含测试操作的用户数量及至少一条测试指令;
[0080]202:根据用户数量确定各个测试设备的测试执行器数量,并为各个测试设备分配测试执行器数量个不同的ID,形成各个测试设备对应的ID组;
[0081]进一步地,根据用户数量确定各个测试设备的测试执行器数量,包括:
[0082]获取测试设备的数量;
[0083]将用户数量与测试设备的数量的商进行下取整的结果作为第一数量,并将第一数量与测试设备的数量的积作为第二数量;
[0084]确定用户数量与第二数量是否相同;
[0085]如果用户数量与第二数量相同,则将第一数量作为各个测试设备的测试执行器数量。
[0086]进一步地,确定用户数量与第二数量是否相同之后,还包括:
[0087]如果用户数量与第二数量不相同,则将用户数量与第二数量的差作为第三数量;
[0088]从测试设备中选择第三数量个测试设备,将第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量,并将第一数量作为未选择的各个测试设备的测试执行器数量。
[0089]203:将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个ID ;
[0090]204:将测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果;
[0091]205:接收并分析各个测试设备返回的执行结果,得到测试结果。
[0092]本实施例还提供了另一种软件测试方法,参见图3,本实施例提供的方法流程具体如下:
[0093]301:接收测试控制设备发送的测试执行器数量及ID组;
[0094]302:获取测试执行器数量个测试执行器;
[0095]进一步地,获取测试执行器数量个测试执行器,包括:
[0096]获取测试执行器的配置,根据配置获取测试执行器数量个测试执行器。
[0097]303:为每个测试执行器分配一个ID组中的ID ;
[0098]304:接收测试控制设备分发的测试指令,并将测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果;
[0099]305:获取各个测试执行器返回的执行结果,并将执行结果返回给测试控制设备。
[0100]本发明实施例提供的方法,通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
[0101]为了更加清楚地阐述上述实施例提供的一种软件测试的方法,结合上述实施例的内容,以如下实施例二为例,对一种软件测试的方法进行详细说明,详见如下实施例二:
[0102]实施例二
[0103]本发明实施例提供了一种软件测试的方法,为了便于理解,结合上述实施例一的内容,以测试控制设备为服务器A,测试设备为2个服务器,分别是服务器BI和服务器B2,测试脚本I中包含三条测试指令,分别是指令Cl:往缓存添加信息A、指令C2:缓存读取信息A和指令C3:以顺序执行的方式执行指令C2为例,对本实施例提供的方法进行详细地举例说明。参见图4,本实施例提供的方法流程包括:
[0104]401:测试控制设备获取测试脚本;
[0105]其中,测试脚本至少包含测试操作的用户数量及至少一条测试指令。[0106]本实施例不对测试控制设备获取测试脚本的具体方法进行限定。包括但不限于:如果用户通过输入设备输入测试脚本,则测试控制设备获取用户输入的测试脚本;如果用户通过其它存储设备传入测试脚本,则测试控制设备获取用户传入的测试脚本。
[0107]402:测试控制设备根据用户数量确定各个测试设备的测试执行器数量;
[0108]本实施例不对测试控制设备根据用户数量确定各个测试设备的测试执行器数量的具体方法进行限定。例如,通过如下五个步骤确定各个测试设备的测试执行器数量。
[0109]步骤一:获取测试设备的数量;
[0110]由于在通过本实施例提供的软件测试的方法进行软件测试之前会配置各个测试设备及测试控制设备,在配置测试控制设备时,会设置该测试控制设备对应的各个测试设备的ID,以让测试控制设备根据各个测试设备的ID与各个测试设备进行通信,实施本实施例提供的软件测试的方法。因此,将测试控制设备中设置的测试设备ID的数量确定为测试设备的数量。除此之外,还可以通过其它方式获取测试设备的数量,本实施例不对获取测试设备的数量的具体方法进行限定。
[0111]步骤二:将用户数量与测试设备的数量的商进行下取整的结果作为第一数量,并将第一数量与测试设备的数量的积作为第二数量;
[0112]例子一:以用户数量为10个,测试设备的数量为2个为例,将^10/2」=5作为第一
数量,将5X2 = 10作为第二数量。
[0113]例子二:以用户数量为9个,测试设备的数量为2个为例,将p/2」= 4作为第一数
量,将4X2 = 8作为第二数量。
[0114]步骤三:确定用户数量与第二数量是否相同,如果用户数量与第二数量相同,则执行步骤四,如果用户数量与第二数量不相同,则执行步骤五;
[0115]为了便于描述,本实施例及后续实施例将用户数量与测试设备的数量的商作为第四数量为例。由于步骤二中第一数量是对第四数量进行下取整得到的,如果第四数量为整数,则第一数量与第四数量相同,以至第一数量与测试设备的数量的积即为第四数量与测试设备的数量的积,而第四数量与测试设备的数量的积为用户数量,因此,使得此种情况下,作为第一数量与测试设备的数量的积的第二数量与用户数量相同。
[0116]如果第四数量为非整数,则第一数量与第四数量不相同,以至第一数量与测试设备的数量的积与第四数量与测试设备的数量的积不相同,而第四数量与测试设备的数量的积为用户数量,因此,使得此种情况下,作为第一数量与测试设备的数量的积的第二数量与用户数量不相同。
[0117]以步骤二中的两个例子为例,对于例子一,用户数量与第二数量相同,均为10,执行步骤三之后执行步骤四。对于例子二,用户数量为10,而第二数量为9,执行步骤三之后执行步骤五。
[0118]步骤四:将第一数量 作为各个测试设备的测试执行器数量;
[0119]以步骤二中的例子一为例,将5作为服务器BI和服务器B2的测试执行器数量。
[0120]需要说明的是,由于每个测试设备的测试执行器数量均为第一数量,因此,测试执行器的总数量为测试设备的数量与第一数量的积。而第一数量与第四数量相同,且第四数量与测试设备的数量的积为用户数量,因此测试执行器的总数量与用户数量相同。从而,在不增加测试设备的情况下,通过本发明实施例提供的软件测试方法进行测试时,实际执行测试操作的测试执行器数量与测试脚本中包含的测试操作的用户数量相同。
[0121]步骤五:将用户数量与第二数量的差作为第三数量,从测试设备中选择第三数量个测试设备,将第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量,并将第一数量作为未选择的各个测试设备的测试执行器数量。
[0122]本实施例不对从测试设备中选择第三数量个测试设备的具体选择标准进行限定。例如,从测试设备中随机选择第三数量个测试设备。
[0123]以步骤二中的例子二,预设数量为I为例,将10-9 = I作为第三数量,从测试设备中随机选择I个测试设备,如服务器BI,将4+1 = 5作为服务器BI的测试执行器数量,将4作为服务器B2的数量。
[0124]当然,预设数量还可以为其它数值,只要保证根据预设数量确定的各个测试设备的测试执行器数量的总和与用户数量相同即可,本实施例不对预设数量的具体数值进行限定。
[0125]403:测试控制设备为各个测试设备分配测试执行器数量个不同的ID,形成各个测试设备对应的ID组;
[0126]以用户数量为10个,各个测试设备分配测试执行器数量均为5为例,服务器A为服务器BI分配2个不同的ID,即IDU ID2、ID3、ID4和ID5,形成服务器BI对应的ID组:ID组I。为服务器B2分配2个不同的ID,即ID6、ID7、ID8、ID9和ID10,形成服务器B2对应的ID组:ID组2。
[0127]当然,测试控制设备为各个测试设备分配的ID的具体名称还可以为其它名称,本实施例不对测试控制设备为各个测试设备分配的ID的具体名称进行限定。测试设备对应的ID组的具体名称还可以为其它名称,本实施例不对测试设备对应的ID组的具体名称进行限定。
[0128]404:测试控制设备将各个测试设备的测试执行器数量及ID组发送给各个测试设备;
[0129]以步骤403中的例子为例,服务器A将为服务器BI分配的测试执行器数量5和ID组I发送给服务器BI ;将为服务器B2分配的测试执行器数量5和ID组2发送给服务器B2。
[0130]405:测试设备接收测试控制设备发送的测试执行器数量及ID组;
[0131]由于本实施例提供的软件测试的方法中,测试设备为至少一个,为了便于说明,本实施例及后续实施例中针对测试设备在本发明实施例提供的软件测试的方法中具体执行过程,均以任一测试设备为例进行解释说明,如服务器BI。对于其它测试设备,如服务器B2,在具体实施时可以按照本实施例及后续实施例提供的实施过程进行实施,以完成本实施例提供的软件测试的方法。
[0132]例如,服务器BI接收服务器A发送的测试执行器数量:5及ID组I。
[0133]406:测试设备获取测试执行器数量个测试执行器;
[0134]由于在通过本实施例提供的软件测试的方法进行软件测试之前会软件测试相关人员根据被测试系统的协议、被测试系统的API (Application Programming Interface,应用程序编程接口)等确定测试执行器的配置,以方便测试执行器根据该配置与被测试系统连接进行软件测试。因此,测试设备可以获取预先确定的测试执行器的配置,根据测试执行器的配置获取测试执行器数量个测试执行器。除此之外,还可以通过其它方式获取测试执行器数量个测试执行器,本实施例不对获取测试执行器数量个测试执行器具体方法进行限定。
[0135]由于测试执行器是根据预先确定的测试执行器的配置获取的,因此,测试执行器具有被测试系统客户端的通信、读取、显示等应用功能,但不具有被测试系统客户端的字体、显示方式等功能,因此测试执行器可以作为被测试系统的简化版客户端。同时也由于测试执行器具有被测试系统客户端的通信、读取等核心应用功能,减少了测试执行器所需的资源,使得一台测试设备可以获取多个测试执行器。例如,一台测试设备获取几百个测试执行器。
[0136]另外,测试执行器具有的功能除上述功能之外,还可以根据软件测试的测试内容不同进行调整,使得测试执行器能够具有被测试系统真实客户端具有的功能。例如,软件测试内容中需要测试读取功能,但不需要测试显示功能,则在测试执行器中添加读取功能,删除显示功能。也由于测试执行器具有上述功能“定制”特性,使得本实施例提供的测试执行器可以针对性的测试各种功能,扩展了通过本实施例提供软件测试的方法进行软件测试的实施环境。本实施例不对测试执行器具有的具体功能进行限定。
[0137]此外,对于根据测试执行器的配置获取测试执行器数量个测试执行器的具体实现方式,可以开启测试执行器数量个进程,每个进程对应一个测试执行器,且各个测试执行器的配置均为获取到的测试执行器的配置,通过进程控制测试执行器执行测试指令,完成软件测试。
[0138]例如,服务器BI开启5个进程,每个进程对应一个测试执行器。
[0139]407:测试设备为每个测试执行器分配一个ID组中的ID ;
[0140]例如,服务器BI为测试执行器I分配ID1,为测试执行器2分配ID2,为测试执行器3分配ID3,为测试执行器4分配ID4,为测试执行器5分配ID5。当然,还可以根据其它分配原则为测试执行器分配ID组中的ID,本实施例不对为测试执行器分配ID组中的ID的具体分配原则进行限定。测试执行器的名称还可以为其它名,本实施例不对测试执行器的具体名称进行限定。
[0141]408:测试控制设备将测试指令分发给各个测试设备;
[0142]其中,测试指令包括操作指令和元指令。操作指令用于描述对被测系统发起什么操作,而元指令用于描述按什么规则执行操作指令。
[0143]例如:指令Cl和指令C2为操作指令,指令C3为元指令。
[0144]由于测试指令是包含在测试脚本中的,因此,测试控制设备先解析测试脚本得到测试指令,再将解析出的测试指令分发给各个测试设备。
[0145]以测试脚本I为例,服务器A解析出测试脚本I中的指令Cl、指令C2和指令C3,并将指令Cl、指令C2和指令C3分发给服务器BI和服务器B2。
[0146]另外,如果测试脚本中还包含测试指令的分发方式,则测试控制设备解析出测试指令后按照测试指令的分发方式将测试指令分发给满足测试指令的分发方式的各个测试设备。除此之外,测试控制设备还可以通过其它方法将测试指令分发给各个测试设备,本实施例不对测试控制设备将测试指令分发给各个测试设备的具体方法进行限定。[0147]以测试脚本2中包含指令C4、指令C5和测试指令的分发方式:C4由IDl和ID3执行为例,服务器A解析出测试脚本I中的指令C4和指令C5,确定满足测试指令的分发方式的测试设备为I个,即包含IDl和ID3的ID组I对应的服务器BI,并将指令C4分发给服务器BI,将指令C5分发给服务器BI和B2。即将指令C4和C5分发给服务器BI,将指令C5分发给服务器B2。
[0148]其中,测试指令的分发方式还可以为其它内容,本实施例不对测试指令的分发方式的具体内容进行限定。满足测试指令的分发方式的测试设备还可以为其它测试设备,本实施例不对满足测试指令的分发方式的具体测试设备进行限定。满足测试指令的分发方式的测试设备的数量还可以为其它数量,本实施例不对满足测试指令的分发方式的测试设备的具体数量进行限定。
[0149]此外,对于测试脚本中还包含测试指令的分发方式的情况,为了使测试设备能够按照测试指令的分发方式执行指令,测试控制设备除了将测试指令分发给各个测试设备之夕卜,还会将测试指令的分发方式一并分发给测试设备,使测试设备根据测试指令的分发方式将指令分发给各个测试执行器。
[0150]本实施例不对测试控制设备将测试指令的分发方式分发给测试设备的具体方式进行限定。例如:将测试指令的分发方式分发给各个测试设备,或者将测试指令的分发方式分发给满足该分发方式的测试设备。
[0151 ] 仍以测试脚本2为例,服务器A除将指令C4和C5分发给服务器BI,将指令C5分发给服务器B2之外,还将测试指令的分发方式:C4由IDl和ID3执行分发给服务器BI和服务器B2。
[0152]或者,服务器A除将指令C4和C5分发给服务器BI,将指令C5分发给服务器B2之夕卜,仅将测试指令的分发方式:C4由IDl和ID3执行分发给满足该分发方式的服务器BI。
[0153]409:测试设备接收测试控制设备分发的测试指令,并将测试指令分发给各个测试执行器;
[0154]以服务器BI接收到服务器A分发的指令Cl、指令C2和指令C3为例,BI将指令Cl、指令C2和指令C3分发给测试执行器I至测试执行器5。
[0155]另外,如果测试设备除接收测试控制设备分发的测试指令之外,还接收到测试指令的分发方式,则测试设备按照测试指令的分发方式将测试指令分发给满足测试指令的分发方式的各个测试执行器。除此之外,测试控制设备还可以通过其它方法将测试指令分发给各个测试设备,本实施例不对测试控制设备将测试指令分发给各个测试设备的具体方法进行限定。
[0156]以服务器BI接收到服务器A分发的指令C4、指令C5和测试指令的分发方式:C4由IDl和ID3执行为例,BI将指令C4分发给ID为IDl的测试执行器I和ID为ID3的测试执行器3,将指令C5分发给测试执行器I至测试执行器5。
[0157]410:测试执行器执行分发的测试指令,并返回执行结果。
[0158]测试执行器将接收到的测试指令放入对应的缓存中,根据预先配置的被测试系统的API向被测试系统发起请求操作,在成功发起请求后从缓存中读取并执行测试指令。
[0159]以测试执行器I接收到服务器BI分发的指令Cl、指令C2和指令C3为例,测试执行器I根据预先配置的被测试系统的API向被测试系统发起请求操作,执行缓存中的指令Cl、指令C2和指令C3,并将执行结果返回给服务器BI。
[0160]411:测试设备获取各个测试执行器返回的执行结果,并将执行结果返回给测试控制设备;
[0161]测试设备获取各个测试执行器返回的执行结果后,会将各个执行结果做统计,再将统计结果返回给测试控制设备。本实施例不对将各个执行结果做统计的具体内容进行限定,例如,做累加统计。
[0162]例如,服务器BI将测试执行器I至测试执行器5返回的测试结果,将各个测试结果做累加统计,并将累加结果返回给服务器A。
[0163]412:测试控制设备接收并分析各个测试设备返回的执行结果,得到测试结果。
[0164]本实施例不对测试控制设备对各个测试设备返回的执行结果的具体分析内容进行限定,例如:分析各个测试指令的执行成功次数、各个测试指令的执行失败次数、各个测试指令的最小响应时长、各个测试指令的最大响应时长、各个测试指令的平均响应时长、所有测试指令的最小总响应时长等。
[0165]本实施例也不对得到的测试结果的具体表现形式进行限定。例如:根据测试结果形成统计报表,或者根据测试结果形成分析报告。
[0166]上述内容仅以测试控制设备为服务器A,测试设备为2个服务器,分别是服务器BI和服务器B2,测试脚本I中包含三条测试指令,分别是指令Cl:往缓存添加信息A、指令C2:缓存读取信息A和指令C3:以顺序执行的方式执行指令C2为例,对如何应用本实施例提供的软件测试的方法进行软件测试做出解释说明。其中,测试该控制设备的名称还可以为其它名称,本实施例不对测试该控制设备的具体名称进行限定;测试设备的数量还可以为其它数量,本实施例不对测试设备的具体数量进行限定;测试设备的名称还可以为其它名称,本实施例不对测试设备的具体名称进行限定;测试脚本名称还可以为其它名称,本实施例不对测试脚本的具体名称进行限定;测试脚本中包含的测试指令的数量还可以为其它数量,本实施例不对测试脚本中包含的测试指令的具体数量进行限定;测试指令的名称还可以为其它名称,本实施例不对测试指令的具体名称进行限定;测试指令的具体内容还可以为其它内容,本实施例不对测试指令的具体内容进行限定。
[0167]另外,本实施例提供的软件测试的方法是通过二级控制的方式完成软件测试,SP应用本实施例提供的软件测试方法的测试控制设备控制至少一个测试设备,再由各个测试设备控制其内的至少一个测试执行器执行测试指令,完成软件测试。由于二级控制的方式具有实现简单、容易扩展的特点,因此扩展了本实施例提供的软件测试的方法的实施环境。
[0168]此外,由于测试执行器执行测试指令的方式可以为接收到测试指令后立即执行;也可以为接收到测试指令后将测试指令存储到缓存中,再从缓存中读取测试指令并执行。根据测试执行器执行测试指令的不同方法还可以构造出除上述环境之外,其它实施环境,本实施例不对应用本实施例提供的软件测试的方法进行软件测试的具体实施环境进行限定。
[0169]例如第一种实施环境:构造高并发的压力测试环境。
[0170]以压力测试环境为群组聊天,在群组里同时收到1000条“你好”的消息为例,构造方法可以为:配置5个测试设备,测试操作的用户数量为1000个,测试指令为发送一条“你好”消息。测试控制设备确定每个测试设备的测试执行器数量为200个,并将测试指令分别发送给5个测试设备,则每个测试设备控制200个测试执行器在加入同一群组后,同时发送一条“你好”消息。此时被测试群组同一时刻会收到分别来自5个测试设备中1000个测试执行器发送的1000条“你好”消息,实现对被测系统的服务器和客户端的高并发的压力测试。
[0171]除此之外,还可以通过其它构造方法构造高并发的压力测试环境,本实施例不对构造高并发的压力测试环境的具体构造方法进行限定。
[0172]例如第二种实施环境:构建复杂的测试环境。
[0173]以复杂的测试环境为有200个用户在群组里随机发各种不同的消息为例,构造方法可以为:配置I个测试设备,测试操作的用户数量为200个,测试指令为200条各种操作的操作指令,如:测试指令I为“每隔30秒发送文字:你好”,测试指令2为“每隔40秒发送一个表情”,等等。测试控制设备将200条测试指令发送给测试设备,测试设备在获取到200个测试执行器后,将测试指令I转发给执行器1,将测试指令2转发给执行器2,依次类推。每个测试执行器均在各自的缓存中存储测试设备转发的测试指令,并执行测试指令。例如:测试执行器I执行缓存中的测试指令1:等待30秒后发送文字:你好,发送完成后再执行缓存中的测试指令1,如此执行下去。此时200个测试执行器读取缓存中的指令,执行多次之后,则可构建一个多用户随机对被测试系统进行操作的测试环境。
[0174]除此之外,还可以通过其它构造方法构建复杂的测试环境,本实施例不对构建复杂的测试环境的具体构建方法进行限定。
[0175]本实施例提供的方法,通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
[0176]实施例三
[0177]本发明实施例提供了一种软件测试的设备,参见图5,该设备包括:
[0178]获取模块501,用于获取测试脚本,测试脚本至少包含测试操作的用户数量及至少一条测试指令;
[0179]确定模块502,用于根据用户数量确定各个测试设备的测试执行器数量;
[0180]分配模块503,用于为各个测试设备分配测试执行器数量个不同的ID,形成各个测试设备对应的ID组;
[0181]发送模块504,用于将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个ID ;
[0182]分发模块505,用于将测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果;
[0183]分析模块506,用于接收并分析各个测试设备返回的执行结果,得到测试结果。
[0184]参见图6,确定模块502,包括:
[0185]获取单元5021,用于获取测试设备的数量;
[0186]第一确定单元5022,用于将用户数量与获取设备获取的测试设备的数量的商进行下取整的结果作为第一数量;
[0187]第二确定单元5023,用于将第一确定单元5022确定的第一数量与获取单元获取的测试设备的数量的积作为第二数量;
[0188]第三确定单元5024,用于确定用户数量与第二确定单元5023确定的第二数量是否相同;
[0189]第四确定单元5025,用于当第三确定单元5024确定用户数量与第二数量相同,则将第一数量作为各个测试设备的测试执行器数量。
[0190]参见图7,确定模块502,还包括:
[0191]第五确定单元5026,用于当用户数量与第二数量不相同时,将用户数量与第二数量的差作为第三数量;
[0192]选择单元5027,用于从测试设备中选择第三数量个测试设备;
[0193]第六确定单元5028,用于将第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量;
[0194]第七确定单元5029,用于将第一数量作为未选择的各个测试设备的测试执行器数量。
[0195]综上所述,本发明实施例所述设备,通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
[0196]实施例四
[0197]本发明实施例提供了一种软件测试的设备,参见图8,该设备包括:
[0198]第一接收模块801,用于接收测试控制设备发送的测试执行器数量及标识ID组;
[0199]第一获取模块802,用于获取测试执行器数量个测试执行器;
[0200]分配模块803,用于为每个测试执行器分配一个ID组中的ID ;
[0201]第二接收模块804,用于接收测试控制设备分发的测试指令;
[0202]分发模块805,用于将第二接收模块804接收到的测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果;
[0203]第二获取模块806,用于获取各个测试执行器返回的执行结果;
[0204]发送模块807,用于将第二获取模块806获取到的执行结果返回给测试控制设备。
[0205]其中,第一获取模块802,用于获取测试执行器的配置,根据配置获取测试执行器数量个测试执行器。
[0206]综上所述,本发明实施例所述设备,通过根据测试控制设备确定的测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
[0207]实施例五
[0208]本发明实施例提供了一种软件测试的系统,参见图9,该系统包括:一个测试控制设备901和至少一个测试设备902 ;[0209]测试控制设备901,如上述实施例三描述的软件测试的设备,详见实施例三;
[0210]测试设备,如上述实施例四描述的软件测试的设备,详见实施例四。
[0211]综上所述,本发明实施例所述设备,通过根据用户数量确定各个测试设备的测试执行器数量,使各个测试设备根据测试执行器数量创建测试执行器,并通过创建的测试执行器同时执行测试脚本,使得在多用户同时操作的测试时,各个测试设备中创建的至少一个测试执行器的和与用户数量相同,减少了测试设备的数量,从而减少了软件测试的成本,降低了软件测试的实现复杂度。
[0212]需要说明的是:上述实施例提供的软件测试的设备在软件测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的软件测试的设备、系统与实现软件测试的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0213]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0214]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0215]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种软件测试的方法,其特征在于,所述方法包括: 获取测试脚本,所述测试脚本至少包含测试操作的用户数量及至少一条测试指令;根据所述用户数量确定各个测试设备的测试执行器数量,并为各个测试设备分配测试执行器数量个不同的标识ID,形成各个测试设备对应的ID组; 将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取所述测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个ID ; 将所述测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果; 接收并分析各个测试设备返回的执行结果,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述用户数量确定各个测试设备的测试执行器数量,包括: 获取测试设备的数量; 将所述用户数量与所述测试设备的数量的商进行下取整的结果作为第一数量,并将所述第一数量与所述测试设备的数量的积作为第二数量; 确定所述用户数量与所述第二数量是否相同; 如果所述用户数量 与所述第二数量相同,则将所述第一数量作为各个测试设备的测试执行器数量。
3.根据权利要求2所述的方法,其特征在于,所述确定所述用户数量与所述第二数量是否相同之后,还包括: 如果所述用户数量与所述第二数量不相同,则将所述用户数量与所述第二数量的差作为第三数量; 从所述测试设备中选择所述第三数量个测试设备,将所述第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量,并将所述第一数量作为未选择的各个测试设备的测试执行器数量。
4.一种软件测试的设备,其特征在于,所述设备包括: 获取模块,用于获取测试脚本,所述测试脚本至少包含测试操作的用户数量及至少一条测试指令; 确定模块,用于根据所述用户数量确定各个测试设备的测试执行器数量; 分配模块,用于为各个测试设备分配测试执行器数量个不同的标识ID,形成各个测试设备对应的ID组; 发送模块,用于将各个测试设备的测试执行器数量及ID组发送给各个测试设备,使各个测试设备获取所述测试执行器数量个测试执行器,并为每个测试执行器分配ID组中的一个 ID ; 分发模块,用于将所述测试指令分发给各个测试设备,使各个测试设备通过各个测试执行器执行分发的测试指令,获取并返回执行结果; 分析模块,用于接收并分析各个测试设备返回的执行结果,得到测试结果。
5.根据权利要求4所述的设备,其特征在于,所述确定模块,包括: 获取单元,用于获取测试设备的数量; 第一确定单元,用于将所述用户数量与所述获取设备获取的测试设备的数量的商进行下取整的结果作为第一数量; 第二确定单元,用于将所述第一确定单元确定的第一数量与所述获取单元获取的测试设备的数量的积作为第二数量; 第三确定单元,用于确定所述用户数量与所述第二确定单元确定的第二数量是否相同; 第四确定单元,用于当所述第三确定单元确定所述用户数量与所述第二数量相同,则将所述第一数量作为各个测试设备的测试执行器数量。
6.根据权利要求5所述的设备,其特征在于,所述确定模块,还包括: 第五确定单元,用于当所述用户数量与所述第二数量不相同时,将所述用户数量与所述第二数量的差作为第三数量; 选择单元,用于从所述测试设备中选择所述第三数量个测试设备; 第六确定单元,用于将所 述第一数量与预设数量的和作为选择的各个测试设备的测试执行器数量; 第七确定单元,用于将所述第一数量作为未选择的各个测试设备的测试执行器数量。
7.一种软件测试的方法,其特征在于,所述方法包括: 接收测试控制设备发送的测试执行器数量及标识ID组; 获取所述测试执行器数量个测试执行器; 为每个测试执行器分配一个所述ID组中的ID ; 接收所述测试控制设备分发的测试指令,并将所述测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果; 获取各个测试执行器返回的执行结果,并将执行结果返回给所述测试控制设备。
8.根据权利要求7所述的方法,其特征在于,所述获取所述测试执行器数量个测试执行器,包括: 获取测试执行器的配置,根据所述配置获取所述测试执行器数量个测试执行器。
9.一种软件测试的设备,其特征在于,所述设备包括: 第一接收模块,用于接收测试控制设备发送的测试执行器数量及标识ID组; 第一获取模块,用于获取所述测试执行器数量个测试执行器; 分配模块,用于为每个测试执行器分配一个所述ID组中的ID ; 第二接收模块,用于接收所述测试控制设备分发的测试指令; 分发模块,用于将所述第二接收模块接收到的测试指令分发给各个测试执行器,使各个测试执行器执行分发的测试指令,并返回执行结果; 第二获取模块,用于获取各个测试执行器返回的执行结果; 发送模块,用于将所述第二获取模块获取到的执行结果返回给所述测试控制设备。
10.根据权利要求9所述的设备,其特征在于,所述第一获取模块,用于获取测试执行器的配置,根据所述配置获取所述测试执行器数量个测试执行器。
11.一种软件测试的系统,其特征在于,所述系统包括:一个测试控制设备和至少一个测试设备; 所述测试控制设备如权利要求4至6任一权利要求所述的软件测试的设备; 所述测试设备如权利要求9或10所述的软件测试的设备。
【文档编号】G06F11/36GK104008055SQ201410240378
【公开日】2014年8月27日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】庄旭晖, 柳孙明, 郑海棠 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1