软件测试/测试开发丨Windows Appium环境搭建

windows 版本 Appium 环境搭建

安装 nodejs

  • 下载.msi文件

https://nodejs.org/en/download/

image

  • 注意:

1、下载12.*版本双击安装即可。
2、无须配置环境变量,直接重启一个 cmd 输入下面的命令,能够查看这两个版本号即安装成功。

image

安装 appium desktop

直接官网下载 Appium 客户端版本安装即可。
建议下载 版本 1.15.1,最新的版本目前不太稳定。

mac 下载:
Appium-mac-1.15.1.dmg

windows 下载:
Appium-windows-1.15.1.exe

  • 官方下载地址:

https://github.com/appium/appium-desktop/tags

安装命令行版本的 Appium

国内网络一般直接使用官方推荐的命令 npm install -g appium, 会下载失败,超时等问题。这里推荐大家设置国内镜像再下载。

1、设置镜像源

npm config set registry https://registry.npm.taobao.org

2、安装appium

npm install -g appium 这样下载下来的是最新版本的appium。
推荐下载 appium 1.15版本,使用命令指定版本号 npm install -g appium@1.15

appium 这个版本是命令行版本, 与appium desktop启动一个即可,安装也可以只安装一个或者两个都装,建议都装。

  • 安装 appium-doctor
    npm install appium-doctor -g

appium-doctor 是用来检测环境配的是否完整,安装完成之后,重新打开新的命令行窗口,输入 appium-doctor,如下图:

image

例如上图,还差 ANDROID_HOME没有配会有标为红叉提示。

JDK 环境配置

  • 下载并安装jdk
    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

注意: 使用 windows 的童鞋,如果用的是window10需要使用jdk_1XX的版本, 最上面网盘里面提供的,打开应该会闪退。

若下载比较慢,可以采取其他的方式进行下载。
1、下载好之后进行安装,其中win版本的安装的时候需要注意jre的安装是在jdk安装之后,在进行jre安装的时候不要使用jdk同样的目录,否则会出现javac等的覆盖

2、安装好之后,检查并进行 java 环境的设置

  • a、设置好JAVA_HOME和CLASSPATH
    JAVA_HOME:jdk的安装目录
    CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点)

    image

  • b、设置Path,在其中加入两个配置信息

image

安装 android sdk

这里有三种安装方式,一种是命令行下载,一种是通过 Android Studio 下载SDK,另外一种是下载学院打包好的SDK
如果安装的SDK有问题,可以尝试用另一种方式安装。

第一种方式:命令行安装
  • 下载android sdk

https://www.androiddevtools.cn/

下载:android-sdk_r24.4.1-windows

下载下来之后找到 readme 文件并打开,下图

image

找到这个文件中最下方的一条命令,如下图,在命令行里执行这个命令更新sdk:

image

image

更新完的sdk 会多了一些文件夹,如下图:

image

更新完成之后,检查一下 build-tools/ 路径下,如果是 30 的版本,需要先删掉这个30的文件夹,然后手动的下载一个低于 28版本的build-tools/ 的放在目录下即可(推荐 28或者29的版本),如果下载多个版本会优先使用高版本的。(注意一定要删掉30这个版本的,版本太高appium运行不起来,需要依赖java1.9的版本)

  • 下载 build-tools 方法
    命令行,cd 到sdk 目录下,输入android 回车, 弹出如下界面,勾选想要下载的版本即可。

image

最后,检查对应的目录信息应该包含了以下几个:

  • build-tools
  • platform-tools
  • tools
    如果出现了工具的缺失,可以去上面的sdk manager 里下载。其中,build-tools包含不同版本的安卓版本的工具,每个版本一个文件夹,配置的时候将版本号文件夹配置上类似于:build-tools/xxx;platform-tools存放着adb等工具的,tools存放着uiautomatorviewer等工具。这里要注意build-tools/下的版本不要使用>=30版本的 build-tools/
  • sdk 配置环境变量:
    注意:环境变量不要有空格,中文 或者特殊字符等。
    首先配置好 android_home:

    image


    再到Path中添加下列信息,其中安卓版本build-tools目录下的数字配置为自己电脑上存在的版本。

    image

