本次实验主要负责网页端的后台逻辑测试,编写.travis.yml配置测试文件,编写自动化测试用例,进行手动功能测试及辅助完成抢票功能的性能测试。
.travis.yml文件并不难写,只要将执行build和script的流程弄清楚,安装必要的python包,配置好数据库信息就可以了。最后我们对于测试用的configs.test.json文件进行了加密,防止wechat app id和token的泄露。关于travis CI的学习小结见Travis CI 技术小结
编写自动化测试用例则经过了信心满满到屡受挫折的一个过程。本次实验的网页端接口很多,并且在核心的逻辑部分:如创建活动、修改活动etc.考虑的情况也很多。最后编写了约80个测试用例。在测试过程中,也发现了很多后端代码的逻辑错误,可以说测试用例和后端逻辑代码是共同在不断优化完善的。
手动功能测试,基本上将编写的自动化测试用例执行了一遍。因为自动化测试基本上只判断处理信息的对与错,对于信息最后呈现的方式没有可观性。在测试过程中,发现了前端存在的bug,比如时间的时区转换问题、创建发布活动不检查文本输入的正确性等等。在测试过程中,前端和后端的完善也是同步进行的。
由于前面的工作拖的时间比较长,性能测试则非常的匆忙。在第一次测试后,结果让我们吃惊,对数据的读写冲突导致已发放的票数和用户抢到应票数不对应。于是团队决定进行进一步的优化,对数据库加锁。在这个过程中,我们也更深入地了解了在如何在高并发条件下处理请求。这对于我们之后写学生节晚会小程序的大作业的也很有帮助。我和队友也一起撰写了JMeter性能测试技术博客。
最后想说,这个大作业真的没有想象中的容易(捂脸),写完代码很快,但是之后的测试、debug真的很令人抓狂... 一开始,我本来是负责所有的测试工作的,结果网页端逻辑测试到一半的时候,发现工作量是在太大,赶紧请求队友救场.... 但在这个过程中了解了微信公众平台的接口接入,django项目的体系框架,以及持续集成技术Travis CI和性能测试工具JMeter,也是一次满满的收获了。