技术开发 频道

新版LoadRunner9.5:简化使用 增强安全

【IT168 专稿】

    最近HP发布新版LoadRunner9.5。新版本的LoadRunner在VuGen、Controller和Analysis三个模块中都有所增强,添加了一些新特性。

    下载和安装

    在HP的网站上,LoadRunner9.5已经可以从下面的网址下载试用:

    https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-126-17^8_4000_100__

    安装过程与以前版本基本一致,注意需要安装.NET Framework 3.5。安装时发现有错别字,在选择安装类型时,“完成”应该为“完全”,这么明显的错误,HP的测试人员居然没有发现,该打屁股,哈哈。

    安装完成后打开VUGen,可以发现Start Page略有改变,左边区域4个大图标按钮分别代表新建脚本、打开脚本、从模板创建脚本,还有新加入的功能“Protocol Advisor”。

    协议“顾问”—Protocol Advisor

    Protocol Advisor是LoadRunner9.5新添加的功能,你可以使用Protocol Advisor来帮助你决定采用什么样的协议来录制脚本。Protocol Advisor可以扫描你的应用程序,检查其中使用到的协议,并把他们显示在列表中,列出来的协议可以作为指引,指导我们应该采用什么样的协议来录制应用程序。

    测试新手在使用LoadRunner时常常问的问题是“为什么我录制不了脚本?”、“我应该采用什么协议来录制?”。现在有了Protocol Advisor,问这些问题的人应该会少很多了吧!与其盲目选择协议去录制,不如在录制之前先运行Protocol Advisor,让Protocol Advisor告诉你应该采用什么样的协议。

    在“预录制”过程中,Protocol Advisor记录所有找到的协议,然后把他们从高层次到低层次的顺序列出来。

    但是需要注意的是,Protocol Advisor也不是功能较多的,不可尽信,例如它通常都会把COM/DCOM、Java、.NET、WinSocket、LDAP这些协议列出来,但是未必适合选择作为录制的协议。

    作为性能测试工程师,深入了解被测试的应用程序的开发语言、采用的架构、业务流程中使用的协议,这些知识都是必不可少的,另外,多与开发人员、设计人员充分沟通,我想即使没有Protocol Advisor,我们也能比较合理地选用恰当的协议来录制和开发性能测试脚本。

    广域网模拟—WAN Emulation

    通过广域网模拟,我们可以比较精确地测试部署到广域网上的产品的点到点性能。通过在测试环境的局域网中引入广域网的特点,例如延时、丢包、链接错误等,你可以拥有一个更贴近真实部署环境的性能测试环境。

    其实在测试工具中模拟网络环境不是什么新鲜事,在VSTS的负载测试工具中也有网络组合设置的功能。

    对于同一个Web应用程序,用户可能通过不同的网络类型来访问。负载测试如果想真实地模拟这种情况,则需要进行网络组合的配置。VSTS的网络组合设置支持的网络类型包括:

    · LAN
    · T3 6.0Mbps
    · T1
    · Cable/DSL 1.5Mbps
    · Cable/DSL 768k
    · Cable/DSL 384k
    · Dial-up 56k
    · Dial-up 33.6k
    · Dial-up 28.8k

    负载测试通过在测试中注入等待时间来模拟不同的网络带宽的情况,通过指定分发来指定虚拟用户使用某种网络类型的概率。在LoadRunner的Run-time设置中,也有Network设置这一项。

    而对于广域网的模拟,LoadRunner在以前的一些版本中,WAN Emulation也早就曾经出现过(上一次看到WAN Emulation的身影是在2005年发布的8.1版本上),现在HP采用了不同的策略,不在LoadRunner中绑定WAN Emulation的功能,而是让用户自己选择和引入HP的第三方合作伙伴的产品,例如Shunra的VE Desktop。

    分析人士认为这种伙伴关系给软件开发者和QA提供了一种新层次的软件测试能力(参考EMA的分析报告《Shunra Partners with HP, Microsoft to Provide Developers with View of Application Performance Over the Network》)。

    更安全的测试环境—Secure Channels

    HP认为在负载测试的环境中,防止黑客的攻击是很重要的,通过安全通信通道来确保机密性、可信性。在LoadRunner9.5中,引入了Secure Channels机制,可以在Controller和Load Generator之间创建安全的通信通道,防止黑客的网络攻击。

    通过在参与通讯的主机上设置相同的Key来建立安全的通讯通道,如果Key不同的话,走的就不是安全通道了。

    可以通过Host Security Setup工具来设置安全通讯。对于所有远程主机的安全设置,LoadRunner9.5还提供了Host Security Manager工具来管理。

    自定义测试结果的分析—Analysis API

    新版本的LoadRunner中,Analysis模块暴露了新的API集,可以用于提取和分析负载测试数据。通过这些API,我们可以自己编写程序,从测试结果中创建analysis session、分析analysis session中的原始数据,提取关键session的度量数据。

    这样的话,我们可以自己编写程序执行Analysis的某些功能,提取数据给外部的其他程序或软件使用。例如,我们可以让analysis session的创建和分析在无人值守的情况下进行、自己定义测试数据的提取和分析方法。

    在LoadRunner9.5的安装目录的\SAMPLES\AnalysisAPI目录下,提供了一个样例程序。

    通过创建.NET项目,加入Analysis.Api.dll 、Analysis.ApiSL.dll 和Analysis.ApiLib.dll这3个DLL就可以使用LoadRunner的Analysis API了。例如下面的C#代码用于创建LrAnalysis这个主对象并打开一个Session:

    /*
    Create main object
    The first action in an application is to create a main object.
    */
    public void CreateAnalysisApiObject()
    {
        LrAnalysis analysisApi;
        analysisApi = new LrAnalysis();
        //an object for easy access
        Session currentSession = null;
        currentSession = analysisApi.Session;
        //Here we can start work with API. See other "How to…topics
    }

    如果想打开一个已经有的session文件,则可以参考下面的代码:

    /*
    Open session
    The following code shows how to open asession from an existing LRA file.
    For more information about the analysisApi object, see "Create main object".
    For more information about RunTimeErorrs, see "Set RunTimeErrors to "Silent mode".
    */

    public bool OpenSession(string filename)
    {
        //open session from specified .lra file
        //You must setup RunTimeErrors object to "Silent mode"
        bool result = analysisApi.Session.Open(filename);
        if (result)
        {
            try
            {
                //work with opened session
            }

            finally
            {
                //You must always close opened session
                analysisApi.Session.Close();
            }
        }
        return result;
    }

    打开Session后,就可以参考API的对象模型来编写程序操作Session中的对象了。

    如果想把测试结果中的图表导出到excel文件,则可以使用API中的Exporters,例如下面的代码所示:

    /*
    Export to CSV
    The following code shows how to export Graph, Series, or Dictionarie into a CSV file.
    */

    public void SaveGraphToFile(Graph graph, string graphFilename,
                                IBaseDictionary dict, string dictFilename,
                                Series series, string seriesFilename)
    {
        analysisApi.Exporters.CSV.ExportGraph(graph, graphFilename);
        analysisApi.Exporters.CSV.ExportDictionary(dict, dictFilename);
        analysisApi.Exporters.CSV.ExportSeries(series, seriesFilename);
    }

    小结

    从初步的试用结果来看,LoadRunner9.5提供的Protocol Advisor这个新功能对于性能测试新手来说会比较有用。

    负载测试可以说是一门高深的"模拟学",对真实使用环境的模拟越逼真,你的负载测试就越成功。要想比较真实地模拟广域网的环境,WAN Emulation这个功能对于大型跨地域的网络应用系统的负载测试而言必不可少。

    而对于Secure Channels所提供的创建安全测试通讯环境的机制而言,则见仁见智了,个人认为对于那些负载测试需要在生产环境中进行,或者需要暴露在公网中进行并且对于安全保密而言比较关键的应用系统的测试还是比较有用的。

    Analysis API是我比较喜欢的一个新特性,它提供了灵活的、可定制的测试结果分析能力,给了我们创建自己的Analysis Session分析报告的机会。

0
相关文章