手机测试相关

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

文章目录

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.com/

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.右键–以管理员

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值