手机app怎么测试,手机app怎么测试

2023-10-11崇庆运势网热度: 14012

Airtest 如何测试手机 APP

Airtest 是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机 APP 和游戏的测试。一旦使用了这个工具进行 APP 的自动化,你就会发现自动化测试原来是如此简单!!

要进行 APP 的自动化测试,首先要将手机连上 airtest。连接手机有几种方法都可以实现:

注意:部分手机还需要打开“允许模拟位置”、“允许未知来源安装应用”,所以如果不成功可以把这两个选项也勾选!

当手机与电脑处在同一个 wifi 下,即可尝试无线连接手机了,其实也就是通过 adb 无线连接手机。但是这种方式受限于网络连接的稳定性,可能会出现连接不够稳定的情况。具体连接操作步骤如下:

1、touch :点击操作 包含的参数:

v:点击的图片或者坐标
times:点击次数,默认 1 次
duration:按住时间,默认 0.01s
right_click: windows 有效 ,手机端无效

2、text :输入文本

包含的参数:
text:输入的文本
enter:完成输入后自动执行 enter 操作,默认为 True
search:完成输入后强行执行 search 操作,默认为 false

3、wait:等待元素出现,如果找到该这个 图片就返回图片中心点的坐标,如果不出现就抛出错误:TargetNotFoundError

包含的参数:
v:点击的图片或者坐标
timeout:等到超时时间,默认 20s
interval:每次寻找的时间间隔,默认 0.5s
intervalfunc:图片没有找到就执行后面的函数,默认为 None

4、sleep :暂停等待

包含的参数:
secs:延迟时间,默认 1.0s

5、assert_exist : 判断图片是否存在,如果存在就返回图片的中心坐标,不存在就 raise AssertionError

包含的参数:
v:图片
msg:描述测试点,它将被记录在报告中
return: 存在就返回图片的中心坐标,不存在就 raise AssertionError

6、assert_not_exist :判断图片是否不存在,如果存在就 raise AssertionError

包含的参数:
v:图片
msg:描述测试点,测试 报告中显示

7、assert_equal : 判断第一个值和第二个值是否相等

包含的参数:
first:第一个对比条目
second:第二个对比条目
msg:描述测试点,在测试报告中显示

8、assert_not_equal : 判断第一个值和第二个值是否不相等

包含的参数:
first:第一个对比条目
second:第二个对比条目
msg:描述测试点,在测试报告中显示

我们现在用以上这写 API 来实现一个具体的需求用例:

需求: 登录柠檬班 app,并判断是否登录成功;

注意:为了确保万无一失,最好在输入文本之前,先点击输入框,确认输入的焦点。

所以先调用 touch API,再调用 text API。点击 text API 就会弹出如下图所示的文本输入框,输入你的手机号码即可。同样的步骤,输入密码;最后,点击“登录”按钮。

用 assert_exists API 来断言是否登录的用户名和头像是正确的,脚本如下:

可以打开测试报告,查看运行结果和断言的图片如下图所示:

如何对一个Android软件进行测试?

主要测试内容包括:

1、功能正确性测试;

根据这个安桌软件的需求,看它到底支持那些功能,对每个功能,编写测试用例,验证这个功能是否正确;例如:有注册,登陆,编辑消息,发送消息,删除消息,察看消息等功能,那么你就要测试这每个功能是否正确实现了。

2、界面易用性测试;

主要考虑(1)易理解性;(2)易学习性;(3)易操作性;是否达到要求。

3、兼容性测试;

不同安卓版本的兼容性;不同安卓设备的兼容性,例如:不同厂家的手机,PAD等;看该软件在不同的软件和硬件下显示是否正常,功能是否正确;

4、安全性测试;

用户信息是否不被泄漏等;

5、不同网络状态下的测试;

wifi和2g,3g不同的网络速度下的功能是否正确;没有网络连接的情况下会怎么样,等等。

手机软件测试的基本流程

手机软件测试的基本流程:

1、测试需求分析;

2、测试计划或者测试用例书写;

3、测试环境搭建,测试数据准备以及测试执行;

4、测试反馈,指测试过程中发现异常,进行缺陷分析定位,然后和相关的开发人员进行对应,最后促使问题得到解决的过程;

5、测试项目结束后的总结分析;

6、回归测试,所有测试结束之后,在版本提交之前必须进行。

怎样监测手机app的各顶端数据

