发明内容
针对现有的自动化开发平台存在的上述问题,现提供一种旨在采用分层结构,实现多功能多设备的通信整合,所有的测试均集成到一个测试平台中的自动化测试系统及方法。
具体技术方案如下:
一种自动化测试系统,包括:
至少一个测试流客户端,所述测试流客户端用以接收测试用例,并输出;
复数个测试类客户端,每个所述测试类客户端对应一类测试功能,用以根据所述测试功能对相应的所述测试用例进行管理,以输出相应的测试指令;
复数个测试设备客户端,每个所述测试设备客户端对应一类测试设备,用以将与所述测试设备对应的测试指令输出;
一测试流服务器,分别连接所述测试流客户端和复数个所述测试类客户端,用以对接收到的所述测试用例进行分类,以将所述测试用例发送至相应的所述测试类客户端;
一测试类服务器,分别连接复数个所述测试类客户端和复数个所述测试设备客户端,用以将接收到的所述测试指令发送至相应的所述测试设备客户端;
一测试设备服务器,分别连接复数个所述测试设备客户端,用以接收所述测试设备客户端发送的所述测试设备指令,根据所述测试设备指令控制相应的所述测试设备进行相应的测试。
优选的,所述测试设备服务器还用以将所述测试设备的测试状态通过相应的所述测试设备客户端发送至所述测试类服务器。
优选的,所述测试类服务器用以接收所述测试类客户端发送的所述测试指令,将所述测试指令发送至相应的所述测试设备对应的所述测试设备客户端,所述测试设备客户端根据所述测试指令生成相应的所述测试设备指令;
所述测试类服务器还用以将所述测试状态通过相应的所述测试类客户端发送至所述测试流服务器。
优选的,所述测试流服务器用以接收所述测试流客户端发送的所述测试用例,对所述测试用例进行分类以获取相应的测试功能类型,并将所述测试用例发送至与所述测试用例相对应的测试功能的所述测试类客户端;
所述测试类服务器还用以根据所述测试状态重新对所述测试用例进行测试或结束测试。
优选的,所述测试流服务器包括一转换单元,用以将所述测试用例转为标准语言的所述测试用例;
所述测试流服务器对标准语言的所述测试用例进行分类,以将所述测试用例发送至相应的所述测试类客户端。
一种自动化测试方法,应用如上述的自动化测试系统,包括下述步骤:
S1.所述测试流客户端接收所述测试用例;
S2.所述测试流服务器接收所述测试流客户端发送的所述测试用例,对所述测试用例进行分类以获取相应的测试功能类型,并将所述测试用例发送至与所述测试用例相对应的测试功能的所述测试类客户端;
S3.所述测试类服务器接收所述测试类客户端发送的所述测试指令,将所述测试指令发送至相应的所述测试设备对应的所述测试设备客户端,所述测试设备客户端根据所述测试指令生成相应的所述测试设备指令;
S4.所述测试设备服务器接收所述测试设备客户端发送的所述测试设备指令,根据所述测试设备指令控制相应的所述测试设备进行相应的测试。
优选的,在执行所述步骤S2之前还包括:
A1.根据所述测试用例对所述测试流客户端、所述测试类客户端、所述测试设备客户端、所述测试流服务器、所述测试类服务器和所述测试设备服务器的接口进行配置,并注册相应的所述测试设备;
A2.分别判断所述测试流客户端、所述测试类客户端、所述测试设备客户端、所述测试流服务器、所述测试类服务器和所述测试设备服务器是否存在异常,若是,则执行步骤A3;若否,执行步骤S2;
A3.结束测试,输出异常结果。
优选的,在执行所述步骤S3之前还包括:
判断在第一预设时间内是否存在空闲的所述测试类服务器,若是,执行所述步骤S3,若否,则结束测试。
优选的,在执行所述步骤S4之前还包括:
判断在第二预设时间内是否存在空闲的所述测试设备服务器,若是,执行所述步骤S4,若否,则结束测试。
优选的,在执行所述步骤S4中还包括:
判断在第三预设时间内是否存在空闲的所述测试设备,若是,则进行相应的测试,若否,则结束测试。
优选的,还包括:
S5.所述测试设备服务器获取所述测试设备发送的所述测试状态,并判断所述测试状态是否结束,若是,则执行步骤S6;若否,返回执行所述步骤S5;
S6.所述测试类服务器判断所述测试设备客户端是否正常,若是,执行步骤S7;若否,返回重新执行所述步骤S3;
S7.所述测试流服务器判断所述测试类客户端是否正常,若是,结束测试,输出测试结果;若否,返回重新执行所述步骤S2。
上述技术方案的有益效果:
1)自动化测试系统采用分层结构,实现了多功能多设备的通信整合,所有的测试均集成到一个测试平台中,可支持多功能测试,能够实现在同一个平台环境下进行测试,避免了在切换平台后就不能够再使用的情况,省时省力,且通用性强;
2)自动化测试方法可将不同设备的测试集成到同一平台上,无需修改网络环境以实现快速转换,采用的分层结构能够灵活适应网络拓扑的变化,以快速实现分布式测试,具有省时省力,通用性强的优点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
如图1所示,一种自动化测试系统,包括:
至少一个测试流客户端,测试流客户端用以接收测试用例,并输出;
复数个测试类客户端,每个测试类客户端对应一类测试功能,用以根据测试功能对相应的测试用例进行管理,以输出相应的测试指令;
复数个测试设备客户端,每个测试设备客户端对应一类测试设备,用以将与测试设备对应的测试指令输出;
一测试流服务器,分别连接测试流客户端和复数个测试类客户端,用以对接收到的测试用例进行分类,以将测试用例发送至相应的测试类客户端;
一测试类服务器,分别连接复数个测试类客户端和复数个测试设备客户端,用以将接收到的测试指令发送至相应的测试设备客户端;
一测试设备服务器,分别连接复数个测试设备客户端,用以接收测试设备客户端发送的测试设备指令,根据测试设备指令控制相应的测试设备进行相应的测试。
自动化测试系统采用跨平台高级C语言,可调用系统中的应用程序编程接口,以实现基础功能工具库。由于不同平台均实现了对C语言的支持,因此基础功能工具库可以使用C语言实现。目前大部分主流语言C++、Python、Java等都能实现与C语言混合编程,从而使多语言的支持也得以实现。自动化测试系统可在不同通信类型的测试中生成相应的测试类型接口库,然后在测试之前注册相应的接口,并在内部实现不同测试接口的功能,从而能够实现WIFI、BT、GNSS、ZigBee等不同通信类型的系统功能测试。测试流层与测试类层及测试类层与测试设备层之间均采用客户端/服务器通信方式,进一步地,采用套接字(socket)通信。
在本实施例中,测试流服务器用于管理不同类型系统功能测试库;测试类服务器用来管理测试用例中的测试步骤;测试设备服务器用来管理控制不同的测试设备,其中测试设备包括待测设备和测试辅助设备。自动化测试系统采用分层结构,实现了多功能多设备的通信整合,所有的测试均集成到一个测试平台中,可支持多功能测试,能够实现在同一个平台环境下进行测试,避免了在切换平台后就不能够再使用的情况,省时省力,且通用性强。
在优选的实施例中,测试设备服务器还用以将测试设备的测试状态通过相应的测试设备客户端发送至测试类服务器。
在本实施例中,当测试设备的测试状态为异常时,测试设备服务器可根据测试设备指令重新控制相应的测试设备进行相应的测试;
当测试设备的测试状态为结束时,测试设备服务器通过相应的测试设备客户端将该测试状态发送至测试类服务器;
当测试设备的测试状态为未结束时,继续测试,直至测试状态为结束时进行相应的操作。
在优选的实施例中,测试类服务器用以接收测试类客户端发送的测试指令,将测试指令发送至相应的测试设备对应的测试设备客户端,测试设备客户端根据测试指令生成相应的测试设备指令;
测试类服务器还用以将测试状态通过相应的测试类客户端发送至测试流服务器。
在本实施例中,当测试状态为异常时,测试类服务器重新将测试指令发送至相应的测试设备对应的测试设备客户端;
当测试状态为正常时,测试类服务器通过相应的测试类客户端将测试状态发送至测试流服务器。
在优选的实施例中,测试流服务器用以接收测试流客户端发送的测试用例,对测试用例进行分类以获取相应的测试功能类型,并将测试用例发送至与测试用例相对应的测试功能的测试类客户端;
测试类服务器还用以根据测试状态重新对测试用例进行测试或结束测试。
在本实施例中,当测试状态为异常时,测试流服务器重新对测试用例进行分类以获取相应的测试功能类型,并将测试用例发送至与测试用例相对应的测试功能的测试类客户端;
当测试状态为正常时,输出测试结果并结束测试。
在优选的实施例中,测试流服务器包括一转换单元,用以将测试用例转为标准语言的测试用例;
测试流服务器对标准语言的测试用例进行分类,以将测试用例发送至相应的测试类客户端。
在本实施例中,由于C语言是多种高级语言的基础且均实现与C语言的混合编程,因此转换单元采用混合编程中间转换库的方式以将不同的语言转换为C语言进行测试。
如图2所示,一种自动化测试方法,应用如上述的自动化测试系统,包括下述步骤:
S1.测试流客户端接收测试用例;
S2.测试流服务器接收测试流客户端发送的测试用例,对测试用例进行分类以获取相应的测试功能类型,并将测试用例发送至与测试用例相对应的测试功能的测试类客户端;
S3.测试类服务器接收测试类客户端发送的测试指令,将测试指令发送至相应的测试设备对应的测试设备客户端,测试设备客户端根据测试指令生成相应的测试设备指令;
S4.测试设备服务器接收测试设备客户端发送的测试设备指令,根据测试设备指令控制相应的测试设备进行相应的测试。
在本实施例中,自动化测试方法可将不同设备的测试集成到同一平台上,无需修改网络环境以实现快速转换,采用的分层结构能够灵活适应网络拓扑的变化,以快速实现分布式测试,具有省时省力,通用性强的优点。
在优选的实施例中,在执行步骤S2之前还包括:
A1.根据测试用例对测试流客户端、测试类客户端、测试设备客户端、测试流服务器、测试类服务器和测试设备服务器的接口进行配置,并注册相应的测试设备;
A2.分别判断测试流客户端、测试类客户端、测试设备客户端、测试流服务器、测试类服务器和测试设备服务器是否存在异常,若是,则执行步骤A3;若否,执行步骤S2;
A3.结束测试,输出异常结果。
在本实施例中,在测试中为了响应客户代码请求的方式,然后调用不同设备库中的设备控制接口,实现不同设备的控制,因此在测试前需对接口进行配置,并注册相应的测试设备,从而实现网卡、移动终端等多种类型设备的控制。
在优选的实施例中,在执行步骤S3之前还包括:
判断在第一预设时间内是否存在空闲的测试类服务器,若是,执行步骤S3,若否,则结束测试。
在优选的实施例中,在执行步骤S4之前还包括:
判断在第二预设时间内是否存在空闲的测试设备服务器,若是,执行步骤S4,若否,则结束测试。
在优选的实施例中,在执行步骤S4中还包括:
判断在第三预设时间内是否存在空闲的测试设备,若是,则进行相应的测试,若否,则结束测试。
如图2所示,在优选的实施例中,还包括:
S5.测试设备服务器获取测试设备发送的测试状态,并判断测试状态是否结束,若是,则执行步骤S6;若否,返回执行步骤S5;
S6.测试类服务器判断测试设备客户端是否正常,若是,执行步骤S7;若否,返回重新执行步骤S3;
S7.测试流服务器判断测试类客户端是否正常,若是,结束测试,输出测试结果;若否,返回重新执行步骤S2。
在本实施例中,在执行步骤S5之前还包括:测试设备服务器判断测试设备的测试状态是否正常,若异常,则重新执行步骤S4;若正常,则执行步骤S5。
于上述技术方案基础上,本发明可实现多线程库的扩展,本发明不仅支持本机不同进程之间的通信,而且能够实现跨机器的远程测试需求。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。