一种交互式软件并发处理能力的测试方法及系统技术领域
本发明涉及测试领域,尤其涉及一种交互式软件并发处理能力的测试方法及系
统。
背景技术
交互式软件通常包括客户端和服务器端,通常在客户端和服务器端之间存在大量
的交互操作,因此,不可避免地存在高调用、高并发的情况,也就是说在某一时间段甚至某
一时刻,同时有大量客户端向服务器端提交或请求获取数据,这对于交互式软件的服务器
是较大的考验,容易出现服务器崩溃的情况,严重影响用户体验。因此,在上线之前,需要对
交互式软件进行并发处理能力的测试。
现有技术大多在虚拟机中对软件的并发处理能力进行测试,虽然能够模拟软件的
运行态,提高测试结果的准确性,但是虚拟机和真实设备始终存在差异,无法完全真实地反
映出软件在真实设备中运行的情况。
发明内容
本发明所要解决的技术问题是:提供一种交互式软件并发处理能力的测试方法及
系统,实现可自动测试部署在大规模设备上的交互式软件的并发处理能力。
为了解决上述技术问题,本发明采用的技术方案为:
本发明提供一种交互式软件并发处理能力的测试方法,包括:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚
本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第
二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作。
本发明还提供一种交互式软件并发处理能力的测试系统,包括:
第一预设模块,用于预设待测交互式软件;所述交互式软件包括客户端和服务器
端;
第一获取模块,用于获取部署所述待测交互式软件的服务器端的第一设备;获取
部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;
第二预设模块,用于预设与所述待测交互式软件的服务器端对应的第一测试脚
本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形
成第二测试脚本集合;
第二获取模块,用于从所述第一测试脚本集合中获取一第一测试脚本,并将所述
一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试
脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设
备;
第三预设模块,用于预设等待时长;
第三获取模块,用于获取当前系统时间,得到客户端开始测试时间;
执行模块,用于所述第一设备解析并执行所述一第一测试脚本;所述第二设备集
合中的第二设备解析并执行所述第二测试脚本;
第四获取模块,用于获取当前系统时间,将当前系统时间减去所述客户端开始测
试时间,得到客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所
述待测交互式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软
件的服务器端提交数据的操作。
本发明的有益效果在于:通过在客户端执行相应的测试脚本之前预设等待时长,
当执行测试脚本的时间大于所述等待时长时,才允许客户端执行向服务器端提交数据的操
作,可控制所有客户端同一时刻向服务器端提交数据,从而可测试交互式软件的并发处理
能力;通过预设待测交互式软件的服务器端和客户端的测试脚本,并自动将所述测试脚本
发送至已部署待测交互式软件的服务器端或客户端的设备,所述设备接收到测试脚本后,
自动执行相应的测试脚本,实现自动测试部署在大规模设备上的交互式软件。
附图说明
图1为本发明一种交互式软件并发处理能力的测试方法的流程框图;
图2为本发明一种交互式软件并发处理能力的测试系统的结构框图;
标号说明:
1、第一预设模块;2、第一获取模块;3、第二预设模块;4、第二获取模块;5、第三预
设模块;6、第三获取模块;7、执行模块;8、第四获取模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附
图予以说明。
本发明最关键的构思在于:通过在客户端执行相应的测试脚本前,预设等待时长,
当执行测试脚本的时间不小于所述等待时长时,才允许客户端执行向服务器端提交数据的
操作,可控制所有客户端同一时刻向服务器端提交数据,从而可测试交互式软件的并发处
理能力。
如图1所示,本发明提供一种交互式软件并发处理能力的测试方法,包括:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测试脚
本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第
二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作。
其中,所述待测交互式软件的服务器端和客户端之间存在交互操作,为了测试交
互式软件的并发处理能力,所述第二设备集合中的所有第二设备都执行完测试脚本中在本
地执行的操作后,再同时执行向服务器端提交数据的操作。所述获取部署所述待测交互式
软件的服务器端的第一设备;获取部署所述待测交互式软件的客户端的第二设备,得到第
二设备集合,包括获取相应设备的唯一标识识别符、IP地址、设备名称、系统版本号、内存、
CPU、分辨率、厂家等设备信息。为了测试待测交互式软件的服务器端,应预设相应的测试脚
本,由于所述服务器端包括多用户场景,因此需要为每一用户场景编写测试脚本。由于服务
器端与客户端之间存在交互,因此需要为客户端预设与服务器端中的不同用户场景的测试
脚本相对应的测试脚本,客户端和服务器端的测试脚本中模拟的操作为交互操作。部署有
待测交互式软件的客户端和服务器端的设备中安装有解析器,所述解析器可用于接收并执
行测试脚本。
进一步地,从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测
试脚本发送至所述第一设备,具体为:
从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测试脚本
发送至所述第一设备。
由上述描述可知,可随机获取服务端的测试脚本,从而实现随机测试任一用户场
景。
进一步地,从所述第一测试脚本集合中获取一第一测试脚本,并将所述一第一测
试脚本发送至所述第一设备,具体为:
预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;
发送所述一第一测试脚本至所述第一设备。
由上述描述可知,可获取服务端的指定测试脚本,从而实现测试指定用户场景。
进一步地,从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测
试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备,具体为:
获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;
从所述第三测试脚本集合中随机获取一第三测试脚本;
发送所述一第三测试脚本至所述第二设备集合中的第二设备。
由上述描述可知,可实现所有待测交互式软件的客户端执行同一测试脚本,从而
可测试所有的客户端同时做出相同反应时,是否会出现异常情况。
进一步地,从所述第二测试脚本集合中获取与所述一第一测试脚本对应的第二测
试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设备,具体为:
获取与所述一第一测试脚本相对应的第二测试脚本,得到第三测试脚本集合;
获取所述第二设备集合中的第二设备的数量,得到第二设备数;
预设测试脚本数;所述测试脚本数在第二设备数以内;
从所述第三测试脚本集合中随机获取与测试脚本数相对应的第三测试脚本,得到
第四测试脚本集合;
将所述第二设备集合中的第二设备按所述测试脚本数分组,得到第二设备组;
将所述第四测试脚本集合中的测试脚本依次发送至第二设备组中的第二设备。
由上述描述可知,可实现部署在不同设备的待测交互式软件的客户端同时执行多
种测试脚本,从而可测试多个客户端同时做出多种反应时,是否会出现异常情况。
进一步地,还包括:
获取测试脚本返回的测试数据;
分析所述测试数据形成测试报告。
由上述描述可知,可自动根据测试数据生成测试报告,方便工程师根据测试报告
对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运行。
如图2所示,本发明还提供一种交互式软件并发处理能力的测试系统,包括:
第一预设模块1,用于预设待测交互式软件;所述交互式软件包括客户端和服务器
端;
第一获取模块2,用于获取部署所述待测交互式软件的服务器端的第一设备;获取
部署所述待测交互式软件的客户端的第二设备,得到第二设备集合;
第二预设模块3,用于预设与所述待测交互式软件的服务器端对应的第一测试脚
本,形成第一测试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形
成第二测试脚本集合;
第二获取模块4,用于从所述第一测试脚本集合中获取一第一测试脚本,并将所述
一第一测试脚本发送至所述第一设备;从所述第二测试脚本集合中获取与所述一第一测试
脚本对应的第二测试脚本,并将所述第二测试脚本发送至所述第二设备集合中的第二设
备;
第三预设模块5,用于预设等待时长;
第三获取模块6,用于获取当前系统时间,得到客户端开始测试时间;
执行模块7,用于所述第一设备解析并执行所述一第一测试脚本;所述第二设备集
合中的第二设备解析并执行所述第二测试脚本;
第四获取模块8,用于获取当前系统时间,将当前系统时间减去所述客户端开始测
试时间,得到客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所
述待测交互式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软
件的服务器端提交数据的操作。
本发明的实施例一为:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测
试脚本发送至所述第一设备;获取与所述一第一测试脚本相对应的第二测试脚本,得到第
三测试脚本集合;从所述第三测试脚本集合中随机获取一第三测试脚本;发送所述一第三
测试脚本至所述第二设备集合中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作;
步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。
由上述描述可知,本实施例实现随机测试一用户场景,所有待测交互式软件的客
户端执行相同操作,且所有待测交互式软件的客户端在同一时刻向服务器端提交数据,并
生成测试报告。
本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一
个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出
回答后,提交数据至教师端。若系统随机选择的教师端的用户场景为,教师端向学生端发送
一道单选题,系统随机选择的学生端的测试脚本为执行选择选项A的测试脚本。预设等待时
长为10秒,则当实际执行测试脚本的时间为10秒时,所有学生端同时向教师端提交选择结
果。并获得相应的测试数据,形成测试报告,方便工程师根据测试报告对被测软件进行相应
的修补与完善,以确保交互式软件产品可在设备上正常运行。
本发明的实施例二为:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、从所述第一测试脚本集合中随机获取一第一测试脚本,并将所述一第一测
试脚本发送至所述第一设备;获取所述第二设备集合中的第二设备的数量,得到第二设备
数;预设测试脚本数;所述测试脚本数在第二设备数以内;从所述第三测试脚本集合中随机
获取与测试脚本数相对应的第三测试脚本,得到第四测试脚本集合;将所述第二设备集合
中的第二设备按所述测试脚本数分组,得到第二设备组;将所述第四测试脚本集合中的测
试脚本依次发送至第二设备组中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作;
步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。
由上述描述可知,本实施例实现随机测试一用户场景,不同组的待测交互式软件
的客户端执行不同操作,且所有待测交互式软件的客户端在同一时刻向服务器端提交数
据,并生成测试报告。
本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一
个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出
回答后,提交数据至教师端。若系统随机选择的教师端的用户场景为,教师端向学生端发送
一道单选题,则此时学生端可选择的测试脚本为,执行选择选项A的测试脚本,执行选择选
项B的测试脚本,执行选择选项C的测试脚本和执行选择选项D的测试脚本。将学生端分成四
组,每组包含十五个学生端,四组学生端分别执行选择选项A的测试脚本、选择选项B的测试
脚本、选择选项C的测试脚本和选择选项D的测试脚本,则智慧教室中有十五个学生端执行
选择选项A的操作,十五个学生端执行选择选项B的操作,十五个学生端执行选择选项C的操
作,还有十五个学生端执行选择选项D的操作,并将选择结果上传至教师端。预设等待时长
为10秒,则当实际执行测试脚本的时间为10秒时,所有学生端同时向教师端提交选择结果。
并获得相应的测试数据,形成测试报告。
本发明的实施例三为:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;发送
所述一第一测试脚本至所述第一设备;获取与所述一第一测试脚本相对应的第二测试脚
本,得到第三测试脚本集合;从所述第三测试脚本集合中随机获取一第三测试脚本;发送所
述一第三测试脚本至所述第二设备集合中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作;
步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。
由上述描述可知,本实施例实现指定测试一用户场景,所有待测交互式软件的客
户端执行相同操作,且所有待测交互式软件的客户端在同一时刻向服务器端提交数据,并
生成测试报告。
本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一
个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出
回答后,提交数据至教师端。现指定教师端的待测用户场景为,教师端向学生端发送一道判
断题,则此时学生端可选择的测试脚本为,执行判断本题为正确的测试脚本和判断本题为
选择错误的测试脚本。若系统随机选择的学生端的测试脚本为执行判断本题为正确的测试
脚本,则智慧教室中的六十个学生端执行判断本题为正确的操作,并将选择结果上传至教
师端。预设等待时长为10秒,则当实际执行测试脚本的时间为10秒时,所有学生端同时向教
师端提交选择结果,获得相应的测试数据,形成测试报告。
本发明的实施例四为:
步骤1、预设待测交互式软件;所述交互式软件包括客户端和服务器端;
步骤2、获取部署所述待测交互式软件的服务器端的第一设备;获取部署所述待测
交互式软件的客户端的第二设备,得到第二设备集合;
步骤3、预设与所述待测交互式软件的服务器端对应的第一测试脚本,形成第一测
试脚本集合;预设与所述待测交互式软件的客户端对应的第二测试脚本,形成第二测试脚
本集合;
步骤4、预设一第一测试脚本;所述一第一测试脚本属于第一测试脚本集合;发送
所述一第一测试脚本至所述第一设备;获取所述第二设备集合中的第二设备的数量,得到
第二设备数;预设测试脚本数;所述测试脚本数在第二设备数以内;从所述第三测试脚本集
合中随机获取与测试脚本数相对应的第三测试脚本,得到第四测试脚本集合;将所述第二
设备集合中的第二设备按所述测试脚本数分组,得到第二设备组;将所述第四测试脚本集
合中的测试脚本依次发送至第二设备组中的第二设备;
步骤5、预设等待时长;
步骤6、获取当前系统时间,得到客户端开始测试时间;
步骤7、所述第一设备解析并执行所述一第一测试脚本;所述第二设备集合中的第
二设备解析并执行所述第二测试脚本;
步骤8、获取当前系统时间,将当前系统时间减去所述客户端开始测试时间,得到
客户端测试时长;若所述客户端测试时长小于所述等待时长,则暂不执行向所述待测交互
式软件的服务器端提交数据的操作,继续等待;否则:执行向所述待测交互式软件的服务器
端提交数据的操作;
步骤9、获取测试脚本返回的测试数据;分析所述测试数据形成测试报告。
由上述描述可知,本实施例实现指定测试一用户场景,不同组的待测交互式软件
的客户端执行不同操作,且所有待测交互式软件的客户端在同一时刻向服务器端提交数
据,并生成测试报告。
本实施例的应用场景为:在现代教学中,电子教学已十分普遍。如一智慧教室由一
个教师端和六十个学生端组成。教师端可向学生端同时发送不同类型的题目,学生端做出
回答后,提交数据至教师端。现指定教师端的待测用户场景为,教师端向学生端发送一道判
断题,则此时学生端可选择的测试脚本为,执行判断本题为正确的测试脚本和执行判断本
题为错误的测试脚本。将学生端分成两组,每组包含三十个学生端,两组学生端分别执行判
断本题为正确的测试脚本和判断本题为错误的测试脚本,则智慧教室中有三十个学生端执
行判断本题为正确的操作,三十个学生端执行判断本题为错误的操作,并将判断结果上传
至教师端。预设等待时长为10秒,则当实际执行测试脚本的时间为10秒时,所有学生端同时
向教师端提交选择结果。获得相应的测试数据,形成测试报告。
综上所述,本发明提供的一种交互式软件并发处理能力的测试方法及系统,通过
在客户端执行相应的测试脚本之前预设等待时长,当执行测试脚本的时间大于所述等待时
长时,才允许客户端执行向服务器端提交数据的操作,可控制所有客户端同一时刻向服务
器端提交数据,从而可测试交互式软件的并发处理能力;通过预设待测交互式软件的服务
器端和客户端的测试脚本,并自动将所述测试脚本发送至已部署待测交互式软件的服务器
端或客户端的设备,所述设备接收到测试脚本后,自动执行相应的测试脚本,实现自动测试
部署在大规模设备上的交互式软件;进一步地,可随机获取服务端的测试脚本,从而实现随
机测试任一用户场景;进一步地,可获取服务端的指定测试脚本,从而实现测试指定用户场
景;进一步地,可实现所有待测交互式软件的客户端执行同一测试脚本,从而可测试所有的
客户端同时做出相同反应时,是否会出现异常情况;进一步地,可实现部署在不同设备的待
测交互式软件的客户端同时执行多种测试脚本,从而可测试多个客户端同时做出多种反应
时,是否会出现异常情况;进一步地,可自动根据测试结果生成测试报告,方便工程师根据
测试报告对被测软件进行相应的修补与完善,以确保交互式软件产品可在设备上正常运
行。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发
明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括
在本发明的专利保护范围内。