APP性能 uiautomator -- 离线封包模拟用户使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP性能 uiautomator -- 离线封包模拟用户使用相关的知识,希望对你有一定的参考价值。

参考技术A 该自动化测试为模拟用户使用,主要测试点为手机或智能设备的整机续航测试。

一、测试前机器准备工作

1.安装测试APK(多为第三方APK)

2.安装完成后,进入APK打开系统权限,因为测试APK多为第三方APK,所以我们经常会遇到第三方APK弹窗问题。(该问题会再后续解决)

3.将输入法切换为英文输入法,插入要求运营商测试卡。(测试卡一般选用电信及移动卡,考虑到联通卡功耗会过高。)

二、测试连接环境搭建

测试需求资源(PC一台、路由器、测试终端(多台))

首先你的手机和你的电脑,必须是在同一个网段里面,也就是连接同一个路由器。

单终端连接实现方案:

1、扫描所有5555到5585范围内的奇数端口来定位所有的模拟器或设备。

2、一个偶数端口用来相应控制台的连接,和一个奇数端口 用来响应adb连接。(故我们选择的端口号需要为奇数)

终端通过USB连接至PC端(开启USB调试模式)

打开命令行输入:C:\Users\Administrator>adb tcpip 5555    返回结果:restarting in TCP mode port: 5555

命令行输入:adb connect 192.168.1.3 //同一局域网下测试终端的IP     返回结果:connected to 192.168.1.3:5555

多终端连接实现方案:

前置条件:第二个终端需USB连接上PC(开启调试模式)

1. 通过adb devices命令 获取所有online设备的serial number

C:\Users\Administrator>adb devices

例子:List of devices attached    192.168.1.3:5555  device   SH0A6PL00243    device

2.打开adb 端口   adb -s SH0A6PL00243 tcpip 5559(5559为自选)

3.连接测试终端  adb connect 第二台设备的WIFI:IP:5559

三、测试前终端设置

C:\Users\Administrator>adb devices  - List of devices attached

192.168.1.1:5555  device    192.168.1.2:5559  device

导入APK: adb -s 192.168.1.1:5555 push F:\dou\app-debug.apk +(空格)+ /data/local/tmp/cxq.com.dou_test

安装APK: adb -s 192.168.1.1:5555 shell pm install -t -r "/data/local/tmp/cxq.com.dou_test" (名称可能会变,以提供APK为准)

返回信息  pkg: /data/local/tmp/cxq.com.dou_test   Success                

导入APK:adb push F:\dou\app-debug-androidTest.apk /data/local/tmp/cxq.com.dou_test.test

安装APK:adb -s 192.168.1.1:5555 shell pm install -t -r "/data/local/tmp/cxq.com.dou_test.test" (名称可能会变,以提供APK为准)

返回信息: pkg: /data/local/tmp/cxq.com.dou_test  Success                       

运行APK:adb -s 192.168.1.1:5555 shell am instrument -w -r -e debug false -e class cxq.com.dou_test.UnitTestSuite

cxq.com.dou_test.test/android.support.test.runner.AndroidJUnitRunner(名字可能有变化,具体以提供时为准)

OPENCV----在APP性能测试中的应用

 

应用项目:  APP的性能测试

 

应用场景:  APP启动速度  视频开播速度 加载速度  等~~

 

缘来:  基于APP日志UiAutomator的测试方案,测试结果不能直白且精确的反应,用户的体验

 

改进: 通过手工操作或自动操作的方式录取视频,然后用图像处理的方式,来获取测试结果

 

架构流程图:

 

主要的核心点:

  视频分帧: 基于ffmpeg库 进行分帧

              样例: ffmpeg  -hide_banner -i video.mp4 -an -vsync 0 .\\frames\\%06d.png > null

 

       图片对比: 基于opencv库进行图片对比

       核心代码:

int diff_count(const Mat& lmat, const Mat& rmat, int threshold) {
    int cols = lmat.cols;
    int rows = lmat.rows;
    int esize = (int)lmat.elemSize();

    if ( rmat.cols != cols || rmat.rows != rows || (int)rmat.elemSize() != esize ) {
        return -1;
    }

    int total = rows * cols;
    int dcount = 0;

    for ( int i = 0; i < total; i++ ) {
        uchar* lptr = lmat.data + i*esize;
        uchar* rptr = rmat.data + i*esize;

        int sum = 0;
        for ( int j = 0; j < esize; j++ ) {
            uchar lu = lptr[j];
            uchar ru = rptr[j];

            int tmp = lu > ru ? lu - ru : ru - lu;
            sum += tmp*tmp;
        }

        if ( sqrt(sum)/esize >= threshold ) {
            dcount++;
        }
    }

    return dcount;
}

 

以上是关于APP性能 uiautomator -- 离线封包模拟用户使用的主要内容,如果未能解决你的问题,请参考以下文章

App性能测试

OPENCV----在APP性能测试中的应用

android app自动化测试之UIAutomator

python+uiautomator2 app自动化

[uiautomator篇] 使用uiautomator需要导入uiautomator库

安装uiautomator2app定位元素工具---weditor