Appium自动化测试

Appium软件配置(仅设置图片所展示即可)

Appium-Inspector工具配置

Desired Capabilities属性值配置

属性名称 类型
deviceName text 127.0.0.1:62001
platformName text Android
appPackage text com.smile.gifmaker
appActivity text com.yxcorp.gifshow.HomeActivity
  • 连接到夜神模拟器
adb connect 127.0.0.1:62001
  • 检测设备
adb devices
  • 获取包名

在build-tools文件夹下,cmd中输入命令

aapt dump badging D:\Android\software\kuaishou.apk(软件路径)

  • 获取应用程序入口

在获取包名的同时找launchable-activity的值

配置结果

启动会话后,若出现下面结果,则配置成功。

元素探测工具

Appium Inspector工具

UIAutomatorViewer工具(SDK提供的原生元素定位工具,不需要提供启动参数)

该工具在Android/Android-SDK/tools/bin目录下

名称解释

PackageName(包名)应用程序的唯一标识

ActivityName(类名)一个页面的名字

可以通过命令

adb shell dumpsys activity | find "mFocusedActivity"

查看当前聚焦页面的包名和类名

App类型对比

APP页面布局

APP页面控件

ADB组件

adb常用命令

  • 查看帮助手册
adb help
  • 检测连接到电脑的安卓设备(注意模拟器的连接)
adb devices
  • 从手机中拉取信息放到本地电脑上
adb pull<手机路径><本机路径>
  • 从本地推送信息到手机上去
adb push<本机路径><手机路径>
  • 登录设备shell模式(命令行的人机界面)
adb shell
  • 安装应用
adb install xxx.apk
  • 卸载应用
adb uninstall com.ss.android.ugc.aweme(应用程序包名)
  • 查看前台应用包名
adb shell dumpsys activity | find "mFocusedActivity"
  • 终止adb服务
adb kill-server
  • 启动adb服务
adb start-server
  • 启动App
adb shell am start -n com.tencent.weishi(包名)/com.tencent.oscar.module.main.MainActivity(入口)
  • 清除应用的数据和缓存
adb shell pm clear 包名
  • 坐标点击
adb shell input tap x轴坐标 y轴坐标
  • 列出所有包名
adb shell pm list packages
  • 打印日志
adb logcat (ctrl+c终止抓取)

初体验

