【发布时间】:2020-12-12 09:46:13
【问题描述】:
我正在为一个 Web 应用程序编写一些 e2e 测试,其中有很多我需要与之交互的代码超出了我的控制范围。为了在每个测试或测试组开始时设置我的应用程序,我打算使用 sql 脚本将数据库播种到已知状态,然后强制 Web 应用程序重新启动,以便我无法控制的所有内部缓存都被重置.
考虑到这一点,有谁知道哪种方法可以让我以最快的速度重新启动网络应用程序?
我的选择是:
- 触摸 web.config
- 在根目录中创建然后删除 app_offline.htm 文件
- 创建一些可以调用HttpRuntime.UnloadAppDomain的API
这些方法中的任何一种都比其他方法更快吗?它们实际上都一样吗?
【问题讨论】:
-
您能否澄清一下:“以便我控制之外的所有内部缓存都被重置?”您是否担心数据查询被缓存? GAC 不会缓存数据结果,因此您无需担心重新启动应用程序。重新启动应用程序的“时间”成本很高,请确保您真的想要这样做。
-
第三部分维护了一个缓存层,因此为数据库播种是不够的。此外,我不能确定第 3 部分代码正在缓存的所有内容,所以我只想重新启动为 ????当然。
-
不确定第三部分是什么?或者它包含什么?如果您认为它包含缓存数据并且位于应用程序域之外,那么重新启动应用程序不会影响该缓存?我向您推荐了如何在测试/请求之间重新启动应用程序,但我想确保重新启动应用程序确实是您需要做的事情?
标签: asp.net performance e2e-testing warm-up application-warmup