【问题标题】:Testing response time in Asp.net mvc4 application在 Asp.net mvc4 应用程序中测试响应时间
【发布时间】:2014-01-06 13:51:20
【问题描述】:

我有一个 asp.net mvc4 应用程序,其中我有这个类

public class Arbre
{
    public int id_resp = -1;
    Admin notre_admin = new Admin();
    List<Task> _la_liste = new List<Task>();

    public Arbre(int id)
    {
        id_resp = id;
    }

    public List<Task> GetTasksOfExpert(int id_user) {
        List<int> liste =  notre_admin.GetTasksOfExpert(id_user);
        List<Task> liste_finale = new List<Task>();

        for (int i = 0; i < liste.Count; i++) {
            liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i]));
        }

        return liste_finale;
    }

    public List<Task> GetTasksOfChef(int id_user)
    {
        List<int> liste = notre_admin.GetTasksOfChef(id_user);
        List<Task> liste_finale = new List<Task>();
        for (int i = 0; i < liste.Count; i++)
        {
            liste_finale.Add(notre_admin.GetTaskListByAffaire(null).Find(x => x.Id_tache == liste[i]));
        }
        return liste_finale;
    }

}

我想添加一个测试,帮助我了解每种方法的大致时间,以便优化我的代码。

  • 我该怎么做?
  • 单元测试能做到这一点吗?

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc-4 razor


    【解决方案1】:

    有许多可用的商业产品可让您分析您的代码(RedGate 的Ants Profiler 是一个让您跃跃欲试的产品)。正如 Marcom 提到的,MiniProfiler 非常好(而且它是免费的,而且很容易设置和使用)。

    另一个更复杂的选择是调查AOP 并围绕您的方法实现功能,以便您记录持续时间。我使用来自Unity 的AOP 功能来实现类似的东西(结合Log4Net)。

    您可以为此使用某种形式的单元测试,但这更像是integration test,而不是单元测试。 (例如,在您的集成测试中,您可以设置一个计时器并测量方法执行持续时间)。集成测试运行速度可能很慢,而且您不一定能够从生产系统中获取性能指标。

    【讨论】:

      【解决方案2】:

      有许多现成的工具可以帮助您实现这一目标。 我的最爱之一是miniprofiler

      我会试一试,看看它是否适合您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多