精华内容
下载资源
问答
  • 安卓自动化测试脚本

    2019-10-16 13:15:48
    方案一:monkey脚本 参考资料:https://blog.csdn.net/lzm198707/article/details/71195270 https://www.cnblogs.com/yueya/p/5333497.html 优点:能生成monkey日志,可以使用monkey分析工具分析 缺点:脚本编写...

    使用ADB连接管理手机
    方案一:monkey脚本

    参考资料:https://blog.csdn.net/lzm198707/article/details/71195270

                  https://www.cnblogs.com/yueya/p/5333497.html
    

    优点:能生成monkey日志,可以使用monkey分析工具分析

    缺点:脚本编写繁琐,如点击事件需要写2条命令,每运行一次脚本必须关掉app,不然会多次打开app

    #mokey脚本头

    type= user
    count= 10
    speed= 1.0
    start data >>
    #Open Activity

    #启动APP

    LaunchActivity(com.rongyi.electshelf,com.app.electshelf.ui.MainActivity)

    #设置等待时间,单位毫秒
    userWait(8000)
    #点击事件DispatchPointer ( downTime , eventTime , action , x , y , pressure , size , metaState , xPrecision , #yPrecision , device , edgeFlags)
    #action :事件是按下还是抬起,0 表示按下,1 表示抬起。
    #x、y:表示当前事件触发的X轴和Y轴的坐标。
    #点击第一个分类,进入该分类
    DispatchPointer (0,0,0,185,92,0,0,0,0,0,0,0)
    DispatchPointer (0,0,1,185,92,0,0,0,0,0,0,0)
    userWait(500)
    #点击商品,进入商品详情
    DispatchPointer (0,0,0,150,450,0,0,0,0,0,0,0)
    DispatchPointer (0,0,1,150,450,0,0,0,0,0,0,0)
    userWait(500)
    #在商品详情页面点击返回
    DispatchPointer (0,0,0,972,879,0,0,0,0,0,0,0)
    DispatchPointer (0,0,1,972,526,0,0,0,0,0,0,0)
    userWait(500)
    #返回首页
    DispatchPointer (0,0,0,1000,526,0,0,0,0,0,0,0)
    DispatchPointer (0,0,1,1000,526,0,0,0,0,0,0,0)
    userWait(500)
    #在首页滑动商品列表
    #Drag(xStart, yStart, xEnd, yEnd, stepCount):用于模拟一个拖拽操作。
    Drag(878,1420,100,1420,1)

    文件保存为dzhj.mks文件(主要编码格式unix编码)

    把文件push到手机

    adb push d:/dzhj.mks /sdcard

    进入adb shell

    执行monkey -f /sdcard/dzzhj.kms 4 -v -v >long.txt

    注:4 为脚本执行次数

    方案二:

    sh脚本方式

    参考资料:https://blog.csdn.net/lzm198707/article/details/71195270

    利用adb命令执行点击,滑动等事件

    优点:脚本编写简单

    缺点:没有monkey日志,需要分析logcat日志(新的分析脚本已经编写好,可支持mokey日志和logcat日志分析,待测试。。)

    #!/bin/bash
    NOW_DATE_TIME=$(date “+%Y-%m-%d %H:%M:%S”);
    echo $NOW_DATE_TIME 开系统首页;
    input keyevent 3;
    sleep 0.5;
    echo $NOW_DATE_TIME 打开电子货架APP;
    am start com.app.electshelf;
    sleep 0.5;
    i=1;
    echo $NOW_DATE_TIME 设置脚本执行册数(在while中设置为5);
    while [[ $i -le 5 ]];do
    echo $NOW_DATE_TIME 点击首页第一个分类;
    input tap 180 689;
    sleep 0.5;
    echo $NOW_DATE_TIME 点击分类下面第一个商品,进入商品详情页;
    input tap 190 1046;
    sleep 0.5;
    echo $NOW_DATE_TIME 在商品详情页点击返回按钮,返回分类商品列表;
    input tap 1000 526;
    sleep 0.5;
    echo $NOW_DATE_TIME 在商品分类列表滑动商品;
    input swipe 450 1500 450 820
    sleep 0.5;
    echo $NOW_DATE_TIME 在分类商品列表点击返回进入首页;
    input tap 1000 526;
    sleep 0.5;
    echo $NOW_DATE_TIME 在首页滑动商品;
    input swipe 878 1420 100 1420;
    input swipe 100 1420 878 1420;
    sleep 0.5;
    echo $NOW_DATE_TIME 进入下一次循环;
    ((i++));
    done;

    文件另存为dzhj.sh文件(注意编码格式unix)

    注:其中脚本中while中的5为脚本执行次数(主要流程)

    把文件push到手机

    执行sh dzhj.sh >log.txt

    注意:文件编码格式很重要,最好在linun系统中编写,已经踩坑!!也可以使用root权限进入安卓系统执行脚本。

    展开全文
  • 本文主要向大家介绍了Python语言之Ubuntu+Python+UIAutomator写Android自动化测试脚本,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。序言首先介绍一下python和uiautomator1、UIAutomator是Android...

    本文主要向大家介绍了Python语言之Ubuntu+Python+UIAutomator写Android自动化测试脚本,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。

    序言首先介绍一下python和uiautomator1、UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器,使用UIAutomator基本可以满足常规测试需求。2、Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,通过Python与uiautomator结合可以写出你想的自动化测试环境配置1、首先ubuntu一般都自带python,这里笔者用的ubuntu自带的python2.7版本。2、然后进入pypi.python.org/pypi网站,利用站内搜索下载uiautomator支持模块3、下载完成后,进入uiautomator文件夹,执行完成安装python setup.py install4、检测环境是否配置好,直接进入pythonandroid@ubuntu:~$ python

    Python 2.7.6 (default, Mar 22 2014, 22:59:56)

    [GCC 4.8.2] on linux2

    Type "help", "copyright", "credits" or "license" for more information.>>> import uiautomator>>>没有报错就代表环境配置好了。5、uiautomator安装好后,还可以在终端直接启动uiautomatorviewer,通过该工具可以分析出UI控件的id,text,focusable等等各种属性,甚至布局上的层次关系。下面是网上下载的一个截图20151023205142537.png模拟拨打电话关于uiautomator的API本文不做详述,读者可以直接参考# 快学UiAutomator UiDevice API 详解或者另行搜索,语法很简单下面是拨打电话的过程GIF.gif直接附上call.py的代码#!/usr/bin/env python# -*- coding: utf-8 -*-########################################################################################################## 传入:手机id(adb devices显示的手机id) # e.g:python call.py 4650150b## V1.0# 2018/03/02# yink.liu########################################################################################################import sys

    import time

    from uiautomator import Deviceclass Call(object):

    def __init__(self): # 初始化拨号键盘坐标,根据手机不同需要修改,顺序为0123456789*#

    self.cellphone_key = [ (360, 1140),

    (160, 780), (360, 780), (560, 780),

    (160, 900), (360, 900), (560, 900),

    (160, 1020),(360, 1020), (560, 1020),

    (160, 1140), (560, 1140),] # 功能键 依次为,拨号、挂断

    self.function_key = [(360, 1275),(360, 1230)] # 运营商电话号码

    self.operator = '10010'

    # 处理传入的参数

    self.gpus = sys.argv[1] self.gpus = (self.gpus.split(',')) self.cellphone_id = self.gpus[0] # 指定操作的手机

    self.d=Device(self.cellphone_id)

    print '手机id:',self.cellphone_id def call(self): self.send_operator_call()

    # 拨打运营商电话

    def send_operator_call(self): # 进入拨号

    self.d.screen.on() self.d.press.home() self.d(text="Phone").click()

    time.sleep(2) # 拨打运营商固定号码

    for num in self.operator:

    print num self.choice_cellphone_click_key(num) # 拨号

    self.choice_function_click_key('call')

    time.sleep(3) # 挂断

    self.choice_function_click_key('hang_up') def choice_function_click_key(self, key): if key == 'call':

    self.d.click(self.function_key[0][0],self.function_key[0][1])

    elif key == 'hang_up': self.d.click(self.function_key[1][0],self.function_key[1][1])

    time.sleep(0.15) def choice_cellphone_click_key(self, key): if key == '*': self.d.click(self.cellphone_key[10][0],self.cellphone_key[10][1])

    elif key == '#': self.d.click(self.cellphone_key[11][0],self.cellphone_key[11][1]) else:

    self.d.click(self.cellphone_key[int(key)][0],self.cellphone_key[int(key)][1])

    time.sleep(0.15)

    if __name__ == "__main__":

    c = Call()

    c.call()结束语通过UIAutomator写一些测试用例,可避免需要大量的重复测试工作。

    本文由职坐标整理并发布,希望对同学们学习Python有所帮助,更多内容请关注职坐标编程语言Python频道!

    展开全文
  • Android 自动化测试脚本初探

    千次阅读 2018-04-30 20:34:44
    烦恼之余,想想为什么不使用自动化脚本来解脱轮回呢.​ 自动化工具网上已经很多,已经有无数个轮子,但使用起来有些麻烦.我想要测试的只是最简单的模拟录入.不想那么的去调查和学习自动化工具等比较重的东西.就想到了...

    最近做一个仓库APP的项目,其中一些测试的体力活,数据造起来非常麻烦,需要造条码,需要疯狂扫描测试效率,以及永远都无法避免的回归测试.烦恼之余,想想为什么不使用自动化脚本来解脱轮回呢.

    ​ 自动化工具网上已经很多,已经有无数个轮子,但使用起来有些麻烦.我想要测试的只是最简单的模拟录入.不想那么的去调查和学习自动化工具等比较重的东西.就想到了通过脚本模拟一些录入.最初的困难来自仓库收货扫描的时候需要采集SN,我造了400个SN条码,扫了100次,已经开始扫的头晕脑胀了,这些简单重复的工作在我眼中不应该由人去做的,于是开始想办法如何自动化模拟输入;

    ​ 由于知识狭隘,最初使用的是 adb shell命令,这个命令因为开发android的时候经常用到,所以第一个想到了它,模拟400SN,扫描录入并确定上架.本来枯燥的输入工作,瞬间变的简单,命令行执行起脚本.去趟厕所回来,结果执行的差不多了.再次回归测试,只需要改几个数据即可.是不是很方便.

    
        
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
        
    # 订单 9504 sku 10000001 循环400次
    intCount=900100
    stringDefalut='286172018012'
    adb shell input text 000000009504
    adb shell input keyevent 66
    sleep 1
    for ((i=1;i<=400;i++))
    do
    adb shell input text ${stringDefalut}$[${intCount}+${i}]
    # 66 回车
    adb shell input keyevent 66
    sleep 1
    # 最下面的button
    adb shell input tap 240 750
    #seleep 1
    done

    ​ 脚本发给了同事,发现shell命令在windows平台下执行效果不好.不兼容.花几分钟时间瞬间改成Python版本,兼容各种平台了;

    
        
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
        
    import time
    import os
    def execute(cmd):
    os.system(cmd)
    def text(content):
    os.system( 'adb shell input text ' + content)
    def enter():
    os.system( 'adb shell input keyevent 66')
    time.sleep( 1)
    # 订单 9504 sku 10000001 循环400次
    intCount = 900100
    stringDefault = '286172018012'
    # inputCmd = 'adb shell input text 000000009504'
    # text('000000009504')
    # enter()
    for i in range( 50, 51):
    intCount += i
    text(stringDefault + str(intCount))
    enter()
    execute( 'adb shell input tap 240 750')

    ​ 当然以上的脚本只是最简单的脚本,模拟录入,没有和UI交互.如果想更深入的自动化测试,这个时候就需要使用各种自动化测试工具了.

    ​ adb shell 和 python真是个好东西,万能胶水语言python,我要好好学学了;

    原文链接:

    http://zhangzeshuai.com/2018/01/31/shellautotestandroid/

    展开全文
  • 如何测试Android APP的耗电量?,文中用adb的方式,bat脚本可以半自动化测试,实例参考,适用于新手入门
  • 1.脚本来执行测试的优缺点写起来容易基本上可以实现90%以上的功能性覆盖测试结果需要通过自己观察整个过程和日志文件来得出的有些外部的动作,脚本是无法实现的,比如需要录入指纹只适配特定尺寸的设备没法对内容...

    1.脚本来执行测试的优缺点

    写起来容易

    基本上可以实现90%以上的功能性覆盖

    测试结果需要通过自己观察整个过程和日志文件来得出的

    有些外部的动作,脚本是无法实现的,比如需要录入指纹

    只适配特定尺寸的设备

    没法对内容进行校验

    执行命令间隔时间要把控好

    2.实现原理

    Espresso比较起来,其实原理是差不多的,都是模拟输入事件来操作程序;脚本是用adb命令来实现点击哪一个位置,位置需要自己测量,而Espresso的话就是通过写代码来获取控件的位置来实现的,还可以添加一些对控件内容的校验;所以脚本不需要知道程序的代码,只需要看见界面,自己拿控件位置,就可以写出测试脚本,而Espresso需要知道这个界面的具体组成部分,拿到每个控件的ID,写代码获取到控件,也自然可以对控件本身做一些校验

    3.实现难度

    脚本其实就只需要反复执行那么几个adb命令,主要工作在于测量控件位置和命令的执行顺序,还是比较简单;Espresso其实也差不多,也比较简单,但是写测试代码的人员肯定要能看懂Android代码,根据代码和流程写测试代码

    4.屏幕适配

    脚本可能还需要根据界面尺寸来做调整,其实就是多种尺寸需要写多套脚本;Espresso肯定是不用的

    5.测试过程

    测试过程就是模拟输入事件,所以哪里出了问题,自己观察整个过程是最好的,有错误的话,也可以通过输出错误日志到文件;其实感觉和Espresso也差不多

    6.简单的运用

    比如在mac上,写一个解锁的shell脚本,点亮程序解锁;当然解锁密码肯定要知道,或者图案密码,人脸、虹膜、指纹肯定是不行的;

    #!/bin/bash

    adb shell svc power stayon true

    sleep 0.2

    adb shell input keyevent 82

    sleep 0.2

    adb shell input text 4444 && adb shell input keyevent 66

    sleep 0.6

    执行脚本

    sh test.sh

    //windows 下将后缀改为.bat

    //cmd中

    start test.bat

    常用命令

    打电话

    adb shell am start -a android.intent.action.CALL -d tel:10086

    打开微信

    adb shell am start com.tencent.mm/com.tencent.mm.ui.LauncherUI

    打开支付宝

    adb shell am start com.eg.android.AlipayGphone/.AlipayLogin

    杀死支付宝

    adb shell am force-stop com.eg.android.AlipayGphone

    关闭QQ

    adb shell am force-stop com.tencent.mobileqq

    点击事件

    adb shell input tap 500 500

    home键

    adb shell input keyevent 3

    返回键

    adb shell input keyevent 4

    截图(保存到SDCard)

    adb shell /system/bin/screencap -p /sdcard/screenshot.png

    从SD卡导出到电脑

    adb pull /sdcard/screenshot.png /Users/dhht/Desktop

    录屏

    adb shell screenrecord /sdcard/test.mp4

    adb pull /sdcard/test.mp4 /Users/dhht/Desktop/test.mp4

    亮屏

    adb shell input keyevent 26

    上下滑动

    adb shell input swipe 700 2000 700 1000

    左右滑动

    adb shell input swipe 100 1000 1000 1000

    解锁

    adb shell input keyevent 82

    锁定

    adb shell input keyevent 26

    输入密码,并回车:

    adb shell input text 123456 && adb shell input keyevent 66

    屏幕长亮

    adb shell svc power stayon true [true|false|usb|ac|wireless]

    wifi设置界面

    adb shell am start -a android.intent.action.MAIN -n com.android.settings/.wifi.WifiSettings

    adb shell svc wifi enable //打开wifi

    adb shell svc wifi disable //关闭wifi

    蓝牙

    adb shell service call bluetooth_manager 6 //打开蓝牙

    adb shell service call bluetooth_manager 9 //关闭蓝牙

    关机重启

    adb reboot //重启

    adb shell reboot //重启

    adb shell reboot -p //关机

    打开网页

    adb shell am start -a android.intent.action.VIEW -d http://google.com

    卸载应用

    adb uninstall com.example.appname

    屏幕相关

    wm density

    wm size

    wm density 240

    定位当前页面位置

    adb shell dumpsys activity top

    获取屏幕分辨率

    adb shell wm size

    删除屏幕锁

    adb shell rm /data/system/access_control.key

    adb shell rm /data/system/password.key

    adb shell rm /data/sysem/gesture.key

    本文地址:https://blog.csdn.net/xuefu_78/article/details/112575047

    展开全文
  • 第一条Android自动化测试脚本

    千次阅读 2019-06-13 11:12:59
    Android SDK(添加android、adb等到环境变量) Java 环境 待测APK(BBX司机端) 真机or夜神模拟器or雷电模拟器等等(本文使用夜神模拟器) 二、打开工具,配置好环境 添加adb环境变量 打开夜神模拟器--开发者...
  • 使用脚本来执行测试的特点:●书写方便●基本上可以实现90%以上的功能性覆盖●测试结果需要通过自己观察整个过程和日志文件来得出的●有些外部的动作,脚本是无法实现的,比如录入指纹●只适配特定尺寸的设备●没法...
  • 1.配置JDK1.7 2.下载eclipse,不需安装。...6.打开eclipse:1.file-new-project-android Application projects-next-填写name-默认next-确认 7.创建好android项目,个文件夹得意义 8.配置adb:
  • 序言首先介绍一下python和uiautomator1、UIAutomator是Android官方推出的安卓应用界面自动化测试工具,是最理想的针对APK进行自动化功能回归测试的利器,使用UIAutomator基本可以满足常规测试需求。2、Python是一种...
  • 以前因为手机root权限问题,一直没有实现脚本自动化测试,最近看了一些博客,进行了一些实验,发现自己根据adb命令来写一下脚本来执行自动化测试也是可行的,主要是为了解放双手,顺便测试一下程序的稳定性。...
  • 最近碰到一个需求:就是需要反复测试一个简单的...刚开始测试这个应用就类似自己玩一下,后面发现老改动,老自己点,这 …… 一点都不符合程序员的准则,能自动化的就不要自己动手。 想到命令行中也能通过输入命令...
  • 每隔1秒重复操作某一按钮: #!/system/bin/sh ...Android自动化测试shell脚本(飞车Asphalt5) http://blog.csdn.net/lhzhang1985/article/details/6580595 Android adb shell 获得点击屏幕的位置坐标  ...
  • 一、Uiautomator2 模块...安装之后,我们在电脑上连接一台要测试Android 手机,然后执行 python -m uiautomator2 init 该命令是用于初始我们的测试手机,该过程将安装包含 http rpc 服务的 apk 到手机主要有:atx
  • 脚本来执行测试的优缺点2.实现原理3.实现难度4.屏幕适配5.测试过程6.简单的运用 1.脚本来执行测试的优缺点 写起来容易 基本上可以实现90%以上的功能性覆盖 测试结果需要通过自己观察整个过程和日志文件来得出的 ...
  • Android 自动化测试脚本编写

    千次阅读 2015-07-27 16:49:06
    一.新建一个py后缀的文件,如***.py ...from com.android.monkeyrunner importMonkeyRunner,MonkeyDevice,MonkeyImage 三.等待设备连接 device=MonkeyRunner.waitForConnection() 四.monkeyrunner常用操作 1. 事件
  • 基于python的android自动化测试脚本

    千次阅读 2018-11-16 10:00:40
    首先我们需要明确下需求目标,我们的需求很简单,就是使用python脚本完成需要我们自己完成的很多 重复的操作,即便中间存在一定的重复操作之外,但是整体操作是完全重复和符合规则的。 设计思路 我的设计思路很...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,782
精华内容 15,512
关键字:

安卓自动化测试脚本