由于效率问题,某个项目需要编写造数据脚本,其中用户端是在小程序,怎么拿到小程序交互的接口编写脚本是首先要解决的事。但是在操作时遇到了各种阻碍,所以差不多把能想到的获取接口信息的几种方法都试了一遍。
1、接口文档
首先最直接便捷的方式是通过接口文档,接口文档可以直观地获取接口地址、请求参数等信息,可以是文档版的接口文档,或者是某些API框架自动生成的接口文档。
问题:本项目并没有小程序相关接口文档(研发流程不规范)。
2、抓包
要想准确查看每一步交互的接口,最准确的方法就是抓包了,小程序的抓包和移动端一样,但是可能会出现部分安卓系统或者微信版本无法支持抓包的情况。
问题:配置好代理之后无法抓取到小程序上的请求。
3、日志
操作的时候,如果服务器有打印请求相关的日志,也是可以提取出接口的,但是肯定不全,因为像请求头部分和上传文件接口,即使日志有打印也不会像抓包的数据这么准确直观。
问题:本项目未打印小程序操作的请求信息(生产问题的定位是不是会不方便)。
4、WEB版微信
如果移动端无法抓包,在WEB版微信操作小程序也可以,同PC端的抓包操作类似。
问题:测试环境小程序需要依赖调试模式运行,web版微信小程序无法打开调试模式。
5、微信开发工具
通过微信开发工具调试每一步的操作,也可以抓取到接口信息,但是需要拉代码进行部署,操作麻烦。
此方法待定。
6、代码
直接查看代码,找到接口入参、出参和逻辑处理部分,可以进一步了解接口处理逻辑,但是成本相对较高。
此方法待定。
一开始可能版本的问题,无法抓到这个小程序的请求,然后才想到各种办法,最终各种重装/升级软件就好了(所以也不知道原本是为什么不行),通过抓包+结合代码完成了接口脚本的编写(差点想试试用模拟器登录微信再进小程序,但是笔记本显卡版本又太低装不了模拟器)。
可能有同学会疑惑,为什么需要结合代码,因为在没有接口文档的情况下,比如抓到接口某个参数“type”:“2”,你怎么知道type以及各枚举值的含义。
网友评论