第二种方式:先下载Android Studio, 利用 Android Studio 下载安装 SDK

参考贴子:https://ceshiren.com/t/topic/4001

第三种方式:下载学院打包的SDK,配置环境变量即可

https://ceshiren.com/t/topic/12808

注意: sdk 无论使用哪种安装方式,最后都要配置环境变量ANDROID_HOME, 和 Path 。

.net framework 安装

windows 安装 appium desktop 需要依赖 .net framework 必须保证 版本是大于 4.0 的即可。现在目前windows大部分默认的 .net framework 版本都是大于 4.0 的,可以通过下面的方式查看一下,如果不是则需要手动安装。

控制面板–程序–程序和功能 勾选 .net framework 4 确定即可

image

安装 appium client

appium client 是我们编写脚本必调的api包,写脚本一定要安装这个包才能引用appium, from appium import webdriver这行代码。

由于是python的第三方库,直接使用Pip 安装即可:

pip install appium-python-client

安装模拟器

目前市面上模拟器类型比较多, mumu, 夜神,雷电,逍遥,genimotion,android sdk中也有自带的emulator模拟器。学习过程中推荐大家使用mumu模拟器,也可以使用 genimotion模拟器和 android sdk 自带的 emulator。

  • 安装mumu模拟器,练习足够用,但做移动端的 web 测试需要使用genimotion 或者 sdk自带的emulator
  • android sdk 里面自带的模拟器也可以,只不过要下载android的开发工具来管理这些模拟器 - android studio,不用也可以不装,
  • genimotion (自行百度)

模拟器安装好之后,命令行里直接 输入命令adb devices即可查看模拟器的状态。

对于第三方模拟器(mumu, 夜神等),windows需要手动连接。
mumu模拟器,需要手动输入下面的连接命令:

adb connect 127.0.0.1:7555

上面的 127.0.0.1:7555 作为一个整体,是 模拟器的名称,也叫序列号(serial number)。是根据本地的 IP 和端口号生成的, 不同的模拟器对应的端口不一样,具体用的哪个端口可以去百度搜索一下或者官网查看 。

mac上直接执行 adb devices 。如果没有识别,需要重启 adb server,执行下面两条命令即可。

adb kill-server
adb devices

不同厂商的模拟器需要连接的名是不一样的,需要查看官网说明。上面仅提供了mumu的连接方式,其它的模拟器自行百度。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js对象方法大全(开发必会)

目录 前言 assgin(对象合并) 参数 功能 返回值 测试 结果 结论 create(以源对象为原型创建新对象) 参数 功能 返回值 测试 结果 结论 defineProperties(对属性进行具体定义) 参数 功能 返回值 测试 结果 结论 defineProperty(重写或定义新属性) 参数 功…

无论男孩女孩都要尽情打扮

这款柔软又细腻的开衫外套 上身体验感很不错的哈 舒适软糯百搭还透气,抗起球的面料 黑灰两色简单大方 胸前加上了流行的刺绣设计,可爱又精致 单穿内搭都可,现在天气还比较冷 外面可以套个羽绒服之类的 时尚叠穿风,韩系范儿…

【揭秘】技术同学申请专利的惊人好处,你绝对不能错过!

今天跟大家分享一下,从一名技术工程师(程序员)的角度,为什么要写专利以及如何去申请专利? 专利的本质 首先就是要科普一下,并不是说一定要做出来的某个东西,才能够申请专利,和想象…

Java线程池ThreadPoolExecutor源码解析

Java线程池ThreadPoolExecutor源码解析 1.ThreadPoolExecutor的构造实现 以jdk8为准,常说线程池有七大参数,通常而言,有四个参数是比较重要的 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit …

虚拟机迁移技术原理与应用

虚拟机迁移技术主要应用于两种场景: 第一种,随着现在虚拟化的发展,传统it架构的物理机需迁移到虚拟机上,实现负载均衡、资源优化等目的。 第二种,将虚拟机从一个虚拟化平台迁移到另一个虚拟化平台,可以是…

