Stopwatch类位于System.Diagnostics命名空间,是用来度量程序运行时间,对于自动化测试来说,利用Elapsed属性,就可以度量完成测试用例所应用的时间,并添加到log信息里面。
Stopwatch提供了几个方法用以控制stopwatch对象。Start方法开始一个计时操作,stop方法停止计时。此时如果第二次使用start方法,将继续计时,最终计时的结果为两次计时的累加。为避免这种情况,在第二次计时时使用Reset方法将对象归零。使用IsRunning可以确定stopwatch的当前状态。
结束计时后,读取stopwatch的结果,stopwatch类提供了以下属性:
· Elapsed:返回一个TimeSpan对象,表示时间间隔;
· ElapsedMillinseconds:返回计时经过的微妙数;
· ElapsedTicks:返回计时经过的计时器刻度(timer tick)数。计时器刻度时stopwatch对象可能的最小量度单位。计时器刻度时间的长度由特定的计算机和操作系统确定。
下面时Stopwatch和Nlog结合的一段示例:
Log.SetConfig();
Log.Info("Info");
Log.Warn("Warn");
Log.Error("Error");
Log.ChangleConfig();
Stopwatch during = new Stopwatch();
during.Start();
string starttime = DateTime.Now.ToString();
//logger.Info("Starttime" + ": " + starttime);
Log.Info("Info");
Log.Warn("Warn");
Log.Error("Error");
for (int i = 0; i < 4; i++)
{
Thread.Sleep(1000);
Log.Info("Info");
Log.Warn("Warn");
Log.Error("Error");
}
Log.Info("Starttime" + ": " + starttime);
Log.Info("EndTime" + ": " + DateTime.Now);
during.Stop();
Log.Info("During" + ": " + during.Elapsed.ToString());
Log.Info("Warn: " + Log._warn_count);
Log.Info("Error: " + Log._error_count);