代码之家  ›  专栏  ›  技术社区  ›  John MacIntyre

如何为实际测试模拟频繁的数据库活动?

  •  3
  • John MacIntyre  · 技术社区  · 16 年前

    因为我们的测试环境是静态的,所以测试是不现实的,有些问题在我们访问生产数据库之前不会出现。

    我的想法是运行Profiler,收集DML语句,然后在调试应用程序时在测试服务器上重播它们。。。假设我可以在运行原始文件时以相同的时间间隔重放它们。但即使这样也不是一个有效的测试,因为测试人员的更改可能会破坏将来重播的DML语句。

    谢谢。

    顺便说一句,我们的问题不是并发问题。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Sergey Galashyn    16 年前

    也许这种基于硒的服务正是您所需要的: browsermob

    很少有人推荐。

    是的,这不是广告:)

        2
  •  0
  •   Brent Ozar    15 年前

    有一些商业软件包可以做到这一点。我在Quest软件公司工作,这是其中一个软件包的制造商,但我要列出三个,因为在我来Quest工作之前,我已经和他们一起工作过了:

    • Microsoft Visual Studio Test Edition -它添加了负载测试工具。它允许您在visualstudio中设计测试,就像模拟浏览器访问web应用一样。录制初始宏是一种痛苦,但当您完成后,很容易重放。它还具有可以跨多个桌面部署的代理,以驱动更多负载。例如,我们在几个开发人员的桌面上安装了它,当我们需要在几个小时后进行负载测试时,我们可以在服务器上投入大量的计算能力。缺点是安装和日常维护有点痛苦。
    • HP Quality Center (曾经是Mercury Test Director和其他一些软件)-也有负载测试工具,但它是为测试人员从头开始设计的。如果您的测试人员没有visualstudio经验,那么这是一个更容易的选择。
    • Quest Benchmark Factory -这个工具只关注数据库服务器,而不是web和应用服务器。它捕获生产服务器上的负载,然后可以在开发/测试服务器上重放,也可以生成合成事务。有一个 freeware version 你可以使用开始。

    如果你知道并且喜欢visualstudio,如果你想测试你的web服务器和应用服务器,那就使用visualstudio测试版吧。如果您只想关注数据库,那么就使用基准工厂。

        3
  •  0
  •   Community CDub    9 年前

    或许可以使用类似mysqlslap负载模拟器这样的数据库压力测试工具。 Here 这是一个解释用例和具体例子的链接。