首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在QA测试环境中测试数据库应用程序?

如何在QA测试环境中测试数据库应用程序?
EN

DevOps用户
提问于 2017-11-08 10:04:48
回答 1查看 139关注 0票数 6

过程

我们目前的程序是:

  1. 生成过程生成窗口设置(msi)。此设置由网站部署和数据库脚本组成,这些脚本可以创建新数据库或升级现有版本。
  2. QA人员需要快照他们的应用服务器和数据库服务器。
  3. QA人员然后在他们自己的windows服务器上运行安装程序。
  4. 安装程序安装网站并更新数据库。

快照的目的是给它们回滚的东西--比较应用程序不同版本之间的任何行为变化。

当前技术与环境

我们推出WindowsServer2008r2及以上版本。数据库服务器为Windows 2008r2及以上,Server 2008r2。

我们的QA在所使用的虚拟化方面有点复杂。我们的团队以两种方式工作,一种是在服务器上安装SQL,另一种是将传统的应用服务器/ sql服务器分开。服务器运行在混合存储使用SSD / SAN和SAS驱动器,每个服务器通常有60 4gb的HD,运行4GB的内存。SQL服务器有8gb或更多

缺点

最大的缺点是备份环境的速度--在速度和占用空间方面。

我的想法

我的想法之一是创建一个应用程序/脚本,或者使用一些工具同时备份/快照应用程序服务器和MS数据库。

问题

我想知道其他人是如何用类似于我们所经历的过程来展开变革的。

此外:

  1. 例如,还有哪些其他工具可供使用?
  2. 另外,你会提出什么建议?
EN

回答 1

DevOps用户

发布于 2017-11-08 20:49:25

数据库备份的最大问题是不能简单地快照它们。在拍摄快照时,首先必须确保DB不是中间事务,否则将恢复到不一致的状态。在windows情况下,可以利用Microsoft编写器来快照数据库。您需要确保,当您对VM进行快照时,HyperV能够利用这个VSS编写器。

如果您有一个特别大的数据集,如果您的文件程序具有此功能,并且它可以帮助解决您正在经历的备份的大小/时间问题,则最好使用利用您的存储文件程序使用增量克隆

在将新应用程序部署到QA方面,有几种方法可以做到这一点。一种是拥有一个自动构建系统,如Jenkins、Travis CI或类似的工具,在代码提交时自动触发备份和部署。这可以通过利用配置管理工具(如SaltStack、Puppet或Chef (它们都运行在PowerShell上)来实现,这些工具可以自动为您设置和配置server,如果您能够用PowerShell编写SaltStack脚本,则可以部署应用程序。就我个人而言,我推荐SaltStack,因为它的反应堆将允许您在备份/快照完成并触发构建时广播信标(Puppet缺乏此功能)。

每次备份VM的一个选择是利用像工头这样的系统,该系统有一个HyperV插件。然后你可以使用SaltStack (vis-à-vis反应堆)。如果备份系统一直阻塞到整个备份完成,或者您的自动构建系统(Jenkins/Travis)与Foreman的REST交互,请求分离主机,这可能是最好的方法。一旦出现这种情况,它将自动与您的配置管理系统签入,以安装SQL服务器并恢复新VM中的快照。如果您将此过程与自动测试电池结合起来,您甚至可以实现一个"Push on Green“系统,如果所有QA测试都通过,您甚至可以在下一个环境中重复这个过程。

使用诸如Foreman这样的中间件的好处是,它将允许您部署到任何虚拟化系统,甚至云中,并防止您被锁定在HyperV中,并使您的环境更加可移植。

我确信还有其他方法可以达到这个目的,但这是我过去用来实现类似部署工作流的一种方法。

票数 2
EN
页面原文内容由DevOps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://devops.stackexchange.com/questions/2508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档