持续集成实验总结

此次持续集成实验是基于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。我们进行了各种测试,最终能够保证我们的锁的正确性。

  • 功能测试

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

微信公众号平台开发

小组管理与分工总结

  • 鉴于上次我们小组的分工不明确,我们此次的任务分工都比较明确,且互不相关。
  • 我们的每个迭代周期完成后产品都可以使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 微信抢票——持续集成实验总结 在本次实验中,我负责了管理员模块部分API以及测试的编写,以及代码覆盖率测试。在本次...
    言务去阅读 3,301评论 0 0
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,699评论 6 427
  • 在本次实验中我负责的是后端接口的实现以及测试,数据库的互斥访问部分的实现。在实验过程中,我收获较大的部分主要有: ...
    LeeDa李阅读 1,514评论 0 0
  • 作者:程嘉梁 持续集成实验是在大帝的框架上完成一个微信抢票公众平台的项目。在这一次实验中我主要负责管理员后端API...
    JL_Cheng阅读 3,398评论 0 0
  • 今天想和大家说一下我对早恋的看法,在之前先分享一则新闻:8月28日,沈阳某大型商超内举办“约见爱情”万人相亲大会,...
    进击的历史君阅读 3,561评论 8 3