如何自动化需要多台计算机的集成测试?

时间:2010-03-02 17:59:50

标签: integration-testing

如何自动化需要2台或更多台PC(分布式应用)的集成测试?在涉及多台机器的情况下,您执行集成测试(或性能测试)的策略是什么?

实施例

我们需要集成测试我们的客户端/服务器应用程序。为了模仿实时系统,我们需要在一台机器上部署客户机,在另一台机器上部署服务器。然后我们测量TCP传输速度。

2 个答案:

答案 0 :(得分:1)

有很多方法可以做到这一点,但它们都没有内置到我所知道的任何框架中。

以下是我过去处理过的三种方式:

  1. 使用VMWare Server / ESX - 我们最近所做的是使用可安装的第二个驱动器(数据驱动器)为服务器和客户端计算机实际构建VM映像。然后我们构建并单元测试我们的软件,在性能测试之前我们启动VM,然后将代码部署到数据驱动器。之后,我们将一组测试脚本部署到机器上并启动它们(通过Powershell)。这非常有效,具有良好的重放能力,并允许我们将测试服务器提供给其他团队/客户进行评估。缺点是资源非常密集。
  2. 专用服务器&客户端测试集 - 我们有两个不同的源存储库,一个用于服务器,另一个用于客户端。然后我们按照上面的方式进行构建,但是一次一个,部署服务器(并针对旧客户端进行测试),部署客户端(并针对旧服务器进行测试),然后部署两者并测试组合。这非常有效,但是对于某些场景需要一些手动测试,如果我们需要同时测试多个服务器更改或客户端更改,则可能会变得很麻烦。
  3. 仅针对生产进行测试 - 我们只更新了客户端 OR 服务器,然后我们更新了该部件并针对当前的生产设置进行了测试。当然,这样做的缺点是我们必须部署更慢的速度并在一个系统或另一个系统中进行增量更改,部署,测试和发布,然后在另一个组件中进行更改。冲洗并重复。
  4. 如果你有资源我强烈推荐#1。最初设置起来比较困难,但它很快就能收回成本,而且一旦设置它也可以重复用于其他产品(只要它们遵循相对类似的部署模式)。

答案 1 :(得分:0)

这取决于您的设置。例如,我需要测试我的团队创建/修改的一组Web服务。在测试期间,我们将应用程序部署到一台机器作为生产者,并使用SoapUI通过许多线程生成了几千个事务(我记得从1到100个线程)。这样我们就能保证响应和SLA(服务水平协议)。