我不敢相信我是第一个经历这个思考过程的人,所以我想知道是否有人可以帮助我。

现在的情况:开发人员编写网站,运营人员部署它。部署后,开发人员会对其进行冒烟测试,以确保部署顺利进行。

对我来说,这感觉不对,它本质上意味着需要两个人来部署应用程序;在我们的例子中,这两个人位于地球的两端,时区发挥作用,造成严重破坏。但事实是,开发人员知道最小的测试集是什么,并且可能会随着时间的推移而改变(特别是对于我们应用程序的 Web 服务部分)。恕我直言,运营人员(他们自己也会这么说)是需要遵循一系列指令的按钮推动者。

手动解决方案是我们记录测试用例,并在每次部署时遵循该文档进行操作。这听起来很痛苦,而且他们可能会将不同的版本部署到不同的环境(特别是 UAT 和生产环境),并且可能需要针对每个环境使用不同的指令集。

最重要的是,我们近期的计划之一是拥有一个自动化的日常部署环境,因此我们必须指示计算机如何部署给定版本的应用程序。我非常想添加有关如何对应用程序进行冒烟测试的说明。

现在,开发人员更擅长为计算机记录指令,而不是为人类记录指令,因此显而易见的解决方案似乎是使用 nUnit 的组合(我知道这些本身不是单元测试,但它是专门构建的测试) runner)以及 Watin 或 Selenium API 来运行明显的浏览器步骤并调用 Web 服务,并向运营人员解释如何运行这些单元测试。我能做到;我已经基本上做到了。

但如果我能让这个过程更简单不是更好吗?

此时,操作人员和计算机必须知道哪组测试与应用程序的哪个版本相关,并告诉 nUnit 运行程序它应该指向哪个基本 URL(例如,www.example.com = v3.1)。 2 或 test.example.com = v3.3)。

如果测试运行器本身有一种方法可以给它一个基本 URL,并让它下载一个 zip 文件,解压它并在运行它在其中找到的任何测试装置之前自动编辑配置文件,那不是更好吗?

有没有一个开源应用程序可以做到这一点?有必要吗?有没有使用 nUnit 以外的解决方案,也许是 Fitnesse?

根据记录,我首先考虑基于 .NET 的工具,因为大多数开发人员主要是 .NET 开发人员,但我们并没有与它结合。如果存在这样的工具,使用其他语言来编写测试,只要有一个可以在 Windows 上运行的测试运行器,我们就会很乐意适应。

有帮助吗?

解决方案 7

经过大量时间浪费的时间,试图弥补一个更轻松的解决方案,我们最终还是在使用Nunit的GUI Runner。这比预期的要容易,而且工作正常。

其他提示

我曾在ASP.NET应用程序的烟雾测试作者工作。我们用了 QuickTest Pro, ,测试运行的自动化已完成 质量中心 (称为测试主管。)。这涉及编写数百个测试脚本,以使Web浏览器与Web应用程序进行交互。这些测试的使用情况下,在将其推广到我们的生产服务器上之前验证了构建。质量中心允许您定义测试机的“池”,以便您以多线程的方式运行大量的测试脚本列表。

更简单的烟雾测试将是记录应用程序生成并针对系统运行蜘蛛的所有错误/例外。这不会获得非常“深”的代码覆盖范围,但是烟雾测试并不是要进行深层代码覆盖。该错误记录应该是生产应用程序的一部分,以处理出现错误。虫子总是会滑倒,但可悲的是,最好的测试人员将成为您的用户。

我过去曾使用硒来进行此类烟雾测试以进行网络部署。您可以编写一套测试脚本,然后在不同的环境中与同一站点进行运行。

我还对此顺序进行了一些思考,并提议采取宣告性的部署和验证方法,请参阅此处的想法,以了解我的想法,

http://jimblogdog.blogspot.co.uk/2010/10/introducingdeclarative-deployment.html

我还为我的开源项目Wolfpack创建了一些插件,以使整个过程自动化。从本质上讲,您将“部署烟雾测试”打包为Nuget软件包,然后将其发布到私人Nuget Feed中。 Wolfpack将自动检测到软件包的新版本,并将其与Nunit.runner Nuget软件包一起下载并解开所有文件。然后,它将使用Nunit Console Runner默默地运行测试,并将结果解析为警报,您可以通过电子邮件,咆哮,hipchat等接收到该测试。

http://wolfpack.codeplex.com/

http://wolfpackcontrib.codeplex.com/wikipage?title=nunitDeploymentPublisher

Telerik拥有一些免费且非免费的UI测试工具,这些工具可以由任何可能对此有所帮助的人自动运行。

我不知道您正在使用哪个 VCS,但您可以编写一个解决方案,通过中间服务从 VCS 中提取特定于版本的配置文件。

您可以编写一个 powershell 脚本或应用程序,从 Web 服务或 Web 应用程序下载配置文件,并将测试 URL 作为参数传递。服务器或应用程序将在能够访问 VCS 的计算机上运行,​​因此它可以返回文件内容。一旦检索到,脚本或应用程序就可以启动测试。

通常,您的Nunit测试就足够了,如果它们全部通过,则代码库应运行正常。如果您通过通过Nunit测试来部署代码,并在网站上遇到故障,则出于相同的原因,您还需要添加一个额外的Nunit。然后,当您修复代码以使Nunit正在通过时,您知道您已经修复了已部署的代码所存在的问题。因此,大多数自动构建系统可以配置为自动运行所有Nunit测试,然后如果任何测试失败,则“失败”构建。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top