【appium】appium连接模拟器/android真机启动app测试+代码

目录

一、搭建环境

1、准备Android设备(真机Android手机/模拟器)

2、Android开发环境(Android SDK)

3、安装Appium

安装Appium-desktop

4、让adb连接测试设备

4.1 怎么让adb去连接上夜神模拟器?不使用connect 打开模拟器自动连 做法:把Android ADK包里面的adb.exe文件替换到夜神模拟器里面去

4.2 怎么让adb去连接上真机

注意:如果上述步骤 4 的这个弹窗出不来的话,对应解决方案:

5、安装要测试的APP 

6、编写代码


一、搭建环境

1、准备Android设备(真机Android手机/模拟器)

  • 夜神、雷电

  • genymotion

  • bluestack

  • 网易MuMu

2、Android开发环境(Android SDK)

  1. 解压

  2. 配置环境变量

  • 复制Android SDK的家目录,进入到系统环境变量配置页面,新建变量名ANDROID_HOME,变量值为复制过来的路径

  • 进入到Path变量中,新建(添加)三行配置

    %ANDROID_HOME%\platform-tools

    %ANDROID_HOME%\tools

    %ANDROID_HOME%\build-tools\28.0.3

    • 输入adb version检测环境变量是否配置OK,如下表示成功

3、安装Appium

Releases · appium/appium-desktop · GitHub

安装Appium-desktop

检查器会话:识别App页面元素,录制/回放

检查器会话三个配置:

  • platform值为Android or IOS

  • appPackage App包名:值通过aapt工具来查询【appPackage:app的唯一标识,每个app基本都是不一样的】

    命令:aapt dump badging app安装包所在的路径

  • appActivity App启动入口:值通过aapt工具来查询

注意:在启动会话之前,一定要确保要连接的设备是能够检测到的(adb devices) 

4、让adb连接测试设备

4.1 怎么让adb去连接上夜神模拟器?不使用connect 打开模拟器自动连接

1、关闭夜神模拟器

2、进入到Android SDK的platform-tools目录下找到adb.exe,复制

3、进入到夜神的安装目录下D:\Program Files\Nox\bin,替换该目录下的adb.exe、nox_adb.exe

4、启动夜神模拟器

5、可以用adb devices检测是否连接成功

做法:把Android ADK包里面的adb.exe文件替换到夜神模拟器里面去

夜神模拟器bin目录下的adb.exe和nox_adb.exe都需要替换,名字需要和原来保持一致

4.2 怎么让adb去连接上真机

1、通过USB线将真机连接到电脑端

2、打开手机开发者选项,进入到设置->关于手机->连续点击5下版本号

3、进入到开发者选项中,找到USB调试模式,打开

4、特别重要,还会有一个弹窗出来

5、adb devices检测到设备

注意:如果上述步骤 4 的这个弹窗出不来的话,对应解决方案:
  • 电脑端安装手机助手类的软件:91手机助手、豌豆荚

  • 通过手机助手去和手机连接上

  • 再把手机助手给卸掉

  • adb devices检测到设备

5、安装要测试的APP 

安装apk,把要测试的apk包拖拽到模拟器/拷贝到真机中

6、编写代码

整体步骤:

  1. appium配置         appium页面中                                                                                                      "platformName","deviceName","appPackage" ,"appActivity"可以通过adb命令查找

  2. 打开夜神模拟器/真机

    确保夜神模拟器连接上,可查到端口 ;夜神的端口是62001

  3. 编写代码(这里以java为例)运行程序 可以看到夜神模拟器打开了app

    //所需功能类 把下面的四个配置保存起来
    DesiredCapabilities capabilities = new DesiredCapabilities();
    //1、确认测试平台   设置platformName
    capabilities.setCapability("platformName","Android");//2、需要测试的设备   设置deviceName
    //(1)夜神模拟器
    capabilities.setCapability("deviceName","127.0.0.1:62001");
    //(2)网易mumu模拟器
    //capabilities.setCapability("deviceName","127.0.0.1:22471");
    //(3)手机真机
    //设置手机系统版本
    capabilities.setCapability("platformVersion","安卓系统版本");
    capabilities.setCapability("deviceName","手机型号");//3、测试的app 通过app唯一标识  设置appPackage
    capabilities.setCapability("appPackage","com.XXX");//4、启用app 调用appActivity  设置appActivity
    capabilities.setCapability("appActivity","com.XXX");//5、客户端(java脚本)和Appium server 建立连接
    URL url = new URL("http://127.0.0.1:4723/wd/hub");//6、创建AndroidDriver 对象
    AndroidDriver driver = new AndroidDriver(url,capabilities);
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2810293.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

创建spring项目报错:read time out

在新电脑使用idea创建spring项目时,提示read time out多次尝试无果。 发现只要取消这个选择就可以正常下载。(版本是202202) 取消勾选后可以正常下载 (下载完成后,再次创建sprin项目勾上无影响。)

强大的安卓文件传输工具:Android File Transfer for Mac

Android File Transfer for Mac是一款专为Mac用户开发的安卓文件传输工具。它提供了一种无缝连接Mac电脑与安卓设备的方式,使我们能够轻松地在两者之间传输文件。不管是照片、音乐、视频还是文档,我们都可以通过这个工具将它们从安卓设备传输到Mac电脑上…

375FPS! 谷歌提出MaskConver“重校正用于全景分割的纯卷积模型

https://arxiv.org/2312.06052 近年来,基于Transformer的模型由于其强大的建模能力以及对语义类和实例类的统一表示为全局二值掩码,在全景分割中占据主导地位。 在本文中,我们回顾了纯粹的卷积模型,并提出了一种新的结构MaskConve…

