Qtest测试之道 测试兵器谱の移动测试篇

360Qtest团队 · January 23, 2019 · Last by 重来看雨 replied at January 25, 2019 · 2069 hits

前言

所谓工欲善其事,必先利其器。当我们遇到任务和挑战时候,作为工程师来说第一反应自然是造一个华丽的轮子,本文称之为测试“兵器”。自古以来造轮子和复用轮子一直是大家津津乐道的话题,本文先从移动端测试的方向给大家呈现一张“兵器谱”,帮助新老同学在工作中需要用到的“兵器”的时候能快速找到称手的那一把。

兵器谱总览

以上是我们日常业务测试中可能涉及到的(包括但不限于)十二个方面,真是不整理不知道,一整理吓一跳,没想到会有那么多方向需要去写,作者非常后悔上篇文章吹过的牛X,感觉后面三年都要献给公众号事业了。

兵器细分

  • 常见应用模式

    • Native
    • Hybird
    • H5
    • React Native
  • 常用调试工具

    • Android平台
      • adb
      • ddms
      • aapt
      • monkey
      • monkeyrunner
      • emulator
      • hierarchyviewer
      • monitor
      • UIAutomatorviewer
    • iOS平台
      • atos
      • xcode
      • instruments
      • codesign
      • iExplorer
      • xcrun
  • 常见UI自动化框架

    • Android平台
      • Instrumentation
      • Appium
      • Robotium
      • Instrumentation
      • Athrun
      • Monkey
      • MonkeyRunner
      • UIautomator
      • Selendroid
      • Calabash-Android
      • Espresso
      • cafe
      • Macaca
      • Airtest
    • iOS平台
      • UIautomation
      • Frank
      • Appium
      • Monkeytalk
      • Calabash-iOS
      • iOS-driver
      • XCUITesting
      • TuneupJs
      • YNM3K
  • 常见的单测框架

    • Android平台
      • Robolectric
      • Mockito
      • RxJava
      • Instrumentation
      • AndroidJUnitRunner
      • Espresso
    • iOS平台
      • XCTest
      • GHUnit
      • OCUnit
      • OCMock
      • OCMockito
      • Expecta
      • OCHamcrest
  • 常用的抓包工具

    • Fiddler
    • Charles
    • Tcpdump
    • Wireshark
    • BurpSuites
    • 第三方proxy server(如:Anyproxy、mitmproxy、browsermob-proxy)
  • 弱网模拟

    • Fiddler
    • Charles
    • ACT(Augmented Traffic Control by facebook)
    • iOS developer mode
    • 其他限速软件,比如各种随身WIFI、路由器、网卡等
  • 常用的专项测试工具
    Android平台

    • 集成工具
      1. GT(腾讯开源)
      2. 易测(淘宝不开源)
      3. emmagee(网易开源)
      4. iTest(科大讯飞不开源)
    • CPU
      1. DDMS
      2. Monitor
      3. TraceView
      4. ADB Shell
        1. /proc/stat && /proc/%pid%/stat
        2. Top
      5. dumpsys cpuinfo
      6. Android API
    • 内存
      1. MAT
      2. DDMS(or Monitor)
      3. Android Studio Monitor
      4. Allocation Tracker
      5. LeakCanary
      6. ADB shell
        1. dumpsysmeminfo %package_name% && dumpsys meminfo %pid%
        2. top
      7. procrank
      8. Android API
      9. Memory Leaks(iOS)
    • 流量
      • Tcpdump
      • ADB shell
        • /proc/uid_stat/uid/tcp_send(上传流量)
        • /proc/uid_stat/uid/tcp_rcv(下载流量)
      • Wireshark
      • Fiddler
      • Charles
      • Android API(版本限制)
    • FPS
      • ADB shell
        • service call SurfaceFlinger 1013(需要root)
        • dumpsys SurfaceFlinger
        • dumpsys gfxinfo %packagename%(版本限制)
      • Android开发者模式-GPU呈现模式分析
      • 高速摄像头
    • 启动时间
      • 冷启动定义(无数据首次启动APP)
      • 热启动定义(BACK退出APP后启动APP)
      • Logcat(Android 4.4+)
      • am start -W [packageName]/[packageName.MainActivity]
    • 功耗(电量)

      • Android平台
        • dumpsys batterystats(版本限制)
        • 反编译获取power_profile.xml查看
        • Battery Historian Tool(版本限制)
        • Android API
      • iOS平台
        • 开发者选项->logging ->start recording + Instrument
      • 功耗测试仪,如安捷伦
  • 静态扫描

    • Android平台
      • 火线
      • Findbugs
      • Infer
      • Sonar
      • Lint
      • P3C(阿里基于PMD开发)
      • PMD
      • CheckStyle
      • 360代码卫士(商业)
      • Fortify(商业)
      • Coverity(商业)
    • iOS平台
      • OClint
      • infer
      • scan-build
      • Clang Static Analyzer
  • 代码覆盖率

    • JaCoCo
    • Cobertura
    • Emma
    • Code Coverage in Xcode(iOS)
  • 常用的云测平台

    • 免费开源
      • STF
    • 商业(限时免费)
      • 腾讯WeTest
      • Testin
      • 百度MTC
      • 阿里MQC
      • 腾讯UTest
      • 东软易测云
      • TestBird
      • 华为云
      • Pefecto
      • LessPainful
      • TestDroid
  • 持续集成

    • Jenkins
    • Travis CI
    • Buildbot
    • Strider
    • Integrity
    • GO
  • 监控SDK

    • BlockCanary
    • LeakCanary
    • Bugly
    • crashlytics
    • 友盟
    • 网易云捕

后话

罗列了那么多“兵器”,相信一定有一些是大家用过的,有一些可能是第一次见,不知道具体的用途和作用,大家不用着急,反正我也不会给你们逐一介绍的,因为作者余生还有很多事要去做。
我会从里面挑选一些我们有实践经验的“兵器”,和大家分享我们实践过程中的经验和教训。
由于本人认知有限,有很多不足和理解有误的地方,还请各位看官多多留言指点。

共收到 7 条回复 时间 点赞

👍 围观

支持一下

老司机快带带我 满足360要求就行 😄

UIautomation 都不用了。。没必要写上咯。。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up