MySQL的高级SQL语句

目录 1.mysql高阶查询 select:显示表格中一个或数个字段的所有数据记录 distinct:不显示重复的数据记录 where:有条件查询 AND OR :且 或 in:显示已知值的数据记录 between:显示两个值范围内的数据记…

nrm的保姆级使用教程

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

【UE 游戏模板】 游戏分类(RPG、RST等)

目录 0 引言1 游戏分类1.1 角色扮演游戏(RPG)1.2 第一人称射击游戏(FPS)1.3 即时策略游戏(RTS)1.4 VR游戏1.5 集换式卡牌游戏(TCG)1.5 塔防游戏(Tower Defense Games&…

【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞

目录 非强制路由RCE漏洞 web579 web604 web605 web606 web607-610 前面审了一些tp3的sql注入,终于到tp5了,要说tp5那最经典的还得是rce 下面介绍非强制路由RCE漏洞 非强制路由RCE漏洞原理 非强制路由相当于开了一个大口子,可以任意调用当前框…

golang 图片加水印

需求: 1,员工签到图片加水印 2,水印文字需要有半透明的底色,避免水印看不清 3,图片宽设置在600,小于600或者大于600都需要等比例修改图片的高度,保持水印在图片中的大小和位置 4,处理…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

JavaWeb——前端之JSVue

接上篇笔记 4. JavaScript 概念 跨平台、面向对象的脚本语言,使网页可交互与Java语法类似,但是不需要变异,直接由浏览器解析1995年Brendan Eich发明,1997年成为ECMA标准(ECMA制定了标准化的脚本程序设计语言ECMAScr…

Unity Shader-真实下雨路面

Unity Shader-真实下雨路面 简介素材1.准备插件Amplify Shader Editor(这里我使用的是1.6.4最新版)2.贴纸和切图d 一、创建一个Shader Surface,实现气泡播放效果二、叠加一次气泡播放效果,使其看起来更多,更无序三、小…

新火种AI|AI正在让汽车成为“消费电子产品”

作者:一号 编辑:小迪 AI正在让汽车产品消费电子化 12月28日,铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军,在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…

手把手带你入门本地AI绘画(Stable Diffusion)

AIGC现如今可谓是如日中天,AI绘画算是其中最火的其中之一了。现在的AI绘图工具也是百家争鸣,不管是网页端,APP端,还是小程序端,都能看到各种各样的AI绘图工具,他们多是需要你发送关键词或绘图命令到他们的服务器,然后由服务器渲染完成之后返图给你,所以一定会占用他们的…

概率论相关题型

文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…

4-链表-合并两个有序链表

这是链表的第4题,来个简单算法玩玩。力扣链接。 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2&#xff…

JS 嵌套循环之退出顶层循环

我们常常写循环的时候&#xff0c;可能会遇到嵌套循环&#xff0c;如果出现退出循环&#xff0c;一层还好&#xff0c;多层循环就费劲了&#xff0c;传统做法是加 flag&#xff0c;如下&#xff1a; for (let i 0; i < 10; i) {let flag falsefor (let j 0; j < 5; j…

【Angular 】Angular 模板中基于角色的访问控制

您是否在Angular模板中实现角色库访问控制&#xff1f;一种方法是通过*ngIf&#xff0c;但我不会选择该路径&#xff0c;因为它将在Angular模板中包含自定义函数&#xff0c;并且很难维护。正确的方法是使用Angular结构指令&#x1f680;. 什么是RBAC&#xff1f; 基于角色的…

自然语言处理(第16课 机器翻译4、5/5)

一、学习目标 1.学习各种粒度的系统融合方法 2.学习两类译文评估标准 3.学习语音翻译和文本翻译的不同 4.学习语音翻译实现方法 二、系统融合 以一个最简单的例子来说明系统融合&#xff0c;就是相当于用多个翻译引擎得到不同的翻译结果&#xff0c;然后选择其中最好的作为…