Appium自动化测试(Java版)
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版)相关推荐
- Windows下Appium环境搭建(java版)
因为毕业后学过java,工作后服务端开发用的也基本都是java,所以对java比较熟悉,本篇文章暂时先介绍java版本的appium环境搭建,以后会陆续介绍python版的appium,包括环境搭建. ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层 给我们的框架分为3层,分别是叫逻辑层,数据层,对象层. 这三层的存储格式都用xml来表示. 1.逻辑层 (test ...
- 设计自己的基于Selenium 的自动化测试框架-Java版(2) - 定义自己的工作流程
设计自己的基于Selenium的自动化测试框架-Java版(2) -定义自己的工作流程 Work flow chart 上图是整个工作流程,红色虚线上面的需要手动来完成,红色虚线下面的实现自动化. 我 ...
- 跪了!!BATJ各位大佬联合教你Java进行Appium自动化测试的实现
本文介绍如何在eclipse中使用Java进行Appium自动化测试 前提条件 1.配置好了java环境 2.安装了eclipse 3.安装了Maven 4.安装了Android模拟器.我用的夜神模拟 ...
- python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...
基于python单元测试框架unittest完成appium自动化测试,生成基于html可视化测试报告 代码示例: #利用unittest并生成测试报告 class Appium_test(unitt ...
- Mac 搭建Appium自动化测试环境
Mac 搭建Appium自动化测试环境 环境搭建列表 通用环境 Ⅰ 安装 Homebrew Ⅱ 安装 Node & NPM Ⅲ 安装 JDK Ⅳ 安装 Carthage Ⅴ 安装 Appium ...
- 全网最全appium工作原理以及appium自动化测试环境搭建教程
目录:导读 一.前言 二.Appium简介 三.搭建Appium+Python自动化测试环境 1.安装JDK并配置JDK的环境变量. 2.安装SDK并配置SDK的环境变量. 3.安装夜神模拟器并在模拟 ...
- Appium 自动化测试
前言: [文章末尾给大家留下了大量的福利] 1.Appium介绍 1,appium是开源的移动端自动化测试框架: 2,appium可以测试原生的.混合的.以及移动端的web项目: 3,appium可以 ...
- appium 驱动 对应9.0 系统_以后做Appium自动化测试,再也不会踩这些坑了!
一.前言 APP的 webview 自动化是依赖于 chromedriver 的,并且每个APP的 webview 版本号都不太一样,这就导致了每次都需要重新去下载对应的chromedriver 版本 ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)...
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
最新文章
- spring 中属性scope 的prototype(有状态)和singleton(无状态)
- Py之dominate:python的dominate库的简介、安装、使用方法之详细攻略
- 设备树与驱动的关系_裸机程序如何驱动硬件?
- 文本域字数限制统计(不区分中英文 符号)
- 【git系列】简单入门git命令一
- 照片打印预览正常打印空白_照片打印机怎么挑选 照片打印机的选购技巧分享 - 台式电脑...
- svn回退后如何再还原_设计师如何管理自己的文档
- 文件类型识别工具:TrID(trid)下载安装及使用
- 微信公众号获取openid流程
- 短除法对一个数分解质因数
- 7628刷breed_小米路由器青春版 开启ssh 刷入breed 潘多拉 华硕 固件
- Python - 使用ffmepg批量转换某个文件夹以及所有子文件夹下所有的视频,修改其帧率/码率/分辨率到另一文件夹,并保留原有文件夹结构
- 抽奖助手自动参与抽奖
- A Scalable Probabilistic Tensor Factorization(SPTF)论文小结
- “烫烫烫烫烫烫烫烫烫烫烫烫烫...
- linux安装两个独立显卡驱动,Manjaro Linux 双显卡安装步骤及独立显卡运行游戏(Nvidia GeForce GTX 980m)...
- cpu功能解析,cpu功能作用与其工作过程
- python行业中性_用python进行金融市场文本数据的情感计算
- 龙格现象 matlab,龙格现象的matlab实现
- IIS 返回405报错解决过程
热门文章
- R语言大作业(全国2000-2019年人口各项数据分析)
- 计算机一级考试模拟软件安装方法,计算机一级考试软件怎么使用_计算机一级考试软件安装使用教程...
- 校园卡系统mysql与java结合_基于Java+JSP+Mysq+Servletl的校园卡一卡通管理系统
- 罗技g502鼠标使用感受,以及与g402的对比体验
- Matlab R2016a安装教程
- solidworks2016详细安装教程
- 第三讲 系统建模与仿真
- 抖音地球html代码,抖音短视频征服海外 1/6的地球移动网民活跃
- 传智播客-刘意-java深入浅出精华版学习笔记Day06
- 刘意-java基础视频(API-网络编程)笔记