0

我想对我的数据库进行性能测试,所以我需要模拟对数据库的请求并测量持续时间和其他统计数据。我的数据库是 MS Sql Server 2005/8,我的服务器在 IIS 下运行 ASP.NET

我需要模拟的测试需要一些在数据库端没有实现的流逻辑,测试工具需要实现它。

出于这个问题的目的,请忽略该流程逻辑的影响,并假设它需要零时间和资源,因此不会影响结果。

我正在考虑两种选择:

  1. 用 C# 编写我自己的自定义工具,在 c#
    中实现流逻辑,并自己“只在多线程中运行测试”。我不会在 c# 端测量任何东西,而是使用 sql server profiler 来测量数据库请求。

  2. 使用 Jmeter(或其他等效工具?)
    使用 jmeter 实现流程逻辑(使用标准组件或采样器而不是可以执行代码)。这样我就不必自己处理线程了,jmeter 会为我做。在这种情况下,除了分析器之外,我还可以使用 Jmeter 来测量数据库。

我更喜欢第一个选项,因为与 jmeter 内置工具(逻辑控制器等)相比,在 C# 中编写我的流程登录要简单得多。

我在多线程方面有一些经验,我知道它会变得复杂,但在这种情况下,测试是独立的,不共享任何数据,所以我不必处理太多锁定问题。

我知道 jmeter 是一个很棒的工具,它可以很好地处理时间测量,但就我而言,我可以使用 sql profiler。

我是否低估了管理自己多线程的工作和困难?
我还缺少其他东西吗?还有其他选择吗?

4

2 回答 2

2

一些选项:

  1. 使用 SQL 负载测试。见http://sqlloadtest.codeplex.com/
  2. Quest Software 的基准工厂。见http://www.quest.com/benchmark-factory/
  3. 使用 SQL Profiler 重放您记录的跟踪。请参阅http://msdn.microsoft.com/en-us/library/ms189604.aspxhttp://sqlserverpedia.com/wiki/Replaying_a_Profiler_Trace
  4. 使用 OStress(RMUtilities 的一部分)参见http://support.microsoft.com/kb/944837
于 2011-09-19T18:18:22.567 回答
0

您可以使用 Telerik 的免费 WebAii Web 测试框架来创建 web ui 测试。您也可以将它与单元测试一起使用,甚至作为单元测试的一部分。

但实际上,如果您需要测试数据库的性能,那么您可能希望尽可能“接近”数据库,尽量不涉及 Web UI。

于 2012-12-12T13:07:52.603 回答