内容比较长,所以分开写了,抱歉抱歉。
一、背景说明
1.当后台同学新增、修改优化接口后,期望新接口安全、稳定、健壮。
2.能够时时监测线上接口的运行状态,和告警。
3.QA同学希望测试前置,在接口开发完成后切入测试。通过入参边界值、异常测试等保障接口的健壮性,解决黑盒测试无法测试的场景,如null。
4.提高迭代效率,为持续集成、持续构建、持续部署探索。
二、实施结果
1.2分钟快速回归执行所有接口(386个),根据期望断言,输出html报告结果。
2.时时监测线上接口的运行状态,异常告警邮件。
3.接口测试前置,QA同学根据接口文档在接口开发完成后,编写测试用例并执行,把bug报告交付后台同学进行修改。
三、落地方案(Jenkins+Jmeter+ant+svn+maven。)
目前我们的接口都是使用的http、https协议,测试的基本原理是模拟前端(APP和WEB)向后端(服务器)发送数据,得到响应数据,从而判断接口是否可以正常的进行数据交换。
Jenkins:开源的java语言开发持续集成工具,支持CI,CD
Jmeter:开源Java的压力性能测试工具,也能够用来对应用程序做功能/回归测试,通过创建带有断言的脚本来验证返回结果,允许使用正则表达式创建断言
ant、maven:项目自动构建工具
svn:代码的版本控制
框架如下:
设计思路:
1.利用jmeter工具配置,遵循测试框架的一些基本原则,业务逻辑和测试脚本分离,测试脚本jmx和测试数据csv文件分离。
2.ant编译jmeter脚本生成*.jtl文件,并绘制指定样式的*.html报告。
3.Jenkins配置构建方式,搭配定时构建、轮询 SCM检查本地svn源码更新,进行构建,并配置当构建失败和接口报错时,进行邮件预警指定人员。
四、实施结果示意
1.接口报告(TestReport)
2.邮件正文
3.Jenkins后台
http://192.168.10.250:8090/
4.接口脚本和数据部分截图