zoukankan      html  css  js  c++  java
  • 1.移动端自动化测试-知识笔记(面试必备,测试点,adb命令)

    移动端测试: 移动应用,特性(功能) 满足 需求(产品文档,隐性需求)

    一。App功能测试: 死活背下来
    1.业务逻辑正确性测试: 产品文档,隐性需求- 写成测试用例

    2.兼容性测试:
       1.系统版本:
            android版本:官方版本(5.1 4.3 6.0…) 华为 小米 魅族
            iOS版本:官方版本
        2.分辨率:480x720 1920x 1080,关注点:图片展示
        3.网络情况:2G 3G 4G Wi-Fi
        (闲话:图片下载时网络切换会压缩图片但是保证APP流畅可用)

       
    3.异常测试:
        1.热启动应用:应用置于后台,应用置于前台过程
        2.网络切换&中断恢复
        3.电话&信息中断恢复
       

    4.升级&安装卸载测试
        1.升级:系统升级,渠道升级,临近版本(1.0->1.1),跨版本(1.0->1.5)
        2.安装卸载测试:系统版本,首次安装,覆盖安装,卸载后安装,卸载->安装->卸载

    5.健壮性测试:
        1.手机资源消耗:cpu(闲话,如果应用有死循环那么占用率特别高,应用打开后占用超过50%就没法用了),内存(闲话:和cPU一样,后面会讲如何监控)
        2.流量消耗:图片(闲话:一个图片起来就要4M流量,不好),传输数据压缩(尽量数据压缩再传输上去,耗费太多安全助手安装好后看到流量使用用户觉得不好 直接删除该APP)
        3.崩溃恢复测试:闪退(闲话:自启动或者点击可启动),报错误(再启动要能用)

    二。自动化测试:

    1.重复的工作交给机器去做,解放初一部分人新功能测试和探索性测试
    2.新功能和一些很难通过脚本模拟的业务

    ADB原理:


    1.帮助:adb —help

    2.启动adb server:adb start-server

    3.关闭adb server: adb kill-server
    4.设备号:adb devices
    5.系统版本号:adb shell getprop ro.build.version.release
    6.电脑文件发送到手机:adb push 电脑文件路径/文件 手机存储路径
    7.从手机拉取文件: adb pull 手机文件路径 电脑文件存储路径
    8.查看手机运行日志:adb logcat 扩展 可以通过过滤报名取到指定app运行日志(mac/linux:| grep 包名 win: | findstr 包名)

    9.进入手机shell命令行: adb shell 可以操作类Linux命令 top 过滤app占用资源

    (举例:

    测试正在被测的应用占用的实时内存是多少

     top|grep com.avatar.settings(操作的时候有变化)

    10.获取app包名和启动名:(记住斜杠前面的就是包名,不一定都是com开头)
          1.mac/linux:adb shell dumpsys window windows | grep mFocusedApp
          2.win:adb shell dumpsys window windows | findstr mFocusedApp

    (举例:机器人打开这个应用,adb输入

    com.avatar.settings/.Settings  是包名 和启动名 )

    下面来介绍一下,如何查看手机中安装的apk信息
    方法一:进入cmd窗口,输入adb shell,进入手机,在输入ls /data/data,即能显示出手机中安装apk的包名

    方法二:查看手机中非系统的apk包名信息,adb shell pm list package -3,这个命令很实用。这和命令后面不加-3表示查看手机中使用的apk包名,这个有很多就不截图了。

    方法三:知道手机中的包名,还想知道其他的信息,使用adb shell dumpsys package 包名:查看某个包的具体信息,如图:

    11.安装apk到手机:adb install apk文件路径

    12.卸载app/包:adb uninstall 包名

    13.获取app 启动时间:adb shell am start -W 包名/启动名

    (举例:

    TotalTime:app自身启动时间 
    WaitTime:系统启动应用时间
    


    14.指定某台设备:adb -s 设备号


    Appium:
    appium: 封装android官方自动化工具uiautomator
    appium原理图:脚本 <-> appium服务 <-> 手机端 ->uiautomator
    appium声明手机驱动对象:webdriver.remote(服务地址,启动参数)

    关闭app: close_app() # 关闭当前app 但不关闭driver
    关闭驱动对象: quit() # 退出手机驱动对象,同时关闭所有关联窗口
    启动新的app:start_activity(包名,启动名)
    appium-安装app:install_app(app在电脑端的路径)

    appium-卸载app:remove_app(包名)
    判断app是否安装:is_app_installed(包名) # 安装返回True, 未安装:返回False

    appium-电脑文件发送到手机:push_file(手机存储路径,data) # data:base64编码数据
    appium-从手机拉取文件:pull_file(手机存储路径) # 返回是base64编码数据
    获取当前屏幕内元素结构:page_source # 返回的是<<当前>>屏幕

  • 相关阅读:
    使用Fiddler模拟客户端http响应
    Vim显示行号
    Convert int to byte array
    bare linefeeds received in ASCII mode
    Memory Analyse Tool
    what is the difference between static and normal variables in c++
    Looper Could not create wake pip
    Convert Java Doc to CHM using jd2chm
    ARM(RISC)和x86(CISC)的技术差异
    处理器架构——从RISC与CISC到x86、ARM、MIPS
  • 原文地址:https://www.cnblogs.com/yinlili/p/11165419.html
Copyright © 2011-2022 走看看