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+模拟器相关推荐

  1. JAVA+appium+夜神模拟器实现APP爬虫

    JAVA+appium+夜神模拟器实现APP爬虫 爬虫需要 appium server: 一个APP自动化测试框架 C/S架构 服务端由node.js开发 客户端支持多种语言,底层使用netty通信. ...

  2. 基于Appium+JAVA环境测试iOS

    至于原理什么的,这里不再阐述,网上有很多讲述原理的例子相信你们已有所了解,你想用JAVA环境来测试iOS,那么我想你一定是有些想法的,来吧We Go MacOSX上搭建Appium-iOS环境所需的软 ...

  3. appium连接模拟器时屏幕倒转

    appium连接模拟器时屏幕倒转 问题:appium通过启动会话连接模拟器时(如itools模拟器),出现了屏幕倒转的情况 猜测是运行模拟器时,屏幕默认是平板屏幕 解决:设置屏幕为手机,再通过appi ...

  4. appium+java(五)微信小程序自动化测试实践

    前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...

  5. appium java 点击事件_java – 无法使用Appium在Android中的权限对话框中单击“允许”按钮...

    我无法使用Appium Java在 Android的权限对话框中点击"拒绝"或"允许"按钮.在点击这些按钮之前,是否需要添加任何功能? 以下是代码: Desir ...

  6. java appium_Android应用开发之AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试)...

    本文将带你了解Android应用开发AS+Appium+Java+Win自动化测试之Appium的Java测试脚本封装(Android测试),希望本文对大家学Android有所帮助. 一.为什么需要封 ...

  7. 有没有安卓4.0的java模拟器_电脑端安装Android4.0模拟器使用教程

    如今说到什么智能手机最火,那很多人肯定会说android系统的手机.如果你还没有Android手机,又想买一部试试,可是价格都不便宜,买来不适合自己怎么办?那么可以先在电脑上安装一个Android模拟 ...

  8. Appium JAVA ios 设备 AUT not install

    Appium JAVA ios 设备 AUT not install 目前出现此问题的原因无法查明 但是通过检查以下几点,大都可以解决问题 这个问题出现请检查 1.capabilities中是否正确设 ...

  9. appium java模拟微信登录,python实战之结合Appium自动化操作微信

    本教程操作环境:win7系统,JDK1.8,Appium,Python3.7,android-sdk,JDK,模拟器 1.Appium介绍 Appium是一个开源的自动化测试工具,其支持iOS和安卓平 ...

最新文章

  1. Go 2将添加错误处理和泛型
  2. 8-12-COMPETITION
  3. 磁盘上没有足够的空间完成此操作_【教程】Windows的磁盘分区,两分钟搞定!!...
  4. SQL Server时间粒度系列----第6节基于当前日的小时数和分钟数与mysql unix_timestamp和from_unixtime的mssql实现...
  5. 音视频技术开发周刊 | 206
  6. linux --开机自动挂载硬盘【转】
  7. ios图片轮播 (基础篇——UIScrollView实现方式)
  8. GARFIELD@09-11-2004
  9. mysql的建库建表语句_SQL语句(建库、建表、修改语句)
  10. 多播泡妞宝典---IGMP
  11. 三菱plc编程软件怎么用c语言,各种三菱PLC编程软件的用途介绍
  12. 畅谈无线通信系统物理层之系统概述
  13. shell 数组及 十六进制转换报错
  14. 蘑菇云matlab程序,蘑菇云刷机精灵怎么用?刷机视频详细图文教程
  15. JavaScript 实现抢购倒计时,记录恋爱1314纪念日倒计时,输出对应的天数小时分钟秒数
  16. 居家装修这些细节一定得注意到
  17. 推荐开源项目计划管理软件 kanboard
  18. matlab regress 非线性,MATLAB用regress作多元非线性回归
  19. deepin操作系统安装oracle xe数据库(非docker版)
  20. 修改hosts文件(win10版)

热门文章

  1. 百度识图原理分析 推测其发展方向…
  2. java基于servlet开发的旅游日志博客系统用来记录旅行的
  3. 右键点击DataGridView的行时,将选中行改为点击的行
  4. 12306登陆窗体验证码自动识别
  5. W5300建立TCP连接以后,Socket0数据收发正常,其它Socket有数据丢失是什么问题?
  6. 一步一个脚印之笔试面试(三)-----进程,线程
  7. 请问什么是ACK消息
  8. STM32F103 读取HX711
  9. 关于Latex中png图片输出有边框/黑线的解决方法
  10. Dreamweaver安装99卡死_原装耗材99元了解一下?兄弟DCP-B7535DW低成本也能“印”对自如...