关于持续集成和Selenium测试的新手问题

4

我对C.I.非常陌生,但最近接手了一个项目,其中Team City已经被实施,我正在逐渐理解它。我们想要做的一件事是在构建过程中运行一些Selenium测试。我已经创建了Selenium测试,并可以通过我的开发机上的nunit-console成功地运行它们。构建服务器构建项目,然后部署它(正好是一个Web表单应用程序)到一个暂存服务器。

在每个Selenium测试之前,我们将数据库设置为已知状态,即只有特定的记录存在-这样每个测试都是独立的。问题是暂存服务器将由真正的“人类”测试人员使用,因此这会给他们带来问题,因为数据库不断被重置(记录被删除等)。问题是,我是否应该在构建服务器上部署应用程序的虚拟目录,并针对该目录运行Selenium测试,只有在这些测试通过后才将其部署到暂存服务器上?

或者我完全搞错了吗?如果是这样的话,你们的组织如何处理这个问题?

1个回答

2
我建议您不要让测试人员访问为自动化测试而设置的服务器,以免混淆自动化和手动测试,这可能会导致自动化和手动测试结果出现误报。这些“错误”是不确定的,很可能无法再现(非常糟糕)。这将导致您大量不必要的“错误报告”和构建失败。
因此,以下是您可以采取的措施...
除了当前的设置外,您可以为手动测试人员创建一个额外的分阶段服务器。这是最基本的措施。您应该为每个测试人员创建几个这样的服务器。
接下来是抱怨...
在我目前的项目中,我们最近发现我们的测试人员(大约有10个)重复使用了一个服务器。他们声称,由于我们的应用程序将有多个并发用户,所以在测试各个功能时,同时测试这些功能在多个用户在同一服务器上操作时的表现是个好主意。错了!
如果存在多个用户的问题,则应编写特定的测试用例进行测试,而不仅仅是“碰巧测试”。
在向我们的手动测试人员解释之前,由于一个测试人员干扰了另一个测试人员的工作,我们有很多虚假的错误报告。(例如:测试人员1删除了测试人员2引入系统的记录等...)。这创造了许多不必要的错误报告,并且这些错误是无法再现的。
对于我的抱怨,我很抱歉,但我希望这仍然有所帮助 :)

谢谢,那听起来不错,我们怀疑混合自动化和手动测试可能是一件坏事。我们打算在构建服务器上构建应用程序(显然),并在那里运行我们的自动化Selenium测试,然后如果所有自动化测试成功运行,则部署到暂存服务器进行手动测试。感谢您的建议。 - Simon Lomax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接