第七期_专项测试_20190309

崩溃问题检测

  • monkey
  • 自动遍历 appcrawler maxim
#原生monkey 随机输入 不太可控
adb shell monkey -p com.xueqiu.android --pct-touch   100 --throttle 500  -vvv 20
#android平台专用,速度非常快
adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.xueqiu.android --uiautomatormix --running-minutes 60 -v -v
#跨平台,速度比较慢
java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.xueqiu.android,appActivity=.view.WelcomeActivityAlias"

弱网

  • 通用弱网模拟工具 ATC
  • Proxy + 自动遍历

交互体验

adb shell am force-stop com.xueqiu.android
# -S已经表示会自动关闭app
adb shell am start  -S -W com.xueqiu.android/.view.WelcomeActivityAlias
adb logcat |grep -i activitymanager.*Displayed

录屏拆帧 ffmpeg

  • 录屏 screenrecored
  • ffmpeg
  • opencv去重
  • 统计分析

Uiautomator每隔200ms去检测页面变化,分析page source的变化,但是不能使用appium这种比较慢的自动化方案.

接口性能

  • charles
  • burpsuite

把结果导出为har格式,生成瀑布流图

H5性能

卡顿

systrace

cd $ANDROID_HOME/platform-tools/systrace
python2 systrace.py 

常用命令

adb shell dumpsys procstats --hours 3
adb shell dumpsys meminfo package_name|pid [-d]
adb shell dumpsys batterystats --charged package-name
adb shell dumpsys netstats detail
adb shell dumpsys gfxinfo package-name

while true;do adb shell dumpsys meminfo com.xueqiu.android | grep "Dalvik Heap"  | awk '{print $3}';done
adb shell dumpsys netstats detail |sed -n '/ident.*10208.*/,/ident/p' |  grep st= | awk -F '=' '{print $3}' | awk '{print t+=$1,$1}END{print t/1024}'

耗电量测试

#https://github.com/google/battery-historian
git clone https://github.com/google/battery-historian.git
cd battery-historian
go get -d -u github.com/google/battery-historian/...
go run setup.go
go run cmd/battery-historian/battery-historian.go

android studio monitor profile

专项测试工具

  • adb logcat
  • dumpsys
  • andoid studio profile
  • adb device monitor

ios

  • instruments

作业1

使用appcrawler 2.4.x版本遍历自己公司的app,模拟弱网在2G情况下的加载。把appcrawler的结果截图到回复里
参考

作业2

使用systrace分析自己公司app的一段列表滑动或者进入新界面的卡顿情况

作业3

使用脚本分析网络数据库的收发情况。统计所有的发送和结束的数据包,换算为k