安卓appUI自动化测试框架(基于uiautomator2.0)

前言:

目前比较流行的androidUI自动化实现方式有uiautomator和appium两种

uiautomator是google提供的框架,经历了1.0和2.0版本,1.0版本和appium比较像(1.0基本没人用了),2.0版本是基于安卓app单元测试框架来实现的,用androidStudio来写,写在androidTest目录下,用单元测试的方式执行测试,属于android工程,打出来是apk包,安装在手机上就可以测试,可以脱离电脑,电脑之只需要触发一下就可以。因为uiautomator2.0是安卓工程,所以只能用java来写。

appium需要的环境条件比较复杂,完全依赖电脑,需要在电脑上装一大推东西(appium客户端、node.js环境、androidSdk、java环境或者python环境),用eclipse或者idea等IDE写成java工程来执行测试,打出来是一个jar包。appium支持的语言比较多(java、python、js等)

框架元素:

jenkins、github、tomcat、代码工程(junit4+Email+钉钉机器人+html报告+uiautomatorAPI封装)

效果:

html报告

钉钉消息(和接口这个模版类似,可以自己设计,把数据统计对就行)

分别介绍:

一、github

在github新建一个远程仓库,使用一个默认的master分支就行,测试人员在自己的电脑用sourcetree建立本地仓库并关联远程仓库,每次写完代码都提交、推送到远程仓库。

二、gradle

下载适合的版本,将代码拉下来后,用于自动打成apk包,也可以让jenkins自动下载

三、jenkins

部署在linux或者windows或者mac电脑上,这里讲以windows作为服务器

1、配置androidSdk环境变量、gradle环境变量

 

2、配置git(从git拉取最新的测试代码)

3、配置gradle(从git把代码拉下来后,打成apk包)

4、win命令流程:删除上次测试结果文件夹、删除上次测试日志、push自动化测试apk到手机并且安装、清除缓存区日志、后台运行appLogcat.bat(删除上次日志文件,开始收集本次测试日志)、开始触发执行测试、测试结束后等待3秒、后台运行killLogcat.bat(结束log收集)、再等待3秒、pull出日志文件到电脑、pull出截图到电脑、pull出html报告到电脑

rd /s /q C:\Users\BabyFS\Desktop\appFunction\appFunctionPicture
del /f /s /q C:\Users\BabyFS\Desktop\appFunction\appLogcat.txt
adb push D:\jenkins\jenkinsHome\workspace\appFunction\app\build\outputs\apk\debug\app-debug.apk /data/local/tmp/com.uiautomator.babyfs
adb shell pm install -t -r "/data/local/tmp/com.uiautomator.babyfs"
adb push D:\jenkins\jenkinsHome\workspace\appFunction\app\build\outputs\apk\androidTest\debug\app-debug-androidTest.apk /data/local/tmp/com.uiautomator.babyfs.test
adb shell pm install -t -r "/data/local/tmp/com.uiautomator.babyfs.test"
adb logcat -c
start /b D:\tools\appFunction\appLogcat.bat
adb shell am instrument -w -r   -e debug false -e class 'com.uiautomator.babyfs.RunInsideCase#app' com.uiautomator.babyfs.test/android.support.test.runner.AndroidJUnitRunner
ping /n 3 127.1 >nul
start /b D:\tools\appFunction\killLogcat.bat
ping /n 3 127.1 >nul
adb pull sdcard/appLogcat.txt C:\Users\BabyFS\Desktop\appFunction
adb pull sdcard/appFunctionPicture C:\Users\BabyFS\Desktop\appFunction
adb pull sdcard/app.html C:\Users\BabyFS\Desktop\appFunction

appLogcat.bat

adb shell < D:\tools\appFunction\appLogcat.txt

appLogcat.txt

rm -rf /sdcard/appLogcat.txt
touch /sdcard/appLogcat.txt
nohup logcat | grep "uiautomatorTest" > sdcard/appLogcat.txt &

killLogcat.bat

adb shell < D:\tools\appFunction\killLogcat.txt

 

killLogcat.txt

killall -9 logcat

四、uiautomatorAPI封装

1、工程目录

2、KeyWord类代码(uiautomatorAPI封装)

package com.uiautomator.babyfs;

import android.app.Instrumentation;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.RemoteException;
import android.support.test.runner.AndroidJUnit4;
import android.support.test.uiautomator.By;
import android.support.test.uiautomator.BySelector;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject2;
import android.support.test.uiautomator.UiObjectNotFoundException;
import android.support.test.uiautomator.UiScrollable;
import android.support.test.uiautomator.UiSelector;
import android.support.test.uiautomator.Until;
import android.util.Log;

import org.junit.runner.RunWith;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static android.os.SystemClock.sleep;
import static com.uiautomator.babyfs.Constants.Path_picture;
import static com.uiautomator.babyfs.Constants.TAG;
import static com.uiautomator.babyfs.Constants.layout;
import static com.uiautomator.babyfs.GenerateReport.contentFail;
import static com.uiautomator.babyfs.GenerateReport.contentPass;

@RunWith(AndroidJUnit4.class)
public class KeyWord {

    static Instrumentation instrumentation;
    static UiDevice mDevice;
    static Context context;

    p
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
AppUI自动化测试框架是一用于测试移动应用界面的工具。它可以模拟用户在移动设备上的操作,如点击、滑动、输入,并对应用的界面进行验证和测试。以下是AppUI自动化测试框架的一些特点和常用功能: 1. 跨平台支持:AppUI自动化测试框架可以在不同的移动操作系统上运行,如Android和iOS。 2. 多种编程语言支持:AppUI自动化测试框架支持多种编程语言,如Java、Python、C#等,开发人员可以根据自己的喜好和技能选择合适的语言进行测试脚本的编写。 3. 元素定位和操作:框架提供了丰富的API和方法,用于定位和操作应用界面上的元素,如按钮、文本框、下拉列表等。开发人员可以通过这些方法模拟用户的操作,并验证应用的响应。 4. 数据驱动测试:AppUI自动化测试框架支持数据驱动测试,可以通过读取外部数据源(如Excel、CSV文件)来驱动测试脚本的执行,从而实现对不同数据集的测试。 5. 并发执行:框架支持并发执行测试脚本,可以同时在多个设备上执行测试,提高测试效率。 6. 测试报告和日志:框架可以生成详细的测试报告和日志,记录测试过程中的操作和结果,方便开发人员进行问题定位和分析。 7. 集成持续集成工具:AppUI自动化测试框架可以与持续集成工具(如Jenkins)集成,实现自动化测试的持续集成和部署。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌翻天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值