Google App Engine,Appspot服务器上的负载测试

时间:2012-03-31 23:01:55

标签: google-app-engine google-cloud-datastore

我是GAE的初学者,还在评估我是否应该将它用于我的学校项目。我需要展示应用程序如何可扩展,我想在这里使用的定义是它是否可以同时为1000个用户提供服务。

现在负载测试是一种方法。但是,当Google根据负载将应用程序扩展到多个不同的实例时,负载是徒劳的。

因此,我正在考虑模拟数据存储读/写访问内存缓存等,以显示应用程序的可伸缩性前景。

现在,使用JUnit Test是一种很好的方法。但它们只能在本地运行。有没有办法在服务器上运行它们,实际的生产环境?如果可以做到,那么我可以编写这些测试并通过eclipse执行它们,我应该完成!

另一种方法是使用selenium进行功能测试来模拟负载和实际用户条件,但这很可能会导致计算机崩溃,也不会同时发生。

另一个选择是使用python加载测试脚本并使用示例json数据在服务器URL上抛出请求。然而,我试过但我无法测试需要真正用户交互的选项,因为实时网站需要谷歌登录。

我有什么想法可以继续吗?

2 个答案:

答案 0 :(得分:1)

查看Siege(http://www.joedog.org/siege-home/)或JMeter(http://jmeter.apache.org/),对您的应用进行远程测试。问题是,在达到您要测试的极限之前,您将达到实际测试机器的极限,因此很多人启动了几个EC2实例并从那里运行负载测试。 Seige非常简单,它只是从文本文件中读取一个url列表,并且像你告诉它一样破坏服务器。 JMeter允许您创建更强大的测试,可以执行诸如登录服务器和记录有关应用程序行为的更细粒度的详细信息。

这是两个最好的免费且易于使用的工具(恕我直言)。

答案 1 :(得分:0)

听起来你真的想要模拟数据存储区操作。

您可以编写一个HTTP请求处理程序来加载您的junit测试并调用它们,然后将结果转储到日志或作为HTTP结果。

如果它们需要很长时间才能运行,您可以在后端实例上运行它们。

根据Rick的建议,您也可以在后端实例上运行测试,该实例使用异步HTTP API向您的前端实例发出HTTP请求,并导致您的前端实例执行大量工作,如果这样做的话你需要模拟什么。