《突破开发与测试的技术栈壁垒——注入式方案在性能调优与自动化测试中的运用-纪润.pdf》由会员分享,可在线阅读,更多相关《突破开发与测试的技术栈壁垒——注入式方案在性能调优与自动化测试中的运用-纪润.pdf(48页珍藏版)》请在三个皮匠报告上搜索。
1、注入式方案在性能调优与自动化测试中的运用淘天集团-1688/纪润一、背景二、注入式原理及方案设计三、构建集成测试包四、研发和测试环境的部署五、生产环境下的App分析目录目录CONTENTS背景二、注入式原理及方案设计三、构建注入式集成包四、研发和测试环境的部署五、生产环境下的App分析传统测试方案传统测试方案User interaction人工测试TesterAppAppSource Code自动化测试HostAppiumTotoroAppSource Code面临的问题面临的问题端稳定和性能问题的发现严重依赖线上反馈,具有滞后性,用户影响大研发阶段的调试多依赖于开发者自身的能力,问题发现和排
2、查难度大,防腐化能力低传统基于 UI 的测试流程是以用户为视角,对于环境模拟、压力测试、代码级模拟等缺乏通用手段注入式原理及方案设计一、背景三、构建注入式集成包四、研发和测试环境的部署五、生产环境下的App分析什么是注入式方案?什么是注入式方案?通过对App采取逆向等方式注入具有代码级调用的原子性能力以供开发调试和自动化测试调用能力Debug PlatformTest PlatformAppService ProviderSource Codehookcall提供源码级别的原子能力,如获取内存、修改ABTest、异常数据注入等rpcDevelopment kit Development kit
3、 内置式注入内置式注入HostHTTP/WebSocketAppSource CodeDevelopment kit内存帧率Cpumockroute.AppAppiumTotoroApp内置Native代码,通常通过native hook方式获取数据,通过websocket方式供外部调用Development kit Development kit 内置存在的问题内置存在的问题代码侵入性过高,会导致过多的依赖和复杂的调用逻辑多平台技术栈Development kit维护难,提供给外部调用的接口逻辑和方式难以保证一致性只能做到静态注入,无法热调试,更多功能的接入和扩展依赖于重打包,成本较高对线上
4、包集成相关功能,存在安全风险逆向工具逆向工具FridaFridahttps:/frida.re功能:支持脚本注入到黑盒进程,挂钩函数、监视API 或跟踪私有应用程序代码,无需源代码、编译步骤以及程序重新启动即可使修改生效多平台:支持Android、iOS、Windows、Linux等多平台脚本化:支持在进程中直接注入和调试脚本(javascript)多模式:支持Injected、Embedded、Preloaded多种操作模式pip install fridapip install frida-toolsFrida Injected Frida Injected 模式模式AppHostjava
5、script InjectionRpcAtomic Service Script内存帧率Cpumockroute.AppFrida ServerAppiumTotoroProcess 1Process 2Frida Injected Frida Injected 模式模式2.推送并启动server$adb push./frida-server-16.1.10-android-arm64/data/local/tmp/$adb shell chmod 755/data/local/tmp/./frida-server-16.1.10-android-arm64”$adb shell/data/l
6、ocal/tmp/./frida-server-16.1.10-android-arm64&3.执行脚本注入$frida-U-f com.test.alibaba-l./ActivityWatch.js-U表示连接 USB 设备,-f应用的包名,-l需要注入的Frida脚本文件的路径2.server版本需要和电脑端frida版本一致$frida version3.server的架构需要和手机架构一致$adb shell getprop ro.product.cpu.abi 1.https:/ Injected Frida Injected 模式存在的问题模式存在的问题iOS JailBreak