rational故障_Rational Performance Tester和Citrix故障排除和最佳实践

Citrix Presentation Server的IBMRational®Performance Tester Extension使用Citrix客户端软件的一部分Citrix ICA Client Simulation API记录和回放用户与基于Citrix的应用程序(在Citrix Presentation Server或XenApp中运行的虚拟应用程序)的交互。或XenDesktop软件)。 多个Microsoft Windows进程在后台交互以实现此目的。 本教程讨论了使用Rational Performance Tester进行Citrix负载测试的最佳实践,以及解决常见问题的技巧。 本教程不包括Citrix Performance Testing的最佳实践。 您可以在Rational Performance Tester知识中心中找到它们。

本教程分为两个部分:录制时的故障排除和最佳实践,以及测试和安排播放。

测试记录期间的Citrix错误

Windows注册表中不存在AllowSimulationAPI密钥

在Citrix客户端(Citrix Receiver或Citrix Online插件)安装后首次启动录制时,您可能会看到在打开的Citrix客户端窗口中突出显示“不支持的功能”。 此错误是由与Citrix客户端有关的Windows注册表项不正确或不完整引起的,最重要的是由Citrix客户端AllowSimulationAPI使用的注册表项激活了ICA Client Simulation API。

如果遇到此错误,请确保Citrix安装程序以具有管理特权的用户身份运行。 即使您以管理用户身份安装了Citrix客户端,偶尔也无法编写AllowSimulationAPI。 如果发生这种情况,您可以手动创建条目。

要验证AllowSimulationAPI密钥是否存在并根据需要创建它:

  1. 打开Windows注册表编辑器(“ 开始”>“运行”>“ Regedit” )。
  2. 如果您使用32位Windows,请导航至HKEY_LOCAL_MACHINE>软件> Citrix> ICA客户端> CCM
  3. 如果您使用64位Windows,则路径为HKEY_LOCAL_MACHINE>软件> Wow6432Node> Citrix> ICA Client> CCM
    Windows注册表中的ICA客户端文件夹
    屏幕截图显示了Windows注册表中的ICA客户端文件夹
  4. ICA客户端的Windows注册表项:在CCM文件夹中,验证键AllowSimulationAPI是否存在并且其值为1。如果值为1,请忽略本节中的其余步骤。
  5. 如果不存在CCM文件夹或AllowSimulationAPI值,请右键单击ICA Client文件夹,然后选择“ 新建”>“密钥”选项。 创建一个新文件夹作为ICA Client父文件夹的子文件夹。
  6. 重命名新文件夹CCM。
  7. 右键单击此文件夹,然后选择“ 新建”>“ DWORD(32位)值”
  8. 命名新属性AllowSimulationAPI。
    创建AllowSimulationAPI
    屏幕截图显示了AllowSimulationAPI的创建
  9. 双击AllowSimulationAPI 。 将打开“编辑DWORD(32位)值”对话框。
    编辑AllowSimulationAPI
    屏幕截图显示了编辑AllowSimulationAPI
  10. 在“编辑DWORD(32位)值”对话框中,在“值数据”字段中键入1 ,然后单击“ 确定”
  11. 如果录制问题仍然存在,请重新启动系统以确保注册表设置已生效。

清理Citrix流程

Citrix客户端启动时,它将启动一些进程,尤其是Citrix连接中心(concentr.exe)和Citrix Connection Manager(wfcrun32.exe)。 在关闭与Citrix服务器的连接后,Citrix客户端窗口退出后,这些过程将继续运行。

因此,当您使用Rational Performance Tester启动Citrix测试记录时,可能会遇到以下错误。 在Citrix录制客户端窗口打开之后,将发生这些错误:

  • 不支持的功能
  • 协议驱动程序错误

在这种状态下无法捕获和生成新的Citrix测试。 要恢复并使记录成功运行,请终止Citrix连接中心(concentr.exe)和Citrix连接管理器(wfcrun32.exe)。 这将迫使Citrix客户端在下次尝试连接时打开这些进程的新实例。 要结束这些过程,请使用Windows任务管理器或Windows命令行中的taskkill实用程序。

由Rational Performance Tester启动的CitrixRuntime.exe和由Citrix客户端启动的wfica32.exe进程可能由于测试的异常退出或计划的回放而保留在系统中。 如果在录制过程中发生错误,请在开始新录制之前终止这些过程。 确保先结束concentr.exe进程。

Citrix Online插件与Citrix Receiver

Citrix客户端软件以前称为Citrix Online Plug-in。 最新的Citrix Online插件独立版本(V12.3)于2012年4月发布。不再受支持。 Citrix Online Plug-in软件现已成为Citrix Receiver软件包的一部分。 第一个Citrix Receiver(V3.1)包括Online Plug-in V13.1,并且版本命名法以相同的模式继续进行。

用于Rational Performance Tester记录和回放的机器不应同时安装Citrix Online插件和Citrix Receiver。 要确认这一点,请在Windows“控制面板”中的“ 添加/删除程序”实用程序中查找并确认仅安装了一个。

记录并最大化应用程序窗口

在记录鼠标单击事件时,ICA Client Simulation API会捕获动作的x和y坐标。 在回放期间,Rational Performance Tester指示ICA Client Simulation API在相同的坐标上执行回放。 这使得动作对播放时应用程序窗口的相对位置的差异敏感。 如果应用程序窗口在屏幕上的其他相对位置打开,则所需的GUI元素不再位于同一位置,并且鼠标事件对应用程序没有任何影响。 可能会导致播放失败。