1.1 接口协议测试
在APP客户端开发设计时,一般服务端会提供相应的接口协议文档,接口协议文档的质量,决定了APP的开发进度。此部分的测试,应首先检测接口的完整性, 根据APP需求,检查是否所有数据都有相应的接口返回;其次正确性验证,验证返回的接口信息是否正确,提示代码是否符合要求;第三:可采用Postman 等工具,对设计的测试用例进行测试。
1.2 易用性测试
易用性测试可分为UI原型和高保正图检测和APP测试。UI原型和高保真图可通过评审会议的形式检测;APP易用性是APP开发完成之后,可发布Beta版给公司内部员工或客户,并收集使用者的反馈信息。
1.3 功能测试
APP的开发模型一般为敏捷开发模型,所以测试也应是敏捷测试。测试过程我设计为三个阶段(1)冒烟测试(2)探测性测试->用例(3)回归测试; 首先对每个提交的功能模块快速进行冒烟测试,到可组合成完整功能模块时,进行探测性测试,当所有功能模块完成之后,进行相应的系统测试。若是运营级的产 品,可适当利用Robotium等自动化工具实现功能自动化测试。
1.4 终端适配测试
因为手机操作系统类型,版本较多,生产厂家也五花八门的,所以对手机APP进行终端适配测试决对是个体力活。对这部分的应试,应选择一定的策略,我一般分内部测试、云测试和用户测试三方面进行,具体如下:
1.5 性能测试
手机APP对平台的性能要求较严格,若存在性能问题,可能会出现严重的Crash问题,因此,对APP进行性能检测试很有必要的。进行性能测试时,我们 可分五个阶段进行(1)Monkey压力测试,(2)手机内存泄漏检测,(3)手机CPU使用率检测,(4)手机缓存检测,(5)服务器性能测试。
1.6 网络测试
此部分测试,主要目的是发现各业务模块的业务流量,当添加第三方管理模块时,是否大量增加流量,可通过Sniffer+虚拟机工具进行检测。
1.7 其他测试
  输入参数测试:针对输入的参数进行测试,也可以说是假定接口参数的不正确性进行的测试,确保接口对任意类型的输入都做了相应的处理:输入参数合法,输入参数不合法,输入参数为空,输入参数为null,输入参数超长;
功能测试:接口是否满足了所提供的功能,相当于是正常情况测试,如果一个接口功能复杂时推荐对接口用例进行结构划分,这样子用例具有更好的可读性和维护性。
逻辑测试:逻辑测试严格讲应为单元测试,单元测试应保持内部逻辑的正确性,可单元测试和接口测试界限并不是那么清楚,所以我们也可以从给出的设计文档中考虑内部逻辑错误的分支情况和异常;
异常情况测试:接口实现是否对异常情况都进行了处理,接口输入参数虽然合法,但是在接口实现中,也会出现异常,因为内部的异常不一定是输入的数据造成的,而有可能是其他逻辑造成的,程序需要对任何的异常都进行处理。

Airtest 如何测试手机 APP

Airtest 是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机 APP 和游戏的测试。一旦使用了这个工具进行 APP 的自动化,你就会发现自动化测试原来是如此简单!!

要进行 APP 的自动化测试,首先要将手机连上 airtest。连接手机有几种方法都可以实现:

注意:部分手机还需要打开“允许模拟位置”、“允许未知来源安装应用”,所以如果不成功可以把这两个选项也勾选!

当手机与电脑处在同一个 wifi 下,即可尝试无线连接手机了,其实也就是通过 adb 无线连接手机。但是这种方式受限于网络连接的稳定性,可能会出现连接不够稳定的情况。具体连接操作步骤如下:

1、touch :点击操作 包含的参数:

v:点击的图片或者坐标
times:点击次数,默认 1 次
duration:按住时间,默认 0.01s
right_click: windows 有效 ,手机端无效

2、text :输入文本

包含的参数:
text:输入的文本
enter:完成输入后自动执行 enter 操作,默认为 True
search:完成输入后强行执行 search 操作,默认为 false

3、wait:等待元素出现,如果找到该这个 图片就返回图片中心点的坐标,如果不出现就抛出错误:TargetNotFoundError

包含的参数:
v:点击的图片或者坐标
timeout:等到超时时间,默认 20s
interval:每次寻找的时间间隔,默认 0.5s
intervalfunc:图片没有找到就执行后面的函数,默认为 None

4、sleep :暂停等待

包含的参数:
secs:延迟时间,默认 1.0s

