我的任务是为我们的生产站点创建健康检查。它是一个.NET MVC Web应用程序。存在许多依赖性,因此存在失败点,例如文档存储库,Java Web服务,站点管理器策略服务器等。
管理层希望我们成为第一个知道任何一点是否失败的人。如果出现问题,目前我们正在追赶,因为客户通知我们。我编写了一套基于Selenium WebDriver的简单集成测试,用于测试登录和一些轻量级操作,例如:通过文档api检索文档。我对结果感到满意,但需要能够在循环中运行它们并在任何失败时通知IT。
我们有一个TFS构建服务器,但我不确定它是否适合这项工作。我不想继续构建测试,只需运行它们。此外,我似乎无法比每天更频繁地定义构建计划。
我很感激有关如何最好地实现这一目标的任何想法。提前致谢
答案 0 :(得分:0)
您想要做的是一套“烟雾测试”。烟雾测试基本上是非常简短和甜蜜的独立测试,可以测试应用程序的各个部分,以确保它的生产准备就绪,就像你说的那样。
我不熟悉TFS,但我确信我能为您提供的信息将是有用的,并且可以转移。
当你说“我不想构建测试时,只需运行它们”。您使用的任何CI,需要来构建它们来运行它们。基本上“建筑”将等同于“编译”。为了让CI实际运行测试,需要编译。
就运行它们而言,如果TFS构建系统有任何用处,它将具有定期构建选项。在Jenkins,我可以指定一个Cron时间来运行。例如:
0 0 * * *
表示“每天00:00运行(午夜)”
,或者
30 5 * 1-5 *
表示“每周5:30运行”
由于您正在进行Smoke Tests,因此请务必记住保持简短且甜蜜。烟雾测试应该一次测试一件事。例如:
testLogin()
testLogout()
testAddSomething()
testRemoveSomething()
答案 1 :(得分:0)
Web应用程序运行状况检查是一项非常重要的功能。如果您的网站运行与否,使用烟雾测试非常有用,并且这些可以自动运行以定期运行,以通知您网站出现问题,最好在客户注意之前。
然而,如果烟雾测试失败,他们只告诉您该网站不起作用,它不会告诉您原因。那是因为你正在进行外部调用,因为你不能看到应用程序的内部。 I.E是数据库已关闭,是网络问题,磁盘空间,远程端点无法正常运行。
现在其中一些东西应该可以从其他监控中识别出来,你肯定应该有一个错误日志,但有时你想从马口听到它,最好的东西可以告诉你应用程序的行为是你的应用程序本身。这就是为什么许多应用程序都有可以按需调用的健康状况检查。
我过去实施的健康检查服务非常相似,他们执行以下操作:
在执行此操作后,我已多次启动库以取出运行状况检查的主线并将其作为服务公开。您可以随意使用或使用nuget包。