appium+java+模拟器
1.准备工作
jdk 1.8
node v10.23.0
android sdk
appium-desktop下载,版本:1.22.3
https://github.com/appium/appium-desktop/releases/
appium-inspector下载,版本:2022.2.1
https://github.com/appium/appium-inspector/releases
夜神模拟器 V7.0.2.5001 Android 7.1.2
2.模拟器调整
1.将夜神模拟器安装目录下的bin/adb.exe用android sdk主目录/platform-tools下的adb.exe覆盖掉,不然会出现下面问题;
2.将夜神模拟器安装目录下的bin/nox_adb.exe添加到环境变量中;
3.在夜神模拟器安装目录/bin下,执行adb connect 127.0.0.1:62001,打开模拟器本地端口。
3.appium和模拟器设置
夜神模拟器分辨率设置为手机版,记下模拟器的android版本(7.1.2),同时打开开发者模式(连点5下版本号,在开发者选项中打开调试);在模拟器中安装并打开待测试app。
在模拟器所在电脑cmd中执行下面命令,获取待测试app的相关信息。
adb shell dumpsys window |findstr mCurrentFocus
上图中斜杠前面的部分为appPacage,后面部分为appActivity(后面appium Inspector需要使用),记录下appPackage、appActivity。
打开appium-desktop(快捷方式名称为Appium Server GUI),使用默认设置,点击Start Server。
打开AppiumInspector,在Appium Server中填写配置,Remote Path修改为/wd/hub(appium版本为1.x的需要修改,如果appium版本为2.x则不需要)。
在Desired Capabilities中填写好platformName、platformVersion、uuid、appPackage、appActivity,分别为Android、7.1.2(安卓版本)、127.0.0.1:62001(前面打开的模拟器端口地址)、com.yishouapp.fumi(app包名)、com.yishouapp.fumi.activity.YishouMainActivity(app入口Activity);点击Start Session。
4.运行
顺序:夜神模拟器 > 待测试app > appium-desktop(快捷方式名称为Appium Server GUI)> AppiumInspector。
5.开启VT
开启VT可以缓解模拟器卡顿问题;惠普笔记本重启后,按F9,再按F10进入BIOS设置,在【系统设置】-【处理器虚拟化技术】中将【禁用】修改为【启用】。
同时设置夜神模拟器cpu为2核,可以使虚拟机运行更流畅。
6.下载appium依赖包
需要的依赖jar包有3个,appium的java-client-xxx.jar,selenium的selenium-java-xxx.jar和selenium-server-standalone-xxx.jar。
通过JitPack | Publish JVM and Android libraries
链接下载appium的java-client;如果不能通过上面方式下载,可手动下载7.6.0版本的jar包。https://jitpack.io/com/github/appium/java-client/7.6.0/java-client-7.6.0.jar
selenium-java、selenium-server-standalone下载;maven方式
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency> <dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-server-standalone</artifactId><version>3.141.59</version></dependency>
注意selenium-server-standalone很大,如果不能下载,请通过链接下载 https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-standalone-3.141.59.jar。
7.java代码
将java-client-7.6.0.jar、selenium-java-3.141.59.jar、selenium-server-standalone-3.141.59.jar 三个jar包添加到项目中;使用qq极速版(qq极速版,已停止更新,测试使用-Android文档类资源-CSDN下载)测试demo如下。
package com.ybjdw.tool.test;import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import java.net.URL;
import java.util.concurrent.TimeUnit;/*** author: zhanggw* 创建时间: 2022/3/25*/
public class AppiumTest {private static Logger logger = LoggerFactory.getLogger(AppiumTest.class);public static void main(String[] args) {//打包DesiredCapabilities这个类DesiredCapabilities des = new DesiredCapabilities();des.setCapability("platformName", "Android");des.setCapability("platformVersion", "7.1.2");des.setCapability("deviceName", "Android Emulator");des.setCapability("noReset", true);//获取包名及第一个页面的activitydes.setCapability("appPackage", "com.tencent.qqlite");des.setCapability("appActivity", "com.tencent.mobileqq.activity.SplashActivity");//创建AppiumDriver对象,连接上Appium服务器,并将相应的键值对传过去AppiumDriver driver = null;try {driver = new AppiumDriver(new URL("http://192.168.1.186:4723/wd/hub"),des);driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);// 步骤1:在登录页面用户名文本框中输入qq号码driver.findElementByAccessibilityId("请输入QQ号码或手机或邮箱").clear();driver.findElementByAccessibilityId("请输入QQ号码或手机或邮箱").sendKeys("xxxx");Thread.sleep(1000);// 步骤2:在登录页面密码文本框中输入密码driver.findElementById("com.tencent.qqlite:id/password_eye").click(); // 显示密码driver.findElementById("com.tencent.qqlite:id/password").click();driver.findElementById("com.tencent.qqlite:id/password").clear();driver.findElementById("com.tencent.qqlite:id/password").sendKeys("xxxx");Thread.sleep(1000);// 步骤3:点击登录按钮driver.findElementByAccessibilityId("登录QQ").click();// 滑动验证码的图标到相应的位置//driver.swipe(169, 334, 347, 344, 3000);Thread.sleep(10*1000);Thread.sleep(30*1000);} catch (Exception e) {logger.error("appiium异常,测试用例不通过!", e);}finally{if(driver != null){driver.quit();}}}
}
8.其它
8.1 appium关闭app方法
driver.terminateApp("com.yishouapp.fumi.activity.YishouMainActivity");
8.2 appium-doctor
appium-doctor可以检测依赖缺失,但不是必须的,使用appium-doctor会发现缺少很多东西,如果没用到,可以不用管。
appium运行情况见视频:
appium自动化视频-Android文档类资源-CSDN下载https://download.csdn.net/download/leadseczgw01/85464586
附录
参考资料:
Appium: 基于Appium的App自动化测试框架完美版
Appium + Java 下载安装和使用_明明懒得要死名字却特别长的Edward的博客-CSDN博客_appium java安装
Appium环境搭建Java篇 - 一盏黄黄旧旧的灯 - 博客园
Appium移动自动化测试(一)--安装Appium - 虫师 - 博客园
Getting Started - Appium
appium+java+模拟器相关推荐
- JAVA+appium+夜神模拟器实现APP爬虫
JAVA+appium+夜神模拟器实现APP爬虫 爬虫需要 appium server: 一个APP自动化测试框架 C/S架构 服务端由node.js开发 客户端支持多种语言,底层使用netty通信. ...
- 基于Appium+JAVA环境测试iOS
至于原理什么的,这里不再阐述,网上有很多讲述原理的例子相信你们已有所了解,你想用JAVA环境来测试iOS,那么我想你一定是有些想法的,来吧We Go MacOSX上搭建Appium-iOS环境所需的软 ...
- appium连接模拟器时屏幕倒转
appium连接模拟器时屏幕倒转 问题:appium通过启动会话连接模拟器时(如itools模拟器),出现了屏幕倒转的情况 猜测是运行模拟器时,屏幕默认是平板屏幕 解决:设置屏幕为手机,再通过appi ...
- appium+java(五)微信小程序自动化测试实践
前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...
- appium java 点击事件_java – 无法使用Appium在Android中的权限对话框中单击“允许”按钮...
我无法使用Appium Java在 Android的权限对话框中点击"拒绝"或"允许"按钮.在点击这些按钮之前,是否需要添加任何功能? 以下是代码: Desir ...
- java appium_Android应用开发之AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试)...
本文将带你了解Android应用开发AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试),希望本文对大家学Android有所帮助. 一.为什么需要封 ...
- 有没有安卓4.0的java模拟器_电脑端安装Android4.0模拟器使用教程
如今说到什么智能手机最火,那很多人肯定会说android系统的手机.如果你还没有Android手机,又想买一部试试,可是价格都不便宜,买来不适合自己怎么办?那么可以先在电脑上安装一个Android模拟 ...
- Appium JAVA ios 设备 AUT not install
Appium JAVA ios 设备 AUT not install 目前出现此问题的原因无法查明 但是通过检查以下几点,大都可以解决问题 这个问题出现请检查 1.capabilities中是否正确设 ...
- appium java模拟微信登录,python实战之结合Appium自动化操作微信
本教程操作环境:win7系统,JDK1.8,Appium,Python3.7,android-sdk,JDK,模拟器 1.Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平 ...
最新文章
- Go 2将添加错误处理和泛型
- 8-12-COMPETITION
- 磁盘上没有足够的空间完成此操作_【教程】Windows的磁盘分区,两分钟搞定!!...
- SQL Server时间粒度系列----第6节基于当前日的小时数和分钟数与mysql unix_timestamp和from_unixtime的mssql实现...
- 音视频技术开发周刊 | 206
- linux --开机自动挂载硬盘【转】
- ios图片轮播 (基础篇——UIScrollView实现方式)
- GARFIELD@09-11-2004
- mysql的建库建表语句_SQL语句(建库、建表、修改语句)
- 多播泡妞宝典---IGMP
- 三菱plc编程软件怎么用c语言,各种三菱PLC编程软件的用途介绍
- 畅谈无线通信系统物理层之系统概述
- shell 数组及 十六进制转换报错
- 蘑菇云matlab程序,蘑菇云刷机精灵怎么用?刷机视频详细图文教程
- JavaScript 实现抢购倒计时,记录恋爱1314纪念日倒计时,输出对应的天数小时分钟秒数
- 居家装修这些细节一定得注意到
- 推荐开源项目计划管理软件 kanboard
- matlab regress 非线性,MATLAB用regress作多元非线性回归
- deepin操作系统安装oracle xe数据库(非docker版)
- 修改hosts文件(win10版)
热门文章
- 百度识图原理分析 推测其发展方向…
- java基于servlet开发的旅游日志博客系统用来记录旅行的
- 右键点击DataGridView的行时,将选中行改为点击的行
- 12306登陆窗体验证码自动识别
- W5300建立TCP连接以后,Socket0数据收发正常,其它Socket有数据丢失是什么问题?
- 一步一个脚印之笔试面试(三)-----进程,线程
- 请问什么是ACK消息
- STM32F103 读取HX711
- 关于Latex中png图片输出有边框/黑线的解决方法
- Dreamweaver安装99卡死_原装耗材99元了解一下?兄弟DCP-B7535DW低成本也能“印”对自如...