基于运营环境的数据监控——接口测试

1.简要说明

每日通过眼睛检查app和web的数据,耗时耗力,也不可能把所有的对象全部仔细检测一遍。所以萌生通过自动化手段,自动定时监控运营数据。

 

2.为什么选择运营环境

运营环境(也称为线上环境或者正式环境)出现的问题,几乎全是后端网元错误。选择运营环境而不选择测试环境,因为运营环境稳定(极少故障和重启)、数据最真实(测试环境很多垃圾数据),所以也就最能发现系统问题。

 

3.程序说明

3.1.原理

httpclient负责和服务器进行通讯(发送和接受数据),json-lib负责解析json报文,junit负责对解析的报文数据解析断言判断,svn是项目源码仓库,ant负责构建项目,hudson负责进行持续集成。 当junit断言出现失败的时候,触发邮件通知,根据log,反向查找问题,从而定位问题原因。

 

3.2.运行逻辑

根据配置文件中提供的用户名,循环检查此用户名下面的所有对象信息。同时外面有一个大循环,把登陆的用户名数组化,这样就可以实现同时检测多个用户下面的多个对象。

同时增加一个黑名单功能,把不想检测的对象,加入到黑名单中,避免因为一个对象断言失败而导致的跳出整个测试方法。

 

3.3.处理的事务

Json报文的发送和接受(httpclient)

Json报文的解析(json-lib)

断言(junit)

Log的处理(log4j)

字符串的截取(java.lang.String)

日期信息的处理(java.util.Date、java.text.DateFormat)

变量类型的转型

代码仓库(svn)

自动构建(ant)

持续自动集成(hudson)

...............

 

4.运行说明

4.1.单独运行

以juni方式,单独运行java类,可以生成log

 

4.2.自动构建

使用ant构建,除了生成log之外,还可以生成测试报告(html、xml形式)

 

4.3.持续集成

通过与hudson集成,hudson连接svn,通过ant构建,定时自动执行job(目前每半小时会分别执行一次),除了生成log、测试报告之外,还可以发送邮件。

 

5.遇到的问题

5.1.遍历json报文

Json报文层次多,遍历某个层次困难。

通过把返回的json报文,一层层分解组成新的json,直到需要遍历的一层。然后通过赋值给list,循环遍历

 

5.2.Ant构建

引用的jar包文件名错误(粗心所致);

ant构建后,无log打出(未copy不需要编译的配置文件到class文件夹);

ant构建后,log打印出的中文乱码(以juni方式运行,log打印正常,以ant方式,log却是乱码,同一个配置文件。应该是ant对log4j支持不好导致,最后在配置文件中设置了运行编码解决);

 

5.3.Hudson集成

执行job的时候,输出不了junit报告(配置路径错误导致)

邮件发送失败(没有配置Unstable方式也发送邮件)

 

6.图例

 

Log显示: 

 


 
 

Hudson构建:

 


 
 

断言未通过或者构建失败的邮件:

 


 
 

7.目前通过程序发现的问题

 

已经发现包括API接口、网关、甚至硬件的几十个问题。以及数次服务器当机的及时检测。

 

8.主要断言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值