前一篇博客中谈到,家庭网关自动化实质是在不同配置数据下的通用业务逻辑,通用业务逻辑可以自己开发也可以用通用的商业测试脚本,但是各个厂商的配置界面肯定是不同的,配置数据需要定制。配置数据的数据化,关键是获取http消息里面的配置数据。本片博客重点介绍我是怎么实现配置数据的快速获取的。配置数据的获取,我主要是采用了自己开发的一个叫做GUIMessageRecorder的软件。我先介绍一下这个软件的使用方法,然后再介绍这个软件的实现。
软件的使用方法:
GUIMessageRecorder的启动后的主界面是这样的:
整个操作过程是这样的:
-
点击主界面上的“Create Action”来创建一个配置项目的名称,例如我创建了一个changeSSID的配置项目。
-
接下来通过电脑上的浏览器打开家庭网关的web界面(http://192.168.1.1),进入相应的配置页面后,点击GUIMessageRecorder上的“Start Record”,软件会提示你选择网卡,你就选择那个连接小路由器的网卡。
-
然后切换到浏览器界面进行修改ssid的操作,在GUIMessageRecorder的主界面上会实时显示http消息的内容,配置完后切换到GUIMessageRecorder的主界面,点击“Stop Record”,相应的配置数据就会被记录下来,我们也可以在编辑区删除不必要的消息,也可以不修改,去掉不必要的消息,可以减少在脚本运行是的消息数量,我一般只保留一个post消息,编辑后点击一下“Save Action”。如果没有编辑,不需要点击“Save Action”。
-
重复上面的操作,你可以录制很多配置项目,例如login等等
-
最后通过点击“Save File”保存文件
上图的左边都是配置项目,右边显示的是对应的消息内容。
如果需要修改单独的配置项目,你只要点击相应的配置项名称,重复一遍录制操作就可以了。
这样,我们可以为款不同GUI界面的路由器录制一份配置文件,注意相同的配置项取相同的名字,录制完后,我们就有了所有型号的路由器的配置文件。
到此,我们成功的把所有的配置数据获取,并保持到文件中了,这就实现了配置的数据化。往后你要在不同型号的路由器上跑你的自动化脚本,你只需要修改一下配置文件这个变量就可以。新开发的新款路由器也能够快速制作配置文件,让脚本跑起来。
GUIMesageRecorder的实现
我把这个软件的代码放在了百度云上进行共享,链接如下,有兴趣的朋友可以自己下载:
链接:https://pan.baidu.com/s/1IP3d-qOsP2hT8zeRRYZ5JA
提取码:eiws
软件是通过Python实现的,界面开发采用Pyqt5,抓包主要用scapy,http的解析用的是scapy-http,本人使用的python解释器是python 3.7。
后面我再写片文章,讲述怎么封装一个tcl过程来调用这些数据实现配置。