折腾:
【未解决】集成部署自动测试工具中最新的安卓游戏测试到Windows测试机
期间,已经让自动测试工具在macOS中跑起来了。
但是现在需要继续去加上代理,把之前已有的代理功能启用了。确保可以过滤url到data数据文件中。
先去macOS中运行代理功能
再去被测试的安卓手机中,给WiFi加上代理
再去启动安卓游戏测试,看看能否过滤保存url到data文件
先去看看原先自动测试工具的代码中,记得是有代理的,先去开启
此处之前是有代码的:
src/AppCrawler.py
def start(self): 。。。 # self.start_mitmdump()
但是已经被注释掉了。
而是改为:
手动确保macOS中,运行了mitmdump脚本
而另外的
platformIntegration/autoProcessTask.py
是另外单独去启动mitmdump脚本的。
此处,还是先去手动启动,用于后续测试。
crifanli@crifanlideMac ~/dev/DevRoot/appcrawler master ● mitmdump -p 8081 -s middleware/Save1.py sys.executable=/Users/crifanli/.pyenv/versions/3.8.3/bin/python3.8 save url to /Users/crifanli/dev/DevRoot/appcrawler/data/fengyun/20201014_fengyun_YongHengJiYuan/20201014_fengyun_YongHengJiYuan_gameApp.txt Loading script middleware/Save1.py Proxy server listening at http://*:8081

然后去给安卓手机 红米Note8Pro的WiFi加上代理
另外前提确保 macOS中网络 和 手机网络是同一个
给手机加代理之前,先要去看看macOS中的IP是多少
crifanli@crifanlideMac ~ ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 UHC0: flags=0<> mtu 0 EHC2: flags=0<> mtu 0 en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING> ether 00:0c:29:4a:ce:51 inet6 fe80::c29:8f56:21d6:f928%en0 prefixlen 64 secured scopeid 0x6 inet 192.168.31.44 netmask 0xffffff00 broadcast 192.168.31.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex>) status: active utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000 inet6 fe80::d3a9:e18f:30a:3d0b%utun0 prefixlen 64 scopeid 0x7 nd6 options=201<PERFORMNUD,DAD>
macOS IP:192.168.31.44
去设置

然后调试看看,能否获取到url
去运行mitmdump
cd /Users/crifanli/dev/DevRoot/appcrawler/ mitmdump -p 8081 -s middleware/Save1.py
继续调试:

是可以的
可以过滤保存url到data数据文件中
然后调试可以进入到 点击 立即购买,然后出现支付相关url了:
data数据文件:
data/fengyun/20201014_fengyun_YongHengJiYuan/20201014_fengyun_YongHengJiYuan_gameApp.txt
MarkerAccount|018/永恒纪元|start http://m.api.m.37.com/sdk/active/?t=1603179209238|None http://track2.37.com.cn/api/bugless/|None http://s.api.m.37.com/sdk/active/?t=1603179210634|None http://res.mjsj.m.37.com/alpha_a/ver.txt?guid=39d4ecae-8e39-495e-9d4d-552c8f952299|None http://res.mjsj.m.37.com/alpha_a/VerInfo_e5f56e5d90b68cd5736579906e9f177a.xml|None http://res.mdts.5ypy.com/item/1002464/1/ImageVersion.txt?guid=834c81d6-f64a-4cf3-8331-acb7d3759be5|None http://s-api.37.com.cn/sdk/login/|None http://m.api.m.37.com/antiindulge/pcheck/|None http://app.37wan.5ypy.com/gameNotice?platCode=37wan&gid=1002464&pid=1|None http://m-api.37.com.cn/sdk/enter/|None MarkerElement|Button=进入首页|Action=Clicked MarkerElement|Button=点击首页充值按钮|Action=Clicked MarkerElement|Button=点击前往充值|Action=Clicked MarkerElement|Button=点击具体充值金额|Action=Clicked http://img04.sogoucdn.com/app/a/200678/5b 7b593043946306e864f86e93cd2688.png|None http://img02.sogoucdn.com/app/a/200678/3124285d2ab4b28f488d3de178f8daa1.png|None ... http://img03.sogoucdn.com/app/a/200678/9d3c03946cc6a580f632f1d4945a7bfc.gif|None http://img03.sogoucdn.com/app/a/200678/ca3618bf8f98fced068fa37316be659f.gif|None http://mpay.api.m.37.com/sdk/order/|None

其中被点击 出现支付相关url前后的mitmdump的log
192.168.31.177:50666: POST http://mpay.api.m.37.com/sdk/order/ << 200 OK 1.33k 192.168.31.177:50600: clientdisconnect 192.168.31.177:50670: clientconnect 192.168.31.177:50670: CONNECT 6ib5h.com:443 << Cannot establish TLS with client (sni: 6ib5h.com): TlsException("SSL handshake error: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert certificate unknown')])") 192.168.31.177:50670: clientdisconnect
但是app最后出现的页面却是空白,无法正常显示:

所以代码无法继续运行,无法检测后续流程的页面了。
【总结】
此处是可以:
在macOS中单独运行代理服务:
cd /Users/crifanli/dev/DevRoot/appcrawler/ mitmdump -p 8081 -s middleware/Save1.py
然后
确保macOS和手机同处一个WiFi网络:xxx_guest_5G
然后给手机加上代理,其中IP是macOS的IP
可以从:
ifconfig
中看出IP地址
然后调试运行:
可以过滤保存url到data数据文件
只不过:
【规避解决】安卓游戏永恒纪元支付页面弹框显示空白不显示内容