admin管理员组

文章数量:1604458

appium环境安装包百度网盘地址
链接:https://pan.baidu/s/1pvNb5AzYVzIq5tWjoJJhLg
提取码:ghaj

文章目录

  • monkey、monkeyRuner、Appium、UIAutomator、对比
      • 附录:快捷键
        • 在线数据生成datagenerator
        • cmd命令
        • adb命令
          • 查看端口号占用
            • Linux
            • window
          • web日志
          • andriod日志
          • Log信息级别
          • appium脚本生成步骤
            • 模板脚本
            • uiautomotor辅助定位
          • Monkey
            • 陌匠测试步骤:
          • Monkeyrunner
            • **运行方式**
            • **示例脚本**
            • MonkeyDevice 方法
            • waitForConnection()
            • MonkeyIamge
      • 一、ADB调试桥作用
        • ADB子命令参考
            • 查看日志
            • 向模拟器传送.apk文件并安装
            • 根据包名卸载APP
        • 查看包名和主活动
        • 1.有apk
          • a, aapt dump badging 路径
          • b, 文件夹内找
        • 2.无apk
          • 单开设备
            • a.查看log,Displayed
            • b.命令行
            • linux命令
            • window10
            • 或者
            • 或者(不推荐)
            • 或者(无效)
          • 多开设备
          • 仅获取包名 Monkey
      • 二、Monkey和MonkeyRunner
        • Android自动化测试三种模式
          • 1.基于随机事件
          • 2.基于坐标点
          • 3.基于控件
      • 三、Monkeyrunner3大组件API:
        • **首先导入工具包**
        • 1)MonkeyRunner 工具类,提供工具方法
        • 2)MonkeyDevice 表示某设备对象
        • 3)MonkeyImage
  • Appium安装总体步骤 :
      • 一、JDK安装并设置
      • 二、SDK安装设置
          • SDK重要目录
          • 必装:Tools=>Options
          • 配置环境变量
      • 三、安装ui测试工具
        • AppiumDesktop
          • 启动Inspector
          • 真机报错解决
        • UiAutomatorViewer
          • UI测试工具概述
          • 操作步骤
          • 1.确认安装有adb
          • 2.下载安装模拟器
          • 3.uiautomatorviewer.bat
        • 常见问题解决
          • adb连接夜神模拟器
          • adb server version (31) doesn't match this client (36)
          • 华为打开USB调试
          • adb找不到真机
          • 无法获取真机截图
      • 四、安装Appium-Python-Client
      • 五、Pycharm配置
        • 测试模板代码
        • Original error: Could not find 'adb.exe' in PATH.
        • You are using pip version 9.0.1, however version 18.0 is available.
        • Could not find a version that satisfies the requirement openpyxl (from versions: )
  • 附录:Genymotion模拟器
      • 安装Genymotion模拟器 (实测无效)
        • VirtualBox问题总结
            • 1.Virtualbox启动报cannot access the kernel driver
            • 2.安装VirtualBox回滚
            • 3.Your PC/Device needs to be repaired
        • Genymotion问题总结
            • 1.在线下载虚拟设备失败
            • 2.aapt: command not found

monkey、monkeyRuner、Appium、UIAutomator、对比

Monkey (压力测试)

这个是Android提供的系统工具。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。

测试的对象仅为应用程序包,有一定的局限性。
Monky测试使用的事件流数据流是随机的,不能进行自定义。
可对MonkeyTest的对象,事件数量,类型,频率等进行设置。 

monkeyRuner (功能测试,用户接受度测试,黑盒测试),提供按键或触摸事件的输入数值,通过截屏对比是否是正常的运行。

UIAutomator - 官方 (黑盒测试,功能测试) ,可以测试需要在不同app之间切换的情况。找到UI控件然后进行操作。 UiAutomator对外提供了UiAutomatorTestCase、 UiDevice、UiSelector、UiObject、UiCollection、 UiScrollable等重要的类

Appium是基于UIAutomator框架实现的一个开源、跨平台的测试框架。Appium测试 (功能测试,用户接受度测试,黑盒测试),findElements**(**)方法获取到UI元素,获取信息为主。没有uiautomator的执行速度快。

附录:快捷键

在线数据生成datagenerator

需要全英文状态下操作

https://www.onlinedatagenerator/

cmd命令

转到指定盘:D:

回退到根目录:cd\

adb命令

结束adb命令 :ctrl +C

退出adb shell:exit

退出monkeyrunner:ctrl+D

查看端口号占用
Linux

su
netstat -anlp | grep “631”
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 6184/cupsd