下图显示了针对简单应用程序Windows记事本记录的Citrix测试。 在此测试中:

  • 用户打开记​​事本
  • 类型foo
  • 单击鼠标退出应用程序

该测试包含坐标(577,402)上的鼠标左键单击事件。 这些坐标现在对应于用户关闭“ 保存”对话框的位置。

Citrix鼠标单击测试元素
屏幕截图显示了Citrix鼠标单击测试元素

如果在播放期间,“保存”对话框窗口或“记事本”窗口在与录制时不同的位置打开,则鼠标单击坐标(577,408)无效。 Citrix测试将导致注销失败,并且同一用户下次尝试登录时会打开意外窗口。

为避免这种情况,请在录制时使用热键或快捷方式。 如果某些操作没有关联的快捷方式或热键,请记录与最大化的主窗口的交互。 随着应用程序窗口的最大化,相对位置发生变化的机会会减少,从而产生可靠的播放效果。 将键盘操作记录到Windows快捷方式中,该快捷方式在应用程序主窗口启动后立即最大化。

多用户Citrix计划运行的最佳做法

通常,不是在工作台机器上完成多用户Citrix计划回放,而是在使用IBM Rational Performance Tester Agent软件的另一台机器上进行回放。 本节描述了一些在Rational Performance Tester代理上运行多用户Citrix调度的最佳实践。

设置代理计算机以进行Citrix回放

使用远程代理计算机运行工作负载时需要了解的重要事项是:

  • 确保Rational Performance Tester代理是32位的。 Citrix测试播放不适用于64位代理软件。
  • Citrix回放需要AllowSimulationAPI的注册表项。 与工作台计算机一样,请确保Citrix客户端以具有管理特权的用户身份安装。
  • 验证AllowSimulationAPI注册表项在正确的位置,值为1。

限制并发登录

在负载测试方案中,通常是让虚拟用户长时间登录,执行操作和退出循环。 随着系统中虚拟用户数量的增加,回放中,多个Citrix用户可能会同时登录到服务器。 当多个用户同时从同一台代理计算机登录Citrix服务器时,Citrix会话的可靠性问题可能会导致回放错误。 在多用户日程表回放期间,这种情况很少发生,具体取决于环境因素,例如完成登录所需的时间,因此请不要对所有日程表都应用此解决方案。 仅在必要时使用它。

加速时间可以通过分发用户登录名来缓解这种情况。 但是在使用循环长时间运行的测试中,仅具有加速时间可能不够。 但是,您可以设置计划以防止多个并发登录。

下图显示了一种防止并发登录的方法。 在此示例中,使用自定义代码元素在文件系统中创建了登录锁定文件。 这是在启动Login元素之前发生的。 用户完成登录后,另一个自定义代码将删除此文件。

自定义代码元素可锁定Citrix登录
屏幕截图显示了用于锁定Citrix登录的自定义代码元素

下面的清单显示了运行此代码的虚拟用户。 在继续登录之前,它验证锁定文件不存在。 如果存在锁定文件,它将等待直到锁定文件在系统中不再可用。 该代码还包括一种检测过期锁定文件的机制。

虚拟用户代码
package customcode;

import java.io.File;
import java.io.IOException;
import java.util.Calendar;
...
public String exec(ITestExecutionServices tes, String[] args) { 
    File connectionLock = new File("C://path//to//lockFile"); 
    while(true){ 
        if(connectionLock.exists()){
            tes.getTestLogManager().reportMessage("Another VU logging in now. Will try later."); 
            try { // Delete stale lock file if any 
                long timeStamp = connectionLock.lastModified(); 
                Calendar rightNow = Calendar.getInstance(); 
                 if ((rightNow.getTimeInMillis() - timeStamp) > (5 * 60 * 1000)){ //> 5 mins
                     tes.getTestLogManager().reportMessage("Stale lock file to be removed");
                     connectionLock.delete();
                 }
                 //zzz... 
                 Thread.sleep(1000);
                } catch (Exception e) { 
                    e.printStackTrace();
           }  
       }else{
            try {
                 connectionLock.createNewFile();
                 tes.getTestLogManager().reportMessage("Creating Lock File");
            }catch (IOException e) {
                e.printStackTrace();
            } 
      break;
      }
 }
 return null;
}

以下清单是释放锁定的自定义代码(删除连接锁定文件)。 这应该在用户成功登录后运行。

释放连接锁的示例代码
... 
public String exec(ITestExecutionServices tes, String[] args) {
    File connectionLock = new File("C://path//to//lockFile"); 
    if(connectionLock.exists()){
        tes.getTestLogManager().reportMessage("Removing login lock file"); 
        connectionLock.delete();
     }
     return null;
}

注意:还有其他方法可以使用自定义代码实现锁定,例如使用执行引擎数据区域。

结论

Citrix性能测试具有挑战性,即使对于有经验的开发人员也是如此。 设置客户端系统以及Rational Performance Tester与Citrix ICA Client Simulation API的交互可能会很复杂。 在本教程中,您了解了一些常见问题以及这些问题的解决方案。 使用此信息和Rational Performance Tester知识中心来解决Citrix性能测试项目中可能出现的一些障碍。


翻译自: https://www.ibm.com/developerworks/library/d-rational-citrix-troubleshooting-trs/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值