基于 STAF/STAX + Autoit 的性能测试方案实现桌面云扩展性测

发表于:2012-03-16来源:IBM作者:董文涛点击数: 标签:性能测试
桌面云性能评估方法概述 在桌面云中,服务质量(QoS)同样非常重要,评估 Qos 可以采用定量分析方法,比如,通过在桌面云中不断繁殖虚拟桌面的方式,直到云平台超载且性能有所下降

  桌面云性能评估方法概述

  在桌面云中,服务质量(QoS)同样非常重要,评估 Qos 可以采用定量分析方法,比如,通过在桌面云中不断繁殖虚拟桌面的方式,直到云平台超载且性能有所下降。又如,在计算机安全领域,[1]有研究者使用统计方法来获取用户行为特征,以此来驱动“真实的”,二进制和基于 GUI 的程序运行,这种驱动的实现是通过自适应的 GUI 应用程序的重放来高效模拟实物 (“人”) 的行为来实现的。目前虽然国外有些针对桌面云和虚拟化平台的性能测试工具,但是各自有其优缺点,难以满足桌面云架构的设计、计划和评估的不同需求。评估终端用户的使用体验 (UX) 是解决方案中非常重要的一个环节,良好的用户感受会大大提高客户对产品的认同度,要提高评估的准确度,就需要站在客户的角度,考虑客户的使用特点,并采取有效的评估方法。基于这些方面,我们的 UX 评估通常综合使用主观评测 + 客观评测的方法。下图 1 是桌面云的典型结构:

  图 1. 桌面云示意图

图 1. 桌面云示意图

  回页首

  桌面云解决方案中的主要性能测试目标

  桌面云是云计算的一项重要应用, 寄宿与云计算模型下的应用程序服务具有复杂的供应(provision)、组成、配置和发布的需求。在变化的系统、用户配置和需求的情况下,要能用重用的方式来评估云供应策略,应用程序负载模型和资源的性能模型不是件容易的事情。桌面云解决方案中的主要性能测试目标有:

  供应(Provision)云桌面系统和部署应用程序的速度

  验证云虚拟化管理程序(Virtualization Hypervisor)能支持的不同硬件配置 (CPU、RAM、Network) 的最大并发用户数(即 Virtual Desktop)

  衡量采用不同的远程协议 (RDP/ICA) 的桌面云解决方案对网络带宽的最低要求

  评估终端用户的使用体验。一般通过衡量云终端用户操作应用程序的响应时间,如打开应用程序,浏览 Web 页面、浏览 Word/Excel/PPT/PDF 等文件,输入文字,播放视频媒体等,结果反映的是用户的真实感受

  发现资源瓶颈或者应用程序缺陷等。

  针对上面的第四点,为了有效的监视用户的体验,有三个主要的组件需要考虑:

  真实和虚拟的桌面性能 -- 启动时间、进程延迟、CPU/RAM 利用、不响应进程、错误信息、挂掉的应用程序等。

  应用程序的性能 -- 延迟、响应时间、端到端的商业事务时长,即独立于桌面技术和应用的 HTTP(s)、AJAX、Client/Server、Jave、.NET、XenAPP/ICA,RDC、VDI 等。

  终端用户的生产活动 -- 终端用户对应用程序、模块或者函数的使用统计信息、应用程序使用的关联、执行各种商业事务过程的时间等,比如某个商业用户,发送了多少邮件,创建了多少的服务请求,进行某一单交易花了多长时间。

  以上的三种组件之间是动态和持续影响终端用户在 IT 服务的体验的,因而这些组件的值需要实时度量。在虚拟化的环境,像传统的 CPU 和 RAM 的度量值并不能够反应性能情况,传统的系统管理方案依赖于衡量的操作系统的运行的参数,SNMP 检测只是反映 Windows 操作系统管理指示(WMI)计数器的值,并不能反映云桌面是虚拟宿主机中的一个客户系统,这些信息在坏的情况甚至能起误导的反作用,类似地,专门监控网络的应用或者设备在对虚拟机器和后台网络的之间的网络使用情况的监控的结果也觉察不到云桌面机器的使用性能下降,这种性能下降可能是由于云桌面机器内的资源竞争使用引起。况且,目前的虚拟化技术发展倾向资源的分布式调度技术,使资源的利用更加充分和高效,这样,即使获取到虚拟化平台所有的影响服务性能的 CPU、RAM、IO 带宽,并且监控所有的虚拟化平台客户系统,这些数据也不能提供对终端用户可能遇到的性能问题的真切的洞察。这就更需要有中统一的多层次(网络、中间件、系统消息循环)的对用户体验(UX)监控技术。

  回页首

  测试类型

  基线测试 (Baseline test)

  容量测试 (Capacity test)

  扩展性测试 (Scalability test)

  稳定性测试等 (Stability test)

  回页首

  为什么采用 STAF/STAX + Autoit

  1. STAF/STAX 自动化框架解决底层的系统调用,STAF 提供许多通用的内置服务 (进程操作、文件传输、同步、事件调度、通知、工作流等),简单易用的命令行操作,跨平台

  2. 支持 Java,Python,C/C++

  3. 易于实现工作流的并发和序列化,通过编写 XML 即直接调用 STAF/STAX 提供的任务调度接口,且能实时察看客户端实时的运行状态,实时数据采集等

  4. Autoit 跟 Windows 系统结合紧密,有许多的实用功能或者设置,便于模拟 Windows 终端的应用程序的操作等,提高数据结果的可信度。

  回页首

  测试模型

  图 2. 云桌面性能测试对象模型

图 2. 云桌面性能测试对象模型

  回页首

  基于 STAF/STAX+Autoit 的解决方案的实现

  STAF/STAX 虽然是做自动化测试的,但是其灵活的任务调度使其也可以胜任性能方面的 中小规模的测试。该解决方案主要使用 STAX 的并发调度,远程驱动终端用户执行自定义的任务和操作。该方案的实现是针对基于流模式的云桌面部署,但是针对基于远程访问协议 (RDC/ICA) 的桌面云部署同样适用。

  测试策略

  采用 N+1,N+2,N+3 的测试方法,即模拟 N+1,N+2,N+3 的用户执行特定的活动,并衡量其中的 1,2,3 个机器的使用情况,因为这个 1,2,3 个机器的使用情况能反映总体的使用情况。用户的体验值的主要依据是程序界面的响应时间延迟,把不同的应用程序的操作的响应延迟划分几个区间,每个区间对应用户的体验水平(如体验:优良,一般,勉强接受,不能接受等)。

  功能特性

原文转自:http://www.ltesting.net