持续集成实验总结

此次持续集成实验是基于Travis CI集成的一个Django项目;该项目已经完成前端框架以及部分的后端框架,我们小组(4人)需要做的是在该基础上完成后端框架以及进行一定的优化。此次实验,我负责的是:

  1. Travis CI集成
  2. Django单元测试的调研
  3. 后端与微信公众号相关的接口部分(Handler.py)的实现与测试。

本次实验小组集中开发持续一周,最终完成项目所需功能,并进行相应的单元测试、功能测试以及性能测试与优化。
整个过程熟悉了持续继承开发的流程,微信公众号平台的开发以及git的使用。

Git

  • 由于是小组作业,因此必须使用Git;我们在操作系统课上基本使用过git,在本次实验过程中,小组成员更加熟悉对于git的操作。

Travis CI

  • 这一块是由自己做的,详见https://www.jianshu.com/p/951ce2fb255d
    这一模块自己先踩了一个巨坑,由于自己开始调研时不够全面,先使用了https://travis-ci.org,导致我一度认为travis CI仅仅支持公开库,使得我们的项目一度公开了一段时间,之后为了保证各种私密性,使用Travis对文件加密,感谢Nan同学的提醒,我才了解到私有库也可以支持,不过是在https://travis-ci.com上,好在我们的项目在写核心代码之前就已经设成私有库,因此对我们影响不大;同时感谢Chen同学的提醒,我于是抛弃加密方式,将部署和测试的settings分开。
    Travis CI的博客见:https://www.jianshu.com/p/951ce2fb255d

  • 至于感想:
    觉得Travis CI真的好用,以前小组作业时,并没有使用过Travis,因此每次merge的时候都有些胆战心惊,毕竟没有人会全部看完其他分支的代码,但是现在有了测试,有了Travis的自动build,我们只有发起pull request后build成功才会进行merge,能够降低误操作率。

测试

  • 单元测试:单元测试非常重要,我们会进行测试,即A写B实现的单元的测试类,B写C的,依次类推。我们在后续的修补bug后,务必先得通过测试,才能push,只有在Travis上build成功,才能merge。
    Django的单元测试的博客见:https://www.jianshu.com/p/5533c866453a

  • 锁的测试
    我们经过讨论,最终决定每次加锁时使用悲观锁,加锁的位置也应该注意:仅在需要修改数据的时候加上。
    我们也进行了对锁的正确性的测试:给定100张票,1ms内10000个人请求,最终成功抢到票的人数 + remain_tickets = 总票数;以及同时10000个人退票,最终成功退票的人数 = remain_tickets。我们进行了各种测试,最终能够保证我们的锁的正确性。

  • 功能测试

  • 性能测试
    测试的详细说明在我们的文档中有详细介绍。

微信公众号平台开发

  • 熟悉了如何开发微信公众平台
    总结了如何对微信公众号接口进行单元测试,博客见:https://www.jianshu.com/p/e33d248482f3

小组管理与分工总结

  • 鉴于上次我们小组的分工不明确,我们此次的任务分工都比较明确,且互不相关。
  • 我们的每个迭代周期完成后产品都可以使用

你可能感兴趣的:(持续集成实验总结)