基于公有云桌面的应用软件性能测试方法转让专利

申请号 : CN201610627120.3

文献号 : CN106294141B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡伟锋

申请人 : 叠云(北京)科技股份有限公司

摘要 :

一种基于公有云桌面的应用软件性能测试方法,步骤如下:根据应用软件性能指标要求,在公有云平台上创建安装有被测软件的客户机和服务器;根据应用软件的待测操作场景,在客户机上创建测试脚本,在服务器上创建性能监测脚本;将安装有被测软件和测试脚本的客户机在云平台上生成系统镜像文件,以此镜像文件批量生成多台客户机;调度主机上设置通信对象并绑定通信端口,以多线程方式建立并侦听与各客户机和/或服务器之间的通信;根据测试要求,调度主机向客户机发送脚本运行信令,并接收记录客户机和/或服务器运行待测应用软件时的性能状况。该方法能够最大程度真实模拟网络应用软件实际用户操作场景,准确真实反应应用软件性能和用户体验。

权利要求 :

1.一种基于公有云桌面的应用软件性能测试方法,步骤如下:

1)根据应用软件性能指标要求,在公有云平台上创建安装有被测软件的客户机和服务器;

2)根据应用软件的待测操作场景,在客户机上创建测试脚本,在服务器上创建性能监测脚本;

3)将安装有被测软件和测试脚本的客户机在云平台上生成系统镜像文件,以此镜像文件批量生成多台客户机,同时将安装有被测软件和性能监测脚本的服务器在云平台上生成系统镜像文件,以此镜像文件生成服务器;

4)在调度主机上设置通信对象并绑定通信端口,以多线程方式建立并侦听与各客户机和/或服务器之间的通信;

5)根据测试要求,调度主机向客户机发送脚本运行信令,并接收记录客户机和/或服务器运行待测应用软件时的性能状况;

所述测试方法创建测试脚本的步骤如下:

2.1)根据应用软件的待测操作场景,记录待测应用软件需要的输入设备操作命令;

2.2)根据公有云平台操作系统提供的输入接口函数将输入设备操作命令封装于测试脚本文件中;

2.3)设置关键功能操作,并在相应的输入设备操作命令上设置初始时间点、关键功能操作结果检查验证点、标记关键功能执行完成状态的软件界面和/或关键功能执行完成时间点;

2.4)编制脚本接口函数,并定义脚本接口函数调用参数及响应结果。

2.如权利要求1所述的一种基于公有云桌面的应用软件性能测试方法,其特征在于,所述调度主机向客户机和/或服务器发送脚本运行信令,并接收记录客户机和/或服务器运行待测应用软件时的性能状况的方法具体为:

5.1)以多线程方式建立与所有待测客户机和/或服务器的通信连接;

5.2)向待测客户机和/或服务器发送具有统一启动时间、持续时间和/或循环次数参数的脚本接口函数执行命令;

5.3)接收待测客户机和/或服务器返回的各关键功能操作结果检查验证点的响应结果,统计并显示脚本执行情况、平均响应时间和待测客户机和/或服务器的性能参数。

3.如权利要求1~2之一所述的一种基于公有云桌面的应用软件性能测试方法,其特征在于,所述创建安装有被测软件的客户机和服务器的公有云平台为不同物理地域下的公有云平台。

说明书 :

基于公有云桌面的应用软件性能测试方法

技术领域

[0001] 本发明涉及信息技术领域,具体涉及一种软件测试技术。

背景技术

[0002] 现在,互联网信息技术越来越普及,用户大量增加,相应的网络应用软件经常需要在海量用户同时操作时仍能够维持良好的响应并实现相应的功能。因此对于这些软件进行性能测试时需要通过编写自动化测试工具对网络软件进行多种应用场景下的模拟性能测试。但是性能测试一般需要依赖真实的硬件及操作系统环境,而对于海量用户实际操作性能测试的需求,常常会受到人力和物力的限制。当前的应用软件性能测试工具通常是模拟用户实际操作过程,并抓取操作应用软件时客户机向服务器发送的数据包,并根据数据协议解析数据包,生成相应的测试脚本。在实际测试时,通过多线程同时执行测试脚本,从而向服务器发送相应的数据包,以实现性能测试。然而,现有软件往往设计非常复杂,并且多种协议进行数据发送,甚至会使用加密的网络数据传输,因此现有性能测试工具往往不能真实模拟软件操作环境,性能测试大打折扣。而且对于多媒体或娱乐软件,往往还需体现用户体验效果,而现有性能测试工具无法同时监视不同硬件和操作系统环境下客户机的实际运行效果。

发明内容