5、assert_exist : 判断图片是否存在,如果存在就返回图片的中心坐标,不存在就 raise AssertionError

包含的参数:
v:图片
msg:描述测试点,它将被记录在报告中
return: 存在就返回图片的中心坐标,不存在就 raise AssertionError

6、assert_not_exist :判断图片是否不存在,如果存在就 raise AssertionError

包含的参数:
v:图片
msg:描述测试点,测试 报告中显示

7、assert_equal : 判断第一个值和第二个值是否相等

包含的参数:
first:第一个对比条目
second:第二个对比条目
msg:描述测试点,在测试报告中显示

8、assert_not_equal : 判断第一个值和第二个值是否不相等

包含的参数:
first:第一个对比条目
second:第二个对比条目
msg:描述测试点,在测试报告中显示

我们现在用以上这写 API 来实现一个具体的需求用例:

需求: 登录柠檬班 app,并判断是否登录成功;

注意:为了确保万无一失,最好在输入文本之前,先点击输入框,确认输入的焦点。

所以先调用 touch API,再调用 text API。点击 text API 就会弹出如下图所示的文本输入框,输入你的手机号码即可。同样的步骤,输入密码;最后,点击“登录”按钮。

用 assert_exists API 来断言是否登录的用户名和头像是正确的,脚本如下:

可以打开测试报告,查看运行结果和断言的图片如下图所示:

APP稳定性测试工具:Monkey

Monkey 是一款 app 的自动化测试工具,monkey 是猴子的意思,所以从原理上说,它的自动化测试就类似猴子一样在软件上乱敲按键,猴子什么都不懂,就爱捣乱。Monkey 原理也是类似,通过向系统发送伪随机的用户事件流( 如按键输入、触摸屏输入、滑动 Trackball、手势输入等操作 ),来对设备上的程序进行测试,检测程序长时间的稳定性,多久的时间会发生异常。

Monkey 工具存在 Android 系统中,使用 Java 语言写成,jar 包在 Android 文件系统中的存放路径是:/system/framework/monkey.jar;Monkey.jar 程序是由一个名为“monkey”的 Shell脚本来启动执行,shell 脚本在 Android 文件系统中的存放路径是:/system/bin/monkey;monkey 需要通过 adb 来唤醒,即通过在 cmd 窗口中执行: adb shell monkey {+命令参数}来进行 Monkey 测试;

在 Monkey 运行的时候,它会生成事件,并把它们发给系统。同时,Monkey 还对测试中的系统进行监测,对下列三种情况进行特殊处理:

(1)如果限定了 Monkey 运行在一个或几个特定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止;

(2)如果应用程序崩溃或接收到任何失控异常,Monkey 将停止并报错;

(3)如果应用程序产生了应用程序不响应 ANR(application not responding)的错误,Monkey 将会停止并报错;按照选定的不同级别的反馈信息,在 Monkey 中还可以看到其执行过程报告和生成的事件。

0、–help : 列出简单的用法

1、允许启动手机里面所有的 App , 随机操作 1000 次

2、-p : 允许启动 App 的包名

启动一个包名的应用,QQ 的包名为: com.tencent.mobileqq

案例:随机操作 手机 QQ 1000 次

案例:随机操作 手机 QQ 和 微信 1000 次

3、-v : 操作日志记录

命令行的每一个-v将增加反馈信息的级别。

4、-s : 伪随机数生成器的seed值

如果用相同的seed值再次运行monkey,将生成相同的事件序列。

5、--throttle : 插入固定延迟

在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被执行。

案例:随机执行 500 个事件,每个事件之间延迟 500 毫秒被执行。

6、--ignore-crashes : 忽略操作是崩溃异常

通常,应用发生崩溃或异常时Monkey会停止运行。如果设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

7、--ignore-timeouts : 忽略超时

通常,应用程序发生任何超时错误(如“Application Not responding”对话框)Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

8、--ignore-security-exceptions : 忽略程序发生许可异常

通常,当程序发生许可错误(例如启动一些需要许可的Activity)导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计数完成。

9、调整触摸事件百分比

触摸事件不单单是按键,它泛指发生在某一位置的一个down-up事件。

10、调整手势事件百分比

11、调整应用启动事件的百分比

如果你希望调整应用启动事件的百分比。

12、调整屏幕旋转事件百分比

Monkey弱点:

Monkey虽然可以根据一个指定的命令脚本发送按键消息,但不支持条件判断,不支持读取待测界面的信息来执行验证操作

展开全文