Orange3数据预处理(转置组件)

选项 "Remove redundant instance" 是在转置时进行数据去重的选项。当勾选此选项时,如果在原始数据中存在多个相同的记录(即每个特征列中的数据完全一样),则在转置操作中只保留其中唯一的一个记录,并从转置后…

【MySQL面试复习】什么是覆盖索引?/MySQL超大分页怎么处理?

系列文章目录 在MySQL中,如何定位慢查询? 发现了某个SQL语句执行很慢,如何进行分析? 了解过索引吗?(索引的底层原理)/B 树和B树的区别是什么? 什么是聚簇索引(聚集索引)和非聚簇索引…

C++ 实现Socket交互式服务端

在 Windows 操作系统中,原生提供了强大的网络编程支持,允许开发者使用 Socket API 进行网络通信,通过 Socket API,开发者可以创建、连接、发送和接收数据,实现网络通信。本文将深入探讨如何通过调用原生网络 API 实现同…

点云数据处理常用外部库(C++/Windows)的项目配置

一、点云数据处理常用外部库(C版本)的下载安装与项目配置 (一)PCL 基于VS2019编程平台的PCL外部库下载安装及项目配置已有大量博客,本文不再赘述。具体下载安装及项目配置流程可参考外部库编译配置参考资料/*1*/ 。需…

OPENSSL-PKCS7入门知识介绍

1 PKCS7数据结构说明 p7包括6种数据内容:数据(data),签名数据(sign),数字信封数据(enveloped),签名数字信封数据(signed_and_enveloped),摘要数据&#xff08…

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘无密码如何解决

1.修改my.cnf配置文件 (1)找到my.cnf位置,在[mysqld]下面添加skip-grant-tables cd / vim /etc/my.cnf (2)添加完成后保存,并重启mysql服务 按下esc 输入:wq 执行 servcie mysqld restart 2.进入mysql数据…

300分钟吃透分布式缓存-14讲:大数据时代,MC如何应对新的常见问题?

大数据时代 Memcached 经典问题 随着互联网的快速发展和普及,人类进入了大数据时代。在大数据时代,移动设备全面融入了人们的工作和生活,各种数据以前所未有的 速度被生产、挖掘和消费。移动互联网系统也不断演进和发展,存储、计…

Matlab论文插图绘制模板第138期—极坐标直方图

在之前的文章中,分享了Matlab一系列极坐标下的插图绘制模板: 本期再来分享一下极坐标直方图的绘制模板。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以…

MySQL多实例与Mycat分布式读写分离的架构实践

文章目录 1.Mycat读写分离分布式架构规划2.在两台服务器中搭建八个MySQL实例2.1.安装MySQL软件2.2.创建每个MySQL实例的数据目录并初始化2.3.准备每个实例的配置文件2.4.准备每个实例的启动脚本2.6启动每台机器的MySQL多实例2.7.为每个MySQL实例设置密码2.8.查看每个MySQL实例的…

项目启动∣新一代亿元级国民零食品牌「比比赞」携手企企通,合力打造企业级数字化采购与供应链管理平台

为进一步提升企业的核心供应链一体化协同管理,助力企业效益提升,近日,泉州市丰泽区尚客食品有限公司(以下简称“比比赞”)与企企通携手,成功召开SRM项目启动会。 会议期间,双方对项目背景、项目…

Oracle内存计算应用模式

前言 内存计算是利用内存来加速数据访问和应用的性能,并降低应用开发复杂度的技术。近十年来,随着软硬件技术的发展和用户需求的成熟,内存计算技术已经得到了广泛地应用。 Oracle在内存计算领域具有非常重要的地位,这主要得益于…

开了抖店该怎么玩?不知道运营流程的,今天一文带你了解!

大家好,我是电商小布。 在电商的快速发展下,越来越多的新手小伙伴开始加入其中。 抖音小店作为当前的低成本创业项目,吸引到了很多的新手朋友加入其中。 但是开店后怎么玩,如何做好运营操作呢? 今天,小…

WampServer环境下载安装并结合内网穿透实现远程访问管理界面

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境,是一组常用来…

AI论文速读 | 【综述】(LLM4TS)大语言模型用于时间序列

题目:Large Language Models for Time Series: A Survey 作者:Xiyuan Zhang , Ranak Roy Chowdhury , Rajesh K. Gupta and Jingbo Shang 机构:加州大学圣地亚哥分校(UCSD) 网址:https://arxiv.org/abs/…

CleanMyMac2024一款备受赞誉的mac电脑垃圾清理软件

在数字世界中,我们的Mac不仅仅是一台电脑,更是我们工作、娱乐和生活的得力助手。然而,随着时间的推移,系统垃圾、无用文件和缓存不断堆积,让Mac变得迟钝,甚至威胁到我们的数据安全。此刻,您需要…

《Docker 简易速速上手小册》第6章 Docker 网络与安全(2024 最新版)

文章目录 6.1 Docker 网络概念6.1.1 重点基础知识6.1.2 重点案例:基于 Flask 的微服务6.1.3 拓展案例 1:容器间的直接通信6.1.4 拓展案例 2:跨主机容器通信 6.2 配置与管理网络6.2.1 重点基础知识6.2.2 重点案例:配置 Flask 应用的…

vite搭配vue2创建工程

一、安装vite npm init vite2.8.0 vite默认支持的是vue3, 这里选择框架和版本vanilla, 方便以后自己安装vue2. 二、修改package.json 默认生成的pacakage.json文件 {"name": "vite-project","private": true,"v…