丰富的功能
我们已经看过了压力测试工具的基本功能,还适合增加什么附加功能呢?不同的负载测试工具的区别在什么地方呢?当然,您最主要的要求是这个工具必须可以模拟您的应用程序客户机。如果您的应用程序使用一些不常见的浏览器功能组合或者其他非标准客户机技术,那么就排除了相当一部分候选者。除此之外,还有其他功能使负载测试的生产率更高。对于决定适合于自己项目的负载测试工具,下面的列表是一个有用的出发点:
模拟您的客户机
首要要求一定是负载测试程序能够处理您的应用程序所使用的功能和协议。
运行多个模拟的客户机
这是负载测试程序最基本的功能,它有助于确定哪些是负载测试程序以及哪些不是(一些框架试图伪装成负载测试程序)。
脚本化执行并能编辑脚本
如果不能编写客户机与服务器之间交互的脚本,那么就不能处理除最简单的客户机之外的任务东西。编辑脚本的能力是最基本的——小的改变不应该要求您重新生成脚本。
支持会话
负载测试程序如果不支持会话或者 cookies,那么就不算是真正的负载测试程序,并且不能对大多数 J2EE 应用程序进行负载测试。
可配置的用户数量
测试程序应该可以让您指定每个脚本由多少个模拟用户运行,包括让您随时间改变模拟用户的数量,因为许多负载测试应该从小的用户数量开始,并慢慢增加到更多的用户数量。
报告成功、错误和失败
每一个脚本都必须定义一个方法来识别成功的交互以及失败和错误模式(错误完全不会有页面返回,而失败可能在页面上得到错误的数据)。
页面显示
如果负载测试程序可以让您检查一些发送给模拟用户的页面,这会很有用,这样您就可以确保测试工作是正确进行的。
导出结果
您常常希望可以用不同的工具来分析测试结果,这些工具包括电子表格和可以处理数据的自定义脚本。虽然许多负载测试工具包括大量的分析功能,但是导出数据的能力使您在以任意的方式分析和编目数据方面具有更大的灵活性。
考虑时间
真实世界的用户不会在收到一页后立即请求另一页——一般在查看一页和下一页之间会有延迟。 考虑时间 这个标准术语表示在脚本中加入延迟以更真实地模拟用户行为。大多数负载测试程序支持根据统计分布随机生成考虑时间。
客户机从列表中选择数据
用户一般不会使用同样的一组数据,每位用户通常与服务器进行不同的交互。模拟用户应该也这样做,如果在交互的关键点,脚本可以从一组数据中选择数据,则可以更容易地让您的模拟用户表现出使用不同数据的行为。
从手工执行的会话记录脚本
相对于编写脚本,用浏览器手工运行会话并记录这个会话然后再编辑会容易得多。
javascript
一些应用程序大量使用 javascript 并且需要模拟客户机支持它。不过,使用客户端 javascript 可能会增加对测试系统上系统资源的需求。
分析工具
测量性能只是成功的一半。另一半是分析性能数据。谁能比编写测试工具的人能更好地开发这种分析工具呢?是的,至少理论是这样。无论如何,您的工具箱提供的分析工具越多,您就能做得越好。
测量服务器端统计数字
基本负载测试程序测量客户机/服务器交互中基于客户机的响应时间。如果同时收集其他统计数字,如 CPU 使用情况和页面错误率就更好了。您得到的统计数字越多,您用负载测试系统可以做的就越多。如果有这种数据,那么就可以做一些有用的工作,如查看服务器负载上下文中的客户机响应时间和吞吐量统计。
结束语
用任何一种工具可以完成的工作常常受到人的技能、知识和想像力的局限。在描述用负载测试工具查看什么内容的时候,我们也展示了使用这种工具的各种可能性。现在,您可以运用您的想像力去开拓更多的可能性。