基于 KIF 的 iOS UI 自动化测试和持续集成(7)

发表于:2017-03-10来源:美团点评技术团队作者:美团点评技术团队点击数: 标签:iOSKIF
1. 持续集成的意义与 UI 自动化测试的用例选择 持续集成是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计

1. 持续集成的意义与 UI 自动化测试的用例选择

持续集成是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预。我们的项目都是团队协作开发,采用持续集成的优势显而易见:

  • 尽早尽快地发现集成错误,保证团队开发人员提交代码的质量,减轻软件发布时的压力;
  • 自动完成集成中的环节,有利于减少集成过程的重复工作以节省时间、费用和工作量;

持续集成最大的好处在于能够尽早高效发现问题,降低解决问题的成本。而发现问题的手段主要就是测试。
根据 Martin Fowler 的测试理论,测试应该遵循如下测试金字塔组合,测试金字塔最底层是单元测试,然后是集成测试,继而是面向应用程序服务层的中间层测试,最高层是面向用户的业务逻辑测试:

测试自动化的测试层级越多,持续集成平台就能产生越大的价值。
UI 测试目标是覆盖最核心的代码,尽可能去掉依赖,让不稳定因子降到最低,这样既保证自动化测试层级的全面性,又保证持续集成的稳定构建,降低测试的投入产出比。因此,在我们的 UI 自动化测试中,我们选择核心功能的冒烟用例来完成持续集成中的测试金字塔。

2. Jenkins 上完成基于 KIF 的 UI 自动化持续集成搭建

Jenkins 是一个开源的持续集成工具,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。
Jenkins 以 Job 为单位运行项目,一个 Job 的工作流程为:在指定的时机,选择合适的 salve 节点,从版本管理系统上获取对应的源码,使用命令行脚本或者 maven 或者 ant 进行构建,构建后归档文件,处理报告,如果构建失败那么就通过邮件进行反馈等。
Job 的触发时机主要有3种选择:

    原文转自:https://zhuanlan.zhihu.com/p/22283843