我有几个延迟测试(基本上是单元测试),它测试特定的服务器API,我必须确切地知道从请求到响应需要多长时间。我遇到的问题是,在调用测试之前,我必须进行一些数据初始化(对于每次测试运行,所以如果我进行100次运行的延迟测试,数据也必须初始化100次),这需要一些时间,但是我不想算数。
有两种初始化数据的方法:[MethodInitialization]和[ClassInitialization]。
MethodInitialization - 在每次运行之前输入数据但在测试完成时,其持续时间=测试初始化时间+测试运行
ClassInitialization - 只对数据进行一次(对我来说不起作用),但测试持续时间=测试运行
我知道秒表,但是使用它会非常痛苦,因为我也从AppInsights获取数据并希望尽可能自动化它,如果我在简单运行后可以获得清晰的结果,那就是大。
有没有办法在每次测试运行之前初始化测试数据但是排除其持续时间?
UPD 1: 我也尝试创建自定义属性,因为有方法在其构造函数中执行一些操作,但即使我运行测试10次,属性构造函数也只调用一次。
答案 0 :(得分:0)
我想你需要像ANTS Performance Profiler这样的专业工具。它将捕获您日常工作的每一步(类或方法) - 您可以设置“里程碑”并丢弃其他步骤。
但是,我正在考虑你上面提到的有关METHOD计时的内容......我认为这是正确的方法,因为你不能放弃日常工作中的那一步。
如果我是你的客户并且你的日常工作在数据加载过程中耗费了大量时间但运行速度非常快,那么我将了解整个时间对于性能的判断。我不会将你的例程分成两个模块:准备和执行。
我希望我能以某种方式帮助过你。 祝你好运。