使用测试工具QALoad

发表于:2009-03-20来源:作者:点击数: 标签:工具QALoadqaload
本文关键字 提起网络 性能测试 ,WebBench、ServerBench、NetBench等软件是 测试工程师 再熟悉不过 的工具。这些 测试工具 在进行网络基准测试时是不可或缺的。但是要保证测试结果的权威性和 国际互认性,一些大型商业测试工具的应用是不合缺少的。 美国 Comp
本文关键字

    提起网络性能测试,WebBench、ServerBench、NetBench等软件是测试工程师再熟悉不过

的工具。这些测试工具在进行网络基准测试时是不可或缺的。但是要保证测试结果的权威性和

国际互认性,一些大型商业测试工具的应用是不合缺少的。

     美国Compuware(康博)公司开发QALoad软件作为并发性能压力测试工具。软件针对各种测试目标提供了MSSQL Server、

Oracle、ODBC、WWW、NetLoad、Winsock等不同的测试接口(Session),应用范围相当广泛。

例如在测试基于C/S运行模式、客户端通过DBLib访问服务器SQLServer数据库的系统时,

QALoad通过模拟客户端大数据量并发对服务器端进行查询、更新等操作,从而达到监控系统并

发性能和服务器端性能指标的目的。

    在操作方法上,QALoad提供了录制与回放机制。例如在测试中我们录制客户端对数据库执

行的查询操作,QALoad通过模拟大量客户端来回放此查询操作,以达到并发的目的。整个测试

过程用户完全在黑盒环境下进行,不需要对代码有任何的了解。但是为了达到理想的测试效

果,这样的测试是远远不够的。

    在实际测试中,我们必须对其录制生成的C脚本进行编辑。编辑可以采用两种方法:一是

利用QALoad提供的内部函数;二是它完全兼容C、C++和Visual C++。根据我们的经验,手工编

辑录制的脚本,或者自己写脚本,是一种更灵活的方法,更能贴近实际需求。编辑录制脚本在

以前的测试漫谈中已经介绍过,这里着重谈谈手工编写脚本。

    通过一个录制动作(可以什么实质操作都没有)产生一个脚本,删去无关的东西,这样就

得到一个“框架”。接下来就可以在此框架上编写脚本了。脚本的编译工具和Visual C++是一

样的,所以关于类、事件、对象、封装、继承、重载等概念都是有效的,但是有关MFC

(Microsoft Foundation Class)的使用我们将在以后作进一步探讨。如果在实际应用中,能

够适当灵活的在脚本中定制、应用QALoad提供的内部函数将大大提高脚本的质量,这对测试结

果起着至关重要的作用。

    QALoad提供的Session看上去是独立的,但在使用时却可以结合起来应用,以达到特殊的

测试目的。我们知道,在Windows环境下,应用程序可通过Windows Sockets接口在一个TCP/IP

网络上发送或接收数据,这种Winsock编程给程序员提供了极大的方便,也普遍应用于各种软

件系统。QALoad同样也提供了这种Session。我们曾经利用此功能成功的录制了基于Winsock规

范的中间件应用。而对于一个开发中不单纯使用Winsock编程技术的系统,最佳的方法无疑是

将其它的Session和Winsock Session结合起来使用。测试中,我们曾将SQLServer和Winsock作

为一个总Session录制对应测试目标的操作,得到的脚本和单独使用一个Session录制的脚本比

较,不仅脚本的质量有质的飞跃,而且测试结果也更接近于实际情况。

    成功的录制脚本只是并发测试的第一步,它对测试结果有着很重要的影响,但并不是影响

测试结果的唯一因素。我们利用对比测试发现,在环境变量不同时,即使应用编译和校验都正

确的脚本,其结果也有着明显差异。可见合理配置动作之间的时间间隔,虚拟用户的递增频率

等环境参数也是确保测试结果正确性的关键。

    测试工作本身就是一个反复实践的过程,只有经过多次实验和总结才能找出最为行之有效

的测试方法。可见要充分灵活的利用QALoad的各种功能,并非一朝一夕之事!

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