我对构建一个将运行我所有集成测试的自动化集成测试环境有点困惑。
我有开发,测试(集成),预生产(分期)和生产服务器,此外,有一个服务器负责自动构建(Jenkins)。
也就是说,我在jenkins服务器上运行单元测试,并将其部署到开发服务器。我想在我的集成测试服务器上运行我的集成测试,但我只有一个CI托管在一个服务器上。
这个架构是正确的吗?
我需要一个不同的Jenkins服务器在开发服务器上运行单元测试,在集成测试服务器上运行集成测试等等。或者我怎么能弄清楚在单个Jenkins服务器上运行不同类型的测试。?
集成测试需要一个单独的环境。
- 创建环境(已部署的所有db和应用程序)
- 种子:设置应用程序运行所需的最小数据。例如,如果是在线销售,那么产品需要在场。
- 插入场景特定数据(例如:添加新客户)
- 模拟一个场景(例如:购物🛒篮子添加了3个项目)
- 执行最后一步(结帐+付款)
- 验证(例如:确保所有结账和付款都正确进行)。这也可能涉及直接对DB或其他源的自定义查询,也可能涉及应用程序代码可能不使用的自定义连接器(如OLEDB)
- 删除环境:这主要是为了节省成本。所有的结果和错误都要记录下来,并保存起来以备审查。为了调试,可以阻止环境的删除。
步骤3-5可以重复以尝试多个场景,但也可以删除中间的一些表,以防止其他测试污染数据。如果某些组件无法重新创建。例如:API PUT到第三方API,然后需要在这个环境中依赖注入和模拟。但是来自第三方的get应该可以正常工作。
步骤2、3和6可能需要自定义编码。剩余的应该从已经构建的代码中重用。