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

发表于:2012-03-16来源:IBM作者:董文涛点击数: 标签:性能测试
可以方便测试终端用户系统启动时间; 可以模拟多种用户类型(比如普通使用办套件的用户,播放 flash 视频 、播放 WMV 视频 、播放高清视频等高端用户)的体

  可以方便测试终端用户系统启动时间;

  可以模拟多种用户类型(比如普通使用办套件的用户,播放 flash 视频、播放 WMV 视频、播放高清视频等高端用户)的体验值;

  可以模拟多种终端用户的组合类型,切近真实情况;

  可以实时监控所有终端用户的行为状态;

  性能测试指标

  虚拟桌面流服务器的 CPU,内存,网络吞吐量,磁盘读写

  云桌面系统的 CPU,内存,网络吞吐量,存储磁盘读写

  云桌面系统运行程序的响应延迟时间(毫秒)

  云桌面系统播放媒体(音频,视频)的体验水平

  测试设计

  设计如下图 3 所示,STAX 解析 XML 任务文件,远程驱动安装好 STAF 的机器并发或者顺序执行 XML 中定义的一系列任务(顺序执行或者随机执行,以及不同 workload 的比例也都可以实现),这些任务的具体内容(包括用户的思考等待、桌面和应用程序的操作等)都由 Autoit 脚本完成,STAX 主要负责任务的调度和工作负荷的构建,其在调用外部脚本的时候能够传入一系列参数到 Autoit 的命令行接口中,因而既可以方便地调配虚拟用户数的梯度增长或者并发数量,又可以控制每个虚拟用户的行为(循环,条件判断等)。

  图 3. 性能测试设计

图 3. 性能测试设计

  查看大图。

  测试场景

  如下图 4 所示,本测试使用 ESX 创建的虚拟机来模拟瘦客户机(也就是虚拟的终端用户)。因而所有的虚拟机便于统一配置和管理。

  图 4. 测试场景

图 4. 测试场景

  测试环境

  如图 5 所示,该测试环境的流服务器采用基于流(Streaming)的技术把不同的操作系统或者应用程序分发到客户端(无盘或者有盘),测试中会预先用真实的瘦客户机执行测试,测试结果作为基准值,然后跟虚拟机的测试结果进行对比,确保结果一致性,从而保证用虚拟机模拟终端的真实性。

  图 5. 测试环境

图 5. 测试环境

  测试准备

  第一步:安装配置

  1. 先根据安装向导安装 STAF(默认安装在 C:\STAF)

  2. 然后下载 STAX,找一台性能测试中的主控制台机器 ,在其 C:\STAF 下新建目录 services,把解压的 stax 拷贝到 service 目录下即可,启动 STAFProc 进程,然后运行 C:\STAF\services\stax\STAXMon.jar ( 注意设置好 java 路径,STAX3.4.5 直接运行 STAXMon.jar 即可打开 STAX 的程序界面 )

  3. 配置 C:\STAF\bin\STAF.cfg, 在默认配置的基础上修改几处即可:

 # Turn on tracing of internal errors and deprecated options 
 trace enable tracepoints "error deprecated"

 # Enable TCP/IP connections 
 interface ssl library STAFTCP option Secure=Yes option Port=6550 
 interface tcp library STAFTCP option Secure=No  option Port=6500 

 # Set default local trust 
 trust machine local://local level 5 

 # Add default service loader 
 serviceloader library STAFDSLS 

  # 需要配置的地方,*.*.*.* 可以设置为单个 IP 或者 IP 段,且每个远程的 STAF 机器也需要配置

 # to trust all machines, can also use specific IP address here for 
 # security consideration 
 TRUST  MACHINE  *.*.*.* LEVEL 5 

 #OPTION JVM=C:\Program Files\Java\jdk1.6.0_22\bin\java.exe 
 SERVICE STAX LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAX.jar 
 OPTION J2=-Xmx384m 
 SERVICE EVENT LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar
 SET MAXQUEUESIZE 10000 

  第二步:优化配置

  要使 STAX 满足高并发的性能需求,必须对 STAF/STAX 做优化配置:

 ########################## STAF performance tunning ################ 
 # Increase the CONNECTIMEOUT to 30 seconds for the tcp interface, specify: 
 INTERFACE tcp LIBRARY STAFTCP OPTION SECURE=No 
 OPTION PORT=6500 OPTION CONNECTTIMEOUT=30000
 # Increase the CONNECTTIMEOUT to 30 seconds for the ssl interface, specify: 
 INTERFACE ssl LIBRARY STAFTCP OPTION SECURE=Yes 
 OPTION PORT=6550 OPTION CONNECTTIMEOUT=30000
 # increase the CONNECTATTEMPTS from a default of 2 attempts to 3 
 SET CONNECTATTEMPTS 3 

  第三步 : 编写脚本

  1. 下面需要编写 STAX 并发调度的 XML 文件,目标如下图所示:

  图 6. 实现 Ramp up 的 workload 图示

图 6. 实现 Ramp up 的 workload 图示

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