【问题标题】:App Engine Load TestingApp Engine 负载测试
【发布时间】:2013-07-11 09:54:51
【问题描述】:

我想在应用引擎上加载测试我的网络应用,模拟多个用户登录并用请求敲击应用。

我是 Jmeter 的新手,不太了解它,但根据一些研究,我应该能够模拟多个帐户的登录,凭据驻留在 CSV 文件中。我使用 Jmeter 中的记录控制器功能来模拟一个用户登录我的应用引擎 webapp 的测试。我的应用使用 Google 授权。现在我的问题是,一旦我在 Jmeter 和变量、USERNAME 和 PASSWD 以及 csv 文件中创建了 CSV 文件配置,我在哪里插入这些字段?查看记录代理生成的请求,我似乎无法找到实际发布到登录表单的点。我看到的最接近登录尝试请求的是一个名为“/_ah/conflogin”的 HTTP 请求,尽管它是一个获取请求而不是一个帖子,并且唯一存在的变量是一个叫做“状态”的东西。

我是不是把这一切都搞错了。 Jmeter 是否允许我在应用引擎中对授权应用进行负载测试?我在网上找到了非常稀缺的资源。虽然我发现 Google IO 会谈中提到 Jmeter 作为引擎中 Web 应用程序的压力测试工具,但没有详细说明如何使用。我也没有停留在 Jmeter 上,只是好奇什么是负载测试需要登录的应用程序引擎 Web 应用程序的“正确”方法。我想我也可以以编程方式执行此操作。

【问题讨论】:

    标签: google-app-engine jmeter load-testing


    【解决方案1】:

    您要进行什么压力测试?谷歌应用引擎?不要 - 它会扩展。相信每秒有 1000 次请求的 Google 和其他开发人员。

    如果您在应用程序中遇到瓶颈(实体组、事务、同时更新同一实体),则只需通过 unit tests 测试该部分代码。您可以测试并发操作(并在代码中触发重试)。

    【讨论】:

    • 后端可扩展,但应用程序可能无法扩展,并且可能无法通过单元测试检测到问题,因为它们可能仅在负载时出现。
    • AppEngine 上的应用程序必须使用本质上是分布式的 AppEngine API,因此可以扩展。唯一的争论是如果您尝试写入同一个实体。
    • 是的,但问题可能来自自定义基本代码。它总是不会发生吗?
    • 其实你应该测试 AppEngine 应用程序。是的,它们可以扩展,但需要付出代价。
    【解决方案2】:

    您似乎以正确的方式解决了这个问题。我的第一个建议是确保您正在录制一个新的会话,这样您就可以确保用户名和密码都被发送和记录。例如,在 Chrome 中打开一个隐身窗口 - 这将没有任何先前的会话状态,因此您可以确保执行了整个授权链。

    顺便说一句,您可能应该忽略那些说您不需要对在 AppEngine 上运行的应用进行负载测试的人,因为 AppEngine 可以扩展。是的,AppEngine 可以很好地扩展,数据存储也是如此。但您的应用程序可能不会 - 有很多方法可以将可伸缩性问题引入应用程序。

    【讨论】:

    • 谢谢。我会试一试。我已经从应用引擎监控工具 appstats 采取措施修改我的应用程序中的代码以使其可扩展。但是让 jmeter 工作肯定是理想的。
    【解决方案3】:

    据我了解,您尝试解决/测试的两个概念是不同的。

    如果您想测试页面功能,无论是由 CSV 驱动还是以前的记录驱动,请尝试使用 selenium 之类的方法。

    如果您想测试应用程序在压力下的表现,请使用 JMeter。看看这个来自 Google I/O 2013 的 video,Matt Stephenson 展示了他是如何使用它的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2018-01-24
      • 2011-02-07
      相关资源
      最近更新 更多