一款“燃到爆”的安卓UI自动化遍历测试工具

介绍:4399AT是一款基于APPIUM框架改造和集于算法遍历,图像识别技术的自动化测试工具

工具:适用于Android App UI自动化

电脑系统:win10 64位

工具好处:解决不同手机安装提示和APP操作提示框,兼容不容手机控件,adb不稳定,PO模式等问题,具体可关注微信公众号“测试一般不一般” 进行相关资料查看。

以下是关于该工具的使用说明,详情API可查看api文档

环境检查

    点击该按钮,进行jdk-node-sdk-appium环境检查,当环境中缺少jdk、node或者sdk时直接在控制台提示请安装jdk,node或者sdk,其中要求jdk版本1.8以上,node版本9以上,adb版本1.0.39以上;环境齐全的情况下检查是否配置好环境变量。(注:这三项环境都需要自己安装配置,不提供自动安装的机制)
    在这三项都安装且配置正常的前提下,对appium环境进行检查

1.安装最新版且配置正确的设备可正常使用该程序

2.检测到安装的appium不是最新版,则对appium进行自动升级,升级过程大
概20多分钟,具体看网速,安装完毕后对环境进行检查,显示一切环境为正常

3.检测到没有安装appium,进行自动安装,安装完毕后对环境进行检查,显示一切环境为正常

   环境检查正常之后,对手机设备的连接进行检查,当一切检查均为正常时,开始按钮才可以点击
   支持多次检查环境

api文档

点击该按钮跳转至api介绍文档,这份文档对脚本会使用到的api进行详细介绍

公用脚本
上传公用脚本,用于处理APP的引导、弹窗和登陆操作;

只可上传json格式的文档,上传其他格式文档报错提醒,如下图所示,上传apk文档时报错提醒“脚本需要的是json格式的文件,请检查...”

上传的文件路径中不可包含中文,如选择的文件路径包含中文则报错提醒,如下图所示,“选择的路径,不能为中文,请检查!”

测试脚本

上传测试用例脚本

只可上传json格式的文档,上传其他格式文档报错提醒,报错信息同公用脚本

测试apk

上传目标应用apk包

只可上传apk格式的文档,上传其他格式文档报错提醒,如下图所示

测试设备

该处不填的情况,默认执行连接到电脑上的所有设备
只能填写设备id,设备id可通过指令"adb devices"取得

目前只支持填写一个id;即只有运行一台和运行所有设备这两种选择

程序会在执行前检查设备的连接状态,填入多个设备id时,会将填入的信息都当成一个设备id去检查,因为会报错“填入的设备号不在线,请检查设备连接!”

辅助功能


勾选该选项,表示目标应用的安装配置全部由本地的安装配置来执行,不从服务端获取设备信息;控制台信息如下:

当安装配置文档中缺少目标设备的配置时,可以从服务端拉取配置信息的情况会从服务端进行安装引导,不能拉取的情况下则无法成功进行安装配置引导,控制台信息如下:


不配置该项的情况,安装配置从服务端自动拉取

只可上传json格式的文档,上传其他格式文档报错提醒,报错信息同公用脚本

登陆

勾选该选项,展示账号密码输入框,填写规则为:账号和密码之间使用英文冒号间隔开,每行填写一个,账号数无限制。勾选了登陆选项必须填写账号密码且账号数与设备数需对应,否则运行时报错

覆盖安装

勾选覆盖安装选项,展示公用脚本、测试脚本、测试apk和是否登录的选项

脚本与apk上传规则如上,其中两个apk文件必须包名一致且旧包的版本要低于新包,否则报错

登陆涉及到的状态如下:
只执行新包的登陆,则不勾选该选项
只执行旧包的登陆,即上述的登陆不勾选,只勾选该处的登陆选项,此时勾选该选项需展示账号密码输入框,输入规则同上,此时登陆输入框中的账号密码供旧包的登陆使用

新包与旧包都要执行登陆操作,使用相同的账号密码,勾选上述的登陆且展示账号密码输入框,勾选该处的登陆选项但不展示账号密码输入框

过度绘制

勾选该选项需在开发者模式中开启过度绘制功能
具体使用方法见api介绍文档

开始-结束按钮

开始:点击开始,要对apk、脚本、设备是否有连接进行判断,对于用户名简单过滤,判断账号数与设备数是否一致,点击开始后生成以Test_report+时间的报告,其中对覆盖apk要判断包名是否一致、版本是否小于当前测试的apk版本,所有的判断都通过后才开始执行
结束:点击了开始按钮之后,开始按钮灰化,结束按钮为可点击态,在没有执行正常结束过程中,点击结束按钮,无法正确生成测试报告,即手动中断程序执行,报告请点击是无法点击的。点击结束,所有进程结束,确定结束后,开始按钮才重新为可点击状态

报告

该项只有在正常结束运行后才可以点击,其他任何形式的结束执行都不可点击


点击该按钮跳转至本地报告,报告内容请自行确认

控制台

以时间顺序展示log
注:程序运行过程中如出现中文乱码的情况,需配置以下环境变量,重启电脑后可正常使用。变量名:JAVA_TOOL_OPTIONS,变量值:-Dfile.encoding=UTF-8

配置该项环境变量可能会影响其他控制台的中文乱码情况,如出现需要自行删除该环境配置,需要的时候再自行添加

报告文档

在libs文件夹下,存储每一次运行的报告文档,报告文件夹命名方式为TestReport+运行时间

文件夹以设备id直接命名,运行多台设备时,每台设备单独文件夹存放。