-a列出所有端口;-n使用数字,代替主机、端口和用户名显示;-l只显示监听端口;-p显示 PID 和进程名称;kill -9 6184 杀死进程

window

netstat -ano | findstr “4723”

TCP 0.0.0.0:4723 0.0.0.0:0 LISTENING 11128

监听到pid 11128–ctrl+alt+delete任务管理器–详细信息,找到PID11128,右键结束任务,可以关闭已占用端口号

web日志

1.作用:取代print()方法,并且可以在日志文件中回溯。

2.日志类需要配置或者注意:

2.1.项目路径和日志文件路径

这里我配置了项目的路径base_url,并且准备新建一个log文件夹,用来放置log日志文件。

为了不用再手动去创建log文件夹和log日志文件,这里我进行了判断文件夹和日志文件是否存在,如果不存在则创建日志文件夹和文件。
2.2默认level值

默认入参中有默认:clevel、Flevel,如果有等级需要可以进行更改

clevel:cmd输出日志界面的日志等级

Flevel:日志文件的日志等级

在创建logger时,也对总的日志等级设置,这里我设置为了debug最低等级。

3.log类代码

# -*-coding:utf-8 -*-
import os
import logging
 
# 定义了blog_ui项目的绝对路径
base_url = "E:/111test/blog_ui/"
 
class Logger:
    def __init__(self, path=base_url + "/log/autotest.log", clevel=logging.DEBUG, Flevel=logging.INFO):
        # 判断log文件夹是否存在,不存在的话创建文件夹以及日志文件
        project_dir = os.listdir(base_url)
        dir_name = 'log'  # log文件夹
        if dir_name not in project_dir:
            create_path = base_url + '/' + dir_name
            os.makedirs(create_path)
            file = open(create_path + '/autotest.log', 'w', encoding='gb18030')
            file.close()
        # 创建logger
        self.logger = logging.getLogger(path)
        self.logger.setLevel(logging.DEBUG)
        # 防止创建多个logger对象
        if not self.logger.handlers:
            # 设置日志格式
            fmt = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')
            # 设置CMD日志
            sh = logging.StreamHandler()
            sh.setFormatter(fmt)
            sh.setLevel(clevel)
            # 设置文件日志
            fh = logging.FileHandler(path)
            fh.setFormatter(fmt)
            fh.setLevel(Flevel)
            self.logger.addHandler(sh)
            self.logger.addHandler(fh)
 
    def debug(self, message):
        self.logger.debug(message)
 
    def info(self, message):
        self.logger.info(message)
 
    def war(self, message):
        self.logger.warn(message)
 
    def error(self, message):
        self.logger.error(message)
 
    def cri(self, message):
        self.logger.critical(message)

4.日志类的调用 demo.py

# 导入自定义的log类
from common.log import Logger

# 实例化一个log对象
test_log = Logger()

# 调用log类的方法:
test_log.war("警告信息")
test_log.info("普通信息")
test_log.debug("详细信息")
test_log.error("错误信息")
test_log.cri("严重错误")

接下来加入日志后,就需要将之前的print方法逐个替换为log方法,并且在关键位置,例如:网址、元素定位地址、输入值、断言结果等信息,使用log日志来打印。

andriod日志

1.清理之前的日志缓存,从当前开始显示

adb logcat -c && adb logcat

2.日志加时间

adb logcat time //显示日期,调用时间,优先级/标记,PID

3.logcat命令

adb logcat //显示全部日志
adb logcat > D:\test.log //将日志保存到文件test.log
adb logcat 标记1:I 标记2:D *:S //根据tag标记和级别过滤日志输出
adb logcat *:W //显示所有优先级大于等于“warning”的日志
adb logcat -s 标记1 //显示标记1的日志信息

grep匹配

adb logcat | grep “^E.MyApp”
adb logcat | grep “…MyApp|…MyActivity”
adb logcat | grep -E “…MyApp|…MyActivity” #使用 egrep 无须转义符

Log信息级别

V — 明细 verbose(最低优先级)
D — 调试 debug
I — 信息 info
W — 警告 warn
E — 错误 error
F — 严重错误 fatal
S — 无记载 silent

从上而下级别逐次增加

appium脚本生成步骤

第一步:打开app
第二步:cmd命令行输入,获取包名和主活动,设备端口号

adb shell dumpsys window | findstr mCurrentFocus
mCurrentFocus=Window{3bc2728b u0 com.example.tarena.myappdemo2/com.example.tarena.myappdemo2.MainActivity2}

adb devices
List of devices attached
127.0.0.1:62001 device

第三步:

1.右键–以管理员

本文标签: 测试手机