一次电视盒子(Android)后端API的测试经历
版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://vearne.cc
引言
最近笔者在为电视盒子APP开发API后端,API服务的开发不复杂,可是如何进行测试确实让我伤透了脑筋。在此把最终的方案记录下来,以享众人。
1. 解决域名指向问题
1.1
最初,我们希望的做法是用Charles或是Fiddler,在盒子上设置代理,然后把盒子的流量引到我的测试机上。默认盒子无法配置网络代理,可能需要使用如下命令调出Android的原生设置界面
1) 自行下载对应版本的Settings.apk
(小米盒子无需安装)
2) install
adb install Settings.apk
3)启动Settings
adb shell am start -n com.android.settings/com.android.settings.Settings
但是发现很多流量并没有通过Charles。原来在Android设备上设置网络代理,并无法确保所有的服务都使用这个代理,APP可以选择使用这个代理。
1.2
最后我们直接使用极路由(路由器) 的自定义hosts插件
修改完成以后,可以连上设备,验证一下域名的解析修改是否生效
adb shell
ping abc.com
PS:另外也可以通过让设备root然后直接修改盒子的/etc/hosts文件,其实我们还曾经想过使用dnsmasq污染DNS的方式来修改域名指向,但是在盒子上貌似并没有生效。
2. 解决HTTPS证书问题
APP对后端的调用大部分接口走的都是HTTPS。对于测试场景,我们不应该使用公司真实的SSL证书,因此我选择自签名SSL证书。
自签名的证书,因为加密算法或者摘要算法选择不当仍然被浏览器或者设备认为是不安全的。
这里推荐一个库
Fishdrowned/ssl
生成完毕,需要在nginx配置域名的证书和私钥,同时需要将根证书导入设备
adb push ca.perm /sdcard/download/
导入后,需要在打开盒子界面,安装此根证书
adb shell am start -n com.android.settings/com.android.settings.Settings
总结
本文介绍了如何针对移动设备(Android)后端API服务进行测试,希望能对大家有所启发。