[0003] 为解决上述问题,本发明提出一种基于公有云桌面的应用软件性能测试方法。该方法能够最大程度真实模拟网络应用软件实际用户操作场景,准确真实反应应用软件性能和用户体验。
[0004] 本发明实现上述目的的技术方案是:
[0005] 一种基于公有云桌面的应用软件性能测试方法,步骤如下:
[0006] 1)根据应用软件性能指标要求,在公有云平台上创建安装有被测软件的客户机和服务器;
[0007] 2)根据应用软件的待测操作场景,在客户机创建测试脚本,在服务器上创建性能监测脚本;
[0008] 3)将安装有被测软件和测试脚本的客户机在云平台上生成系统镜像文件,以此镜像文件批量生成台客户机,同时将安装有被测软件和性能监测脚本的服务器在云平台上生成系统镜像文件,以此镜像文件生成服务器;
[0009] 4)在调度主机上设置通信对象并绑定通信端口,以多线程方式建立并侦听与各客户机和/或服务器之间的通信;
[0010] 5)根据测试要求,调度主机向客户机发送脚本运行信令,并接收记录客户机和/或服务器运行待测应用软件时的性能状况。
[0011] 上述测试方法创建测试脚本的步骤如下:
[0012] 2.1)根据应用软件的待测操作场景,记录待测应用软件需要的输入设备操作命令;
[0013] 2.2)根据公有云平台操作系统提供的输入接口函数将输入设备操作命令封装于测试脚本文件中;
[0014] 2.3)设置关键功能操作,并在相应的输入设备操作命令上设置初始时间点、关键功能操作结果检查验证点、标记关键功能执行完成状态的软件界面和/或关键功能执行完成时间点;
[0015] 2.4)编制脚本接口函数,并定义脚本接口函数调用参数及响应结果。
[0016] 上述测试方法中,所述调度主机向客户机发送脚本运行信令,并接收记录客户机和/或服务器运行待测应用软件时的性能状况的方法具体为:
[0017] 5.1)以多线程方式建立与所有待测客户机和/或服务器的通信连接;
[0018] 5.2)向待测客户机发送具有统一启动时间、持续时间和/或循环次数参数的脚本接口函数执行命令;
[0019] 5.3)接收待测客户机返回的各关键功能操作结果检查验证点的响应结果,统计并显示脚本执行情况、平均响应时间和待测客户机的性能指标。
[0020] 5.4)接收服务器性能监测脚本返回的服务器性能指标,并根据性能指标以图表的方式展示服务器的性能状况。
[0021] 如需实现不同物理地域情况下的应用软件性能模拟,所述创建多台安装有被测软件的客户机和服务器的公有云平台为不同物理地域下的公有云平台。
[0022] 与现有技术相比,本发明提供的基于公有云桌面的应用软件性能测试方法具有以下优点和效果:
[0023] A)由于本发明技术方案通过记录待测应用软件需要的输入设备操作命令实现软件使用模拟,无需根据数据协议解析数据包,因此可以针对所有类型的应用软件进行性能测试;
[0024] B)本发明的性能测试环境搭建在公有云平台上,通过创建多台安装有被测软件的客户机和服务器,实现海量用户在不同物理地域,不同配置,不同操作系统同时操作应用软件的场景模拟,不仅大大降低了性能测试环境的架设成本,且性能测试方案也可根据性能测试过程的需要实时修改;
[0025] C)通过设置关键功能操作,并在相应的输入设备操作命令上设置初始时间点、关键功能操作结果检查验证点、标记关键功能执行完成状态的软件界面和/或关键功能执行完成时间点,技术人员可以根据关键功能操作情况,针对性的提出性能优化方案,对软件进行改进。

附图说明

[0026] 图1为本发明所述一种基于公有云桌面的应用软件性能测试方法一具体实施例的测试环境架构图;图2为本发明所述一种基于公有云桌面的应用软件性能测试方法一具体实施例的性能测试流程图。

具体实施方式

