使用到的工具
模拟器
android studio
总体来说好用,有多个版本可选细分好,可以指定任意的android版本.
坏处是有自己的网关无法使用和主机一致的网段
genymotion
好用,创建的手机性能高,没有上面的网段问题,但是需要注册,有账号就可以爽用.有付费内容
App自动化工具
appium inspector
用于定位app的Element的AttributeId方便直接在代码中写入对应的xpath内容
Appium Inspector github linux release download
使用Inspector时需要填入基础的信息确保能正确的进入App界面
以上的信息作为基础参考
{
"platformName": "Android",
"appium:automationName": "UIAutomator2",
"appium:deviceName": "emulator-5554",
"noReset": true,
"ignoreHiddenApiPolicyError": true,
"autoGrantPermissions": true
}
在使用appium inspector之前先运行appium
疑难问题
- 报错怪问题
以上是基础的进入过程,如果要是报错多考虑一下是不是python版本安装错误
appium
appium是一个服务端,需要编写脚本来对接appium来进行对手机的自动化操作.而这些自动化的操作需要借助adb命令来运行,所以在运行的时候需要指定对应的android sdk
的路径(不然会报错)
# 下面的命令是安装对应的python
pip install appium-python-client
# 如果要会报错一些不明的所以的报错,那么可以尝试切换版本
pip install appium-python-client==3.1.0
# 如果不知道有哪些版本可以尝试使用这个命令来查看有哪些版本
pip install appium-python-client==
因为是在linux上使用 所以安装的思路也是在linux上
npm i --location=global appium
以上如果要提示你需要安装在/usr目录下 则需要使用sudo命令
adb
# 查看所有连接的设备,这里的设备可以是开启了调试模式的手机,或者是在本机上的虚拟机
adb devices
# 安装app
adb -s <如果有多个devices 那么在这里需要指定设备id> install <apk文件>
# 拉取和推送文件
adb -s <设备id> pull <文件名称> <路径>
adb -s <设备id> push <文件名称> <路径>
# 查看日志
adb logcat
# 对日志进行过滤 只显示error级别的日志
adb logcat *:E
# 过滤特定的标签 下面的日志级别的等级是V(Verbose)、W(Warrin)、E(Error)
adb logcat <标签>:<日志级别> *:S
# 使用正则表达式过滤日志
adb logcat -e '<正则>'
# 将日志重定向到文件中
adb logcat -d > logcat.txt
# 清除当前设备的所有日志
adb logcat -c
上面的所有的-s命令在设备只有哦一个的时候都是可以省略的.
(为什么要和使用两个命令来传递文件,像是scp那样的表明in和out的方式不是更好用?)
日志级别,日志级别通常是由程序编写的
log.*
方法输出的内容,和系统生成的日志,通常会包含一些可能的调用的错误,或者输出一些程序的崩溃信息
级别(标签) | 解释 |
---|---|
Verbose(V) | 详细日志 通常应用于开发调试,会输出非常多的调试信息 |
Debug(D) | 调试日志,在调试应用的时候输出的信息,通常不在生产环境中使用 |
Info(I) | 信息日志,用于输出一些提示消息,了解当前的系统的运行状态 |
Warning(W) | 警告信息,用于提示一些可能的潜在问题 |
Error(E) | 错误信息,表示影响了程序的运行 |
Assert(A) | 断言失败,表示一些不应该发生的错误发生了 |
monkey测试
monkey测试例子
adb shell monkey -p com.insthub.ecmobile --pct-touch 40 --pct-motion 25 --pct-appswitch 20 --pct-rotation 5 -s 12348 --ignore-crashes r --ignore-timeouts -v -v -v 100000
对于上面的每一个命令的解释为
-p com.insthub.ecmobile
指定被测试的包
--pct-touch 40
设置触摸事件为40%
--pct-motion 25
设置25%的事件为滑动事件
--pct-appswitch 25
设置这个参数20%的事件为系统界面导航事件
--pct-rotation 5
表示5%的是和旋转事件
-s 12348
设置这个事件流的随机数种子
随机数种子产生的的随即事件流是相同的
--ignore-crashes
当应用崩溃的或者发生任何严重错误时,让monkey测试继续进行
--ignore-timeouts
当应用无响应的时候,让测试继续
-v -v -v
这个参数设定了日志的详细程度,-v -v -v 表示日志最详细
100000
产生事件的次数
adb shell monkey -p <包> -v -v -v -s <随机数种子> <对包进行操作多少次> 2>error.log 1>monkeys.log
上面
2>error.log
表示将错误重定向输出到指定的文件中
1>monkeys.og
表示将标准输出,输出到指定的文件当中
标签:appium,logcat,记录,--,App,pct,adb,测试工具,日志 From: https://www.cnblogs.com/index72/p/17899398.html上面的重点是输出标准错误,是必须要要使用与制定的管道进行输出.