我开发了一个想要进行压力测试的 Web 应用程序。该应用程序使用 Flash SWF 允许用户浏览其计算机上的图像并将其上传到网络服务器。此 SWF 将从本地文件系统读取 jpg 图像,调整它们的大小并生成缩略图,然后将它们作为 byteArray 上传到 AMFPHP 脚本,该脚本将字节数组作为 .jpg 文件写入webserver
数据库中的图像记录,然后发送图像到 Amazon S3 进行存储。
我一直在尝试使用 WAS 对此进行压力测试,它运行良好,因为它记录了发送的标头信息以及字节数组,因此我可以模拟多个用户 - 尽管所有用户都上传相同的图像!:)。
我发现并非所有图像都进入 S3 并且并非所有图像都被添加到数据库中。我怀疑这是由于脚本需要的时间超过了延迟字段中 WAS 允许的时间,所以我的问题是 -
有没有办法告诉 WAS 在继续之前等待脚本完成执行,而不是坚持我在 WAS 界面中指定的延迟?我认为在将图像添加到数据库或发送到 S3 之前,接收字节数组并写入文件的 AMFPHP 脚本没有完成。
如果我可以强制 WAS 等到它知道脚本已经完成,我可以更清楚地看到瓶颈在哪里。我正在模拟大约 100 个客户端(10 个线程 * 10 个套接字),所以大概这会给这一步带来比可以处理的更大的负载!
这是测试工具无法准确模拟真实场景的一种情况吗,因为实际上 Flash 会等待从 AMFPHP 获得图像已写入的成功响应,然后再调用在数据库中创建记录并发送文件到S3?我是否应该将这些脚本组合成一个脚本,这样这不是问题?
欢迎对此提出任何建议。我们的网络服务器是一台 Windows 2003 IIS 6 机器。