从上之下分别为:
CaseImage文件夹:目标apk用例截图,文件夹内按每个用例一个文件夹区分用例,文件夹以用例名称命名
old文件夹:覆盖安装旧包运行用例截图,文件夹内按每个用例一个文件夹区分用例,文件夹以用例名称命名
screenshot文件夹:用例截图外的设备其他所有截图
ActivityInfo.txt:目标应用全部activity页面信息
AllLog.txt:Android logcat中的被测应用日志
CaseLog.txt:用例的执行情况,成功几条失败几条之类的信息
ErrorLog.txt:Android logcat中的被测应用的错误日志
index.html:打开该文件相当于点击报告中设备概况-查看详情,打开的是设备的详情报告
OtherLog.txt:与控制台输出的信息一致,存储执行的每一个步骤和执行情况,日志按时间顺序打印

安装包及测试脚本Demo下载地址如下:

https://pan.baidu.com/s/1IaE0bbcFcEVS-ozlqrYwcw
提取码:zxf7

以上是关于4399AT GUI界面版的使用说明。如有疑问可关注

微信公众号“测试一般不一般”进行交流~

原文地址:http://blog.51cto.com/2692784/2348429

时间: 2024-11-05 22:58:19

一款“燃到爆”的安卓UI自动化遍历测试工具的相关文章

[原创] Web UI自动化应用测试框架实践 - 概览

之前为我们部门做的一个UI框架.不能纯粹解读为框架,主要是做了一些简单的分层设计,以解决稳定性.降低复杂性.提升可维护性以及快速构建测试用例等实际问题. 主要部分:1. 测试数据.主要提供测试类库需要用到的数据,前端做到数据驱动.2. 测试服务.测试服务类主要提供一组API,达到重用的目的.3. 页面封装.对具体的Web页面进行抽象和封装,提供统一的接口,降低逻辑的编写门槛,组件重用以及更好的可维护和可读性. 4. Selenium Web Driver.底层用的WebDriver.

7款Android开发者常用的Android UI组件

7款Android开发者常用的Android UI组件 原文  http://news.cnblogs.com/n/506366/ Android 开发是目前最热门的移动开发技术之一,随着开发者的不断努力和 Android 社区的进步,Android 开发技术已经日趋成熟,当然,在 Android 开源社区中也涌现了很多不错的开源 UI 项目,它们可以帮助 Android 开发者更方便快捷地完成想要的功能.本文是 Android 系列的第一篇,主要是向大家推荐一些常用的 Android UI 组

网易 UI 自动化工具 Airtest 浅用记录

一 使用目的 该工具主要是面向游戏UI测试基于图像识别,如游戏框架unity,Cocos-js以及网易内部的游戏框架 同时也支持原生Android App 的基于元素识别的UI自动化测试. 本文主要使用目的是做安卓原生App的元素UI自动化. 二 资源索引 官方资源 网易游戏新开源的 UI 自动化测试项目 [Airtest Project] Airtest官网 Airtest官网上手教程 AirtestProject Github主页 AirtestIDE官方中文文档 Airtest 官方中文文

安卓手机的后门控制工具SPADE

SPADE,一款安卓手机的后门控制工具,安全研究人员可以以此了解和研究安卓后门原理. 首先,我们从网站www.apk4fun.com下载apk文件,如ccleaner.然后,我们安装spade git clone https://github.com/suraj-root/spade.git 之后,利用以下命令开始捆绑恶意载体 ./spade.py /root/Desktop/ccleaner.apk 有6种不同payload可供选择,设置完lhost和lport,将会生成恶意payload 选

【Android测试】UI自动化代码优化之路(临时发布)

关于UI自动化的抱怨 听过不少人这样讲 "UI自动化非常不稳定,需求一改,界面一遍,全部都费了".我相信做过的人可能也会有同感.既然这个问题一直都是存在的,那么为什么没有人仔细分析原因呢? 我的老板georgeliao举了这样一个例子:每当需求变化的时候,开发没有跳起来,反而是测试跳了起来.然后不断的抱怨,界面元素全都改了,我的自动化的用例全部都要废弃掉了.那么我们是否想过,为什么开发可以从容不破的应对产品不断变化的需求?而我们却不能呢? 业内不少人也都放弃了UI自动化,觉得接口测试才

转载:开发者眼中最好的 22 款 GUI 测试工具

对于很多同学来说gui程序的测试是一个难点,所以我从网上转载了一篇关于gui测试的一篇文章,里面罗列的很多工具,大家可以尝试一下学习学习. 英文原文:22 best GUI testing tools for developer 译文来自:开发者眼中最好的22款GUI测试工具 1.Abbot - Java GUI 测试框架 Abbot是一个基于GUI的简单的Java测试框架,它能够帮助开发者测试Java用户界面. 它提供事件自动生成和验证Java GUI组件,使您能够轻松地启动,探索和控制应用程

7款响应式网页测试工具

响应式设计几乎是当代网页设计的基础构成之一.在实际设计和开发的过程中,想要让网站按照设计响应不同尺寸屏幕,设计师和前端需要花费相当的时间来进行测试和优化.所以,今天我们搜集了7款功能强大的响应式页面测试工具,下面就一一介绍一下. 1. XRESPOND 这款名为 XRespond 的工具自称为“虚拟设备实验室”,这个称号其实是名副其实的. 通过Xrespond 打开网页,你可以看到它在不同屏幕尺寸下的样子,整个布局是横向的,所以你需要横向滚动页面才能看到它所有的样子. 屏幕上方的标签会标识出它是

UI自动化的痛点

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px ".PingFang SC"; color: #454545 } li.li2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.0px "Helvetica N

Mac下Appnium的Android的UI自动化环境搭建

1. 安装jdk:略 检查是否安装:执行命令java -version admindeMacBook-Pro-2:~ $ java -version java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode) 2.安装git:略 检查是否安装:git --ver