package pers.lele;import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;import java.net.MalformedURLException;
import java.net.URL;public class FirstAppium {public static AndroidDriver<WebElement> androidDriver;public static void main(String[] args) throws MalformedURLException, InterruptedException {//1、创建配置对象DesiredCapabilities desiredCapabilities = new DesiredCapabilities();//2、添加配置//deviceName:测试的设备desiredCapabilities.setCapability("deviceName","127.0.0.1:62001");//platformNamedesiredCapabilities.setCapability("platformName","Android");//appPackage:测试的AppdesiredCapabilities.setCapability("appPackage","com.tencent.weishi");//automationName:uiautomator2解决输入框输入不了数据//desiredCapabilities.setCapability("automationName","uiautomator2");//appActivity:测试App启动入口desiredCapabilities.setCapability("appActivity","com.tencent.oscar.module.splash.SplashActivity");//3.创建驱动//第一个参数:Appium通讯地址//第二个参数:配置对象androidDriver = new AndroidDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"),desiredCapabilities);searchTest();}public static void searchTest() throws InterruptedException {//等待元素加载完毕Thread.sleep(1000*10);androidDriver.findElementById("com.tencent.weishi:id/tv_tip_close").click();//1、找到搜索按钮并点击androidDriver.findElementById("com.tencent.weishi:id/noname_base_search").click();//2、找到搜索框,输入路人王androidDriver.findElementById("com.tencent.weishi:id/search_input").sendKeys("路人王");//断言:/*String expected = "";String result androidDriver.currentActivity();Assert.assertEquals(expected,result);*///驱动销毁//androidDriver.quit();}
}

Appium元素定位

  • ID:控件的唯一身份标识,但是可能由于app项目开发人员不严谨导致一个页面有多个相同的id

元素等待

  • 强制等待
Thread.sleep();
  • 隐式等待
androidDriver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
  • 显示等待:针对某个元素设置等待时间
WebDriverWait webDriverWait = new WebDriverWait(androidDriver,10);
WebElement webElement = webDriverWait.until(new ExpectedCondition<WebElement>() {@NullableDecl@Overridepublic WebElement apply(@NullableDecl WebDriver webDriver) {return androidDriver.findElementById("com.tencent.weishi:id/noname_base_search");}});
webElement.click();

手势操作-滑动

   TouchAction touchAction = new TouchAction(androidDriver);PointOption startPoint = PointOption.point(476, 1326);PointOption endPoint = PointOption.point(414, 234);Duration duration = Duration.ofMillis(500);WaitOptions options = WaitOptions.waitOptions(duration);touchAction.press(startPoint).waitAction(options).moveTo(endPoint).release();touchAction.perform();

Appium自动化测试(Java版)相关推荐

  1. Windows下Appium环境搭建(java版)

    因为毕业后学过java,工作后服务端开发用的也基本都是java,所以对java比较熟悉,本篇文章暂时先介绍java版本的appium环境搭建,以后会陆续介绍python版的appium,包括环境搭建. ...

  2. 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层

    设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 给我们的框架分为3层,分别是叫逻辑层,数据层,对象层. 这三层的存储格式都用xml来表示. 1.逻辑层 (test ...

  3. 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程

    设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...

  4. 跪了!!BATJ各位大佬联合教你Java进行Appium自动化测试的实现

    本文介绍如何在eclipse中使用Java进行Appium自动化测试 前提条件 1.配置好了java环境 2.安装了eclipse 3.安装了Maven 4.安装了Android模拟器.我用的夜神模拟 ...

  5. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...

    基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...

  6. Mac 搭建Appium自动化测试环境

    Mac 搭建Appium自动化测试环境 环境搭建列表 通用环境 Ⅰ 安装 Homebrew Ⅱ 安装 Node & NPM Ⅲ 安装 JDK Ⅳ 安装 Carthage Ⅴ 安装 Appium ...

  7. 全网最全appium工作原理以及appium自动化测试环境搭建教程

    目录:导读 一.前言 二.Appium简介 三.搭建Appium+Python自动化测试环境 1.安装JDK并配置JDK的环境变量. 2.安装SDK并配置SDK的环境变量. 3.安装夜神模拟器并在模拟 ...

  8. Appium 自动化测试

    前言: [文章末尾给大家留下了大量的福利] 1.Appium介绍 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以 ...

  9. appium 驱动 对应9.0 系统_以后做Appium自动化测试,再也不会踩这些坑了!

    一.前言 APP的 webview 自动化是依赖于 chromedriver 的,并且每个APP的 webview 版本号都不太一样,这就导致了每次都需要重新去下载对应的chromedriver 版本 ...

  10. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

最新文章

  1. spring 中属性scope 的prototype(有状态)和singleton(无状态)
  2. Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
  3. 设备树与驱动的关系_裸机程序如何驱动硬件?
  4. 文本域字数限制统计(不区分中英文 符号)
  5. 【git系列】简单入门git命令一
  6. 照片打印预览正常打印空白_照片打印机怎么挑选 照片打印机的选购技巧分享 - 台式电脑...
  7. svn回退后如何再还原_设计师如何管理自己的文档
  8. 文件类型识别工具:TrID(trid)下载安装及使用
  9. 微信公众号获取openid流程
  10. 短除法对一个数分解质因数
  11. 7628刷breed_小米路由器青春版 开启ssh 刷入breed 潘多拉 华硕 固件
  12. Python - 使用ffmepg批量转换某个文件夹以及所有子文件夹下所有的视频,修改其帧率/码率/分辨率到另一文件夹,并保留原有文件夹结构
  13. 抽奖助手自动参与抽奖
  14. A Scalable Probabilistic Tensor Factorization(SPTF)论文小结
  15. “烫烫烫烫烫烫烫烫烫烫烫烫烫...
  16. linux安装两个独立显卡驱动,Manjaro Linux 双显卡安装步骤及独立显卡运行游戏(Nvidia GeForce GTX 980m)...
  17. cpu功能解析,cpu功能作用与其工作过程
  18. python行业中性_用python进行金融市场文本数据的情感计算
  19. 龙格现象 matlab,龙格现象的matlab实现
  20. IIS 返回405报错解决过程

热门文章

  1. R语言大作业(全国2000-2019年人口各项数据分析)
  2. 计算机一级考试模拟软件安装方法,计算机一级考试软件怎么使用_计算机一级考试软件安装使用教程...
  3. 校园卡系统mysql与java结合_基于Java+JSP+Mysq+Servletl的校园卡一卡通管理系统
  4. 罗技g502鼠标使用感受,以及与g402的对比体验
  5. Matlab R2016a安装教程
  6. solidworks2016详细安装教程
  7. 第三讲 系统建模与仿真
  8. 抖音地球html代码,抖音短视频征服海外 1/6的地球移动网民活跃
  9. 传智播客-刘意-java深入浅出精华版学习笔记Day06
  10. 刘意-java基础视频(API-网络编程)笔记