代码之家  ›  专栏  ›  技术社区  ›  Jack Marchetti

在生产代码/服务器上运行测试

  •  4
  • Jack Marchetti  · 技术社区  · 15 年前

    在单元测试/自动测试方面,我相对缺乏经验,所以如果这个问题没有任何意义,请原谅。

    我从来没有想过对生产服务器运行测试,因为这会给站点增加额外的压力。我一直认为您可以对一台临时服务器运行所有测试,如果这些测试都有效,您可以假设生产站点可以运行,只要宿主提供商没有遇到问题。

    您对在实际生产服务器上测试生产代码有何想法?

    谢谢大家!

    6 回复  |  直到 15 年前
        1
  •  8
  •   Peter Recore    15 年前

    如果您将selenium脚本看作是“监视”而不是“测试”,也许会有所帮助?我希望每一个主要的网站都能进行某种监控,即使只是周期性的PING,或者每隔一段时间加载一次主页。虽然这可能会走得太远,但总体上不要害怕这个概念。那么,这种监视/测试对您和您的客户有哪些好处呢?

    1. 不知何故,并不是世界上所有最好的测试都能预测用户将做的奇怪的事情,不管是有意的还是纯粹依靠数字的力量(如果100万台打字机上的猴子可以写哈姆雷特,想象一下几百个喜欢点击的用户能做什么?点击一个网站可以告诉你它是否正常,但不能告诉你一个表是否损坏,一个报告是否失败,所有这一切都是因为用户键入了一个带有umlaut的值。)。

    2. 虽然您的站点在登台服务器上可能表现出色,但随着时间的推移,它可能会开始降级。如果您正在监控这些selenium测试的性能,您可以在慢度投诉之前保持领先。当然,正如您提到的,确保您的监控也不会导致问题!您可能需要说服您的客户,某些测试适合每X分钟运行一次,而其他测试应该每天仅在凌晨3点运行一次。

    3. 如果您最终对实时站点进行了紧急更改,您将更有信心知道测试正在运行,以确保一切正常。

        2
  •  4
  •   Roopesh Majeti    15 年前

    长期以来,我一直在类似的生产服务器上工作。根据我的经验,我可以说,最好是在阶段环境中测试我们的更改/补丁,然后在生产服务器中部署它。这是因为,除了数据量之外,暂存环境和生产环境都是相似的。 如果确实需要,那么在安装代码/补丁后,在生产服务器上运行一些测试就可以了。但是,始终在生产服务器上运行测试不是推荐的/好方法。

        3
  •  1
  •   jn29098    15 年前

    我的建议是每晚将生产数据库隐藏到一个登台/测试环境中,并在那里每晚运行单元测试。客户建议的方法有助于确保引入系统的新数据不会导致系统内出现异常,但我不同意在生产中这样做。

    在登台环境中运行它将使您能够在新数据流入系统时评估功能,而无需将生产环境用作测试平台。

        4
  •  0
  •   Srikar Doddi    15 年前

    运行自动化测试所需的生产环境会发生什么变化?我知道您可能需要监控和警报,以确保服务器已启动并运行。

        5
  •  0
  •   Steven    15 年前

    无论选择什么,无论是监控型还是测试型解决方案,您应该首先为客户做的事情是警告他们。正如您所提到的,在生产中进行测试几乎是不可能的 从不 好主意。一旦他们意识到了危险,并且如果没有其他逻辑选择,那么仔细地构建非常小的测试。分层应用它们,并严格监控它们,以确保它们不会给应用程序带来任何问题。

        6
  •  0
  •   Randy Levy    15 年前

    我同意Peter的观点,这听起来更像是监控而不是测试。我认为这是一个很小的区别,但很重要。如果客户的需求与服务级别协议有关,那么他们的请求听起来并不奇怪。