不好意思 各位,最近忙其他东西,也没时间来回复一些问题, 我统一答复一下把:
首先纠正我上面的回帖的两个问题:
很简单,这类协议怎么都是 https 或 http 的,使用 fiddler 或其他抓包工具,我建议你用 mitmvdump 抓取发送聊天的那个接口,因为可以自动化满足你的要求,然后 hook 住,修改发送次数为 int 的最大位,如果还不满足,可以用 python 的分布式到你局域网的其他机器,帮你发送,如果你服务器没有流控,压暴都是必然的;
这个功能刚好和我的实现方式一致:
第一步:我采用 linux 作为后台,部署了 xcodecoverage,同时会将编译主机的原文件代码 gcno 拷贝过来,这个可以在 jenkis 里面写 shell 实现;
第二步:用嵌码的方式来收集和发送每个版本每台手机的覆盖率信息,既然用到了 pod ,何不继续加几行代码: 在 pod 里面实现一个接口,用于gcovflush(), 和找到覆盖率文件发送;同时由于是 debug ,我们的开发在调试面板上实现了接口,所以你可以在调试面板上加开关实现是否需要采集和发送覆盖率的开关;做好不要在4g下发送的防护,否则,大家知道的.....。
第三步 linux 后台用 python flask(你也可以添加 java http 接口)实现一个简单的 web 服务器,接受文件,和展示 index.html 这个覆盖率信息;
这样你通过 xcodecoverage 就能自动统计每台手机当天完成的覆盖率,同时也能合并产生当前版本的总的覆盖率;
其中第二步最坑,由于文件太多,如果用 http zip 传输,会崩溃;放弃
如果实现 ftp 客户段传输,发现传不进文件,可能是使用 iphone 的原因;
所以只能启用后台线程一个一个的发送,你可以尝试 gcd 异步机制 ,启动多个线程共同完成工作;
当然 gcovflush() 只能在主线程刷新,刷新期间会较慢,此时会阻塞 ui ,不过这点时间对于测试人员来说还是值得的;
过段时间会在 github 上上传这些代码,不过最近还在解决从前端 web 自动配置增量信息,而手机只发送那些增量相关的覆盖率信息到 linux 后台收集和展现的过程,如果能解决第二步就能完美解决,因为采用 ftp 传输,可以先在 linux 上以文件的形式保存传输过来的增量模块,手机 pod 接口主动下载该文件做参考传输,这样你就能和 git diff 这些版本比对工具完美结合,成为一个覆盖率自动化工程了,希望能帮到大家;