[0027] 下面结合附图和实施例对本发明做进一步的详细描述。
[0028] 本例待测的应用软件为一款大规模多地在线集中视频培训C/S软件系统,该软件需要满足上千个用户使用自有的装有不同版本微软操作系统的电脑通过各自的帐号密码异地同时登陆软件系统,进行在线视频学习培训,要求性能满足同时访问的用户5秒以内能够登陆软件系统,打开文件5秒以内可展示,在线视频播放不会造成2秒以上卡顿,服务器CPU和内存不得持续30秒以上的90%占用率。
[0029] 由于该软件为一款具有加密用户信息传输和编码多媒体信息传输的软件,并且需要满足多地同时登陆的要求,因此采用已有的性能测试工具,在传输加密信息和对多媒体信息进行解码解析需要花费大量时间和资源消耗,即使通过软件接口或系统开发接口完成测试,也无法准确捕捉文件是否及时展示、视频播放是否卡顿等实际运行状况,并且完成多地模拟测试,现有的性能测试工具也无法实现。鉴于此,参见图1和图2,本发明提供的应用软件性能测试方法,步骤如下:
[0030] 1)根据应用软件性能指标要求,在云平台上创建测试客户机和服务器并分别安装被测软件的客户端和服务器端;
[0031] 2)根据应用软件的待测操作场景,在客户机和上创建测试脚本,步骤如下:
[0032] 2.1)据应用软件的待测操作场景,记录待测应用软件需要的输入设备操作命令;
[0033] 例如,该软件在微软Windows操作系统下的登陆操作为:通过快捷键WIN+R打开Windows运行窗口,输入待测软件名称,按回车键运行待测客户端软件,通过鼠标点选用户名输入框输入用户名,按快捷键TAB切换并输入用户密码,按回车键登陆系统。
[0034] 2.2)根据Windows操作系统提供的输入接口函数将步骤2.1)得到的输入设备操作命令封装于测试脚本文件中;
[0035] 2.3)设置关键功能操作,并在相应的输入设备操作命令上设置初始时间点、关键功能操作结果检查验证点、标记关键功能执行完成状态的软件界面和关键功能执行完成时间点;
[0036] 例如,设置打开文件操作、视频播放操作、视频文件切换操作等关键功能操作,并设置相应操作的初始时间点和完成时间点、关键功能操作结果检查验证点、标记关键功能执行完成状态的软件界面和关键功能执行完成时间;
[0037] 2.4)编制脚本接口函数,并定义脚本接口函数调用参数及响应结果。
[0038] 3)将安装有被测软件和测试脚本的客户机在云平台上生成系统镜像文件,以此镜像文件批量生成1000台客户机;同时将安装有被测软件和性能监测脚本的服务器在云平台上生成系统镜像文件,以此镜像文件生成服务器
[0039] 4)在调度主机上设置通信对象并绑定通信端口,以多线程方式建立并侦听与各客户机和服务器之间的通信;
[0040] 5)根据测试要求,调度主机向客户机和服务器发送脚本运行信令,并接收记录客户机和服务器运行待测应用软件时的性能状况,方法具体为:
[0041] 5.1)以多线程方式建立与所有待测客户机和服务器的通信连接;
[0042] 5.2)向待测客户机和服务器发送具有统一启动时间、持续时间和循环次数参数的脚本接口函数执行命令;
[0043] 例如,测试需要各客户端需要在设定在北京时间2016年7月29日上午9时同时登陆并运行待测软件,打开视频文件播放长达50秒,并循环10次,则向待测客户机和服务器统一发送该北京时间、播放时长、循环次数等参数。
[0044] 5.3)接收待测客户机和服务器返回的各关键功能操作结果检查验证点的响应结果,统计并显示脚本执行情况、平均响应时间和待测客户机和/或服务器的性能参数。
[0045] 由于本例中需要软件对于在线视频播放及在线游戏软件的流畅性和图像清晰度做性能测试,因此在执行性能测试前,在客户机上按一定时间间隔采样获取一段标准视频或动画的截图序列,并以每一截图所在标准视频或动画中的时间点在步骤2)创建测试脚本时标记相应的视频播放时间点,然后在进行性能测试过程中在标记相应的视频播放时间点截取客户机播放的视频图片,通过OpenCV工具比对当前时间节点的截图和视频图片的相似度,若相似度小于设定阈值,则将视频图片与上一时间节点的截图进行相似度比对,并累计时间节点间隔数,直至相似度超过设定阈值为止;若视频图片与截图序列中所有截图的相似度均未达到设定阈值,则标记视频图片所在视频播放时间点为不清晰视频时间点。循环完成所有截图序列与相应视频图片的比对,并计算平均累计时间节点间隔数,以循环过程中超出设定值的间隔数、平均累计时间节点间隔数以及所有不清晰视频时间点作为性能参数,返回调度主机。
[0046] 采用该性能测试方法由于是直接操作客户端软件来产生并发压力,无需考虑软件如何使用加密算法和通信协议规则,能很好的模拟用户的真实操作场景。没有对整个系统进行拆分可以忠实的记录整个系统的性能表现,可以实现跨地域互联网的通信场景,可以反映不同配置客户机的性能状况给各客户机做出配置选择参考,在此场景上本方法比现有的性能测试工具有较大的优点。