原理:模拟微信请求,对响应的结果进行match,看个截图:
通过查看微信的调用日志,我们可以看到有:消息,事件,文本,图片,用户管理,客服等等涵盖了微信公众号大多数操作的日志记录。同时也能看到每个操作请求的方式,这样就可以模拟微信的请求方式,在本地获取响应的结果,进行测试了。
我使用nodejs实现,测试包用的mocha和supertest;加密解密以及签名用的wechat-crypto;还有xml和json转换这类包等等。主要就这几个。
大致分为几步:
1,install supertest 和 mocha;
2,定义describe。
3,拼接请求的xml数据,
需注意:事件,消息,自定义菜单不同的操作为不同的xml格式;
发送的xml消息需要加密。
4,根据消息进行签名,拼接请求的url;
5,请求url,获取响应内容。