原来的计划中,关于对服务器端的自动化测试,其实我是打算讲解我们短信网关和彩信网关的自动化测试,在电信行业江河日下的情况下,接触这块协议的人估计会很少,还是讲讲大家接触的到的吧。 其实对我来说,接触的应用层协议太多了,HTTP协议和SMPP,Diameter,CMPP, Radius协议没有太大区别,只是每种协议的head, body, call flow不一样而已。 整个服务器端的自动化测试主要包括2个部分,模拟器部分(simulator)和控制台(controller),如下图系统架构。其实模拟器部分(sender and recipient),你认为不是自动化测试的部分也可以。考虑到sender端http协议是很多互联网公司接口测试的主要工作,所以我也放到这里了。这个主题的大头在controller部分。后面会详细讲解。
这里sender, recipient都和网关通过TCP通信,支持各种协议,这里我们主要以http协议作为实例。 Controller和gateway, sender, recipient服务器交互通过传统的telnet,ftp进行通信,不建议在对应的sender, recipient, gateway服务器上部署agent来接受命令来获取内容,容易因为agent的bug导致测试不下去。使用传统的telnet, ftp还是相当稳定的。 Gateway接受sender过来的http request,做一定处理后转换成自己的消息,结果路由,发送给recipient. 下一篇主要讲sender模拟器的实现,我们主要使用Python requests模块来实现。