Appium 环境配置

Appium 是一个开源的、跨平台的测试框架,可以用来测试 Native App、混合应用、移动 Web 应用(H5 应用)等,也是当下互联网企业实现移动自动化测试的重要工具。Appium 坚持的测试理念:

•无需用户对 App 进行任何修改或者重新编译,App 应该 Born to be Automated。

•不应该限制用户只能使用特定的语言或者框架来编写和执行测试。

•移动测试框架的 API 应该是稳定的,合理的,不应对自动化 API 反复地造轮子。

•移动测试框架应该是开源的,包括“精神和肉体”。

本文是 Appium 的环境配置教程。

Appium、Appium-desktop、Appium Client 的区别

Appium:是 Appium 体系的核心,因为它本身也是一个 web 接口服务,所以也会被成为 appium server,对外默认开启包括 4723 等多个端口。

Appium-Desktop:是为了让 Appium 能够更好用,让小白入门更容易,让调试和界面分析更方便,官方开发了 GUI 的工具 Appium-desktop。

Appium Client:Appium 只是一个 Web 接口,他接受 HTTP 请求,所以各个语言都可以自己封装发送请求,于是就有 appium 下的各个子项目。以下是各语言对 Appium Client 做的支持。

在这里插入图片描述

Appium 的安装 (Mac 版)

安装前检查

#查看是否已安装以下软件
#查看 java 环境是否安装
java -version
#查看 git 是否安装
git --version
#查看 ruby 是否安装
ruby -v
#查看 brew 是否安装
brew -v
#如果不存在 brew,需要执行
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
#查看 android-sdk 是否安装
adb

安装 NodeJS

#通过 brew 安装 node
brew install node
#检查 node、npm 版本
node -v
npm -v

Appium 安装方式

Appium 安装方式一:npm方式

#通过 node 直接进行安装,此方式极易出现网络超时等异常,不推荐
npm install -g appium

Appium 安装方式二:cnpm 方式(推荐)

•什么是淘宝源镜像?

这是一个完整 npmjs.org 镜像,你可以用此代替官方版本 (只读),同步频率目前为 10 分钟 一次以保证尽量与官方服务同步。

#淘宝源安装命令
npm install -g cnpm --registry=https://registry.npm.taobao.org

•为什么选择淘宝 npm 镜像?

由于 Node 安装插件是从国外服务器下载,受网络影响大,速度慢且出现异常。所以如果 npm 的服务器在中国就好了,所以我们乐于分享的淘宝团队(阿里巴巴旗下业务阿里云)提供了这个福利。

# 通过淘宝源的 npm 镜像安装,
# 安装的时间可能稍微有些长,需要耐心等待
cnpm install -g appium
#安装完成检验下
appium -v
# 整体检查 appium 环境是否安装成功
# 需要先通过 cnpm 安装 appium-doctor,
# 然后执行 appium-doctor
cnpm install -g appium-doctor
appium-doctor

在这里插入图片描述
Appium 的安装 (Windows 版)

安装前检查

#jdk 是否安装
java -version
#android sdk 是否安装
adb

nodejs 安装

1. 下载地址: https://nodejs.org/zh-cn/download/
选取 win 对应的 .msi 进行下载
2. 下载完成,进行安装。一路下一步
3. 安装完成在 Path 变量下配置 C:\Program Files\nodejs\;(Ps:此处为对应 node 安装的路径)
4. 检查 node 环境 , 分别检查 node -v npm -v

Appium 环境安装

安装步骤同 Mac。推荐淘宝源镜像方式安装 Appium

Appium-desktop 的安装

#首先去官网下载 dmg 文件
官网地址:https://github.com/appium/appium-desktop/releases/tag/v1.10.0
#下载完成双击 dmg 文件进行安装即可

在这里插入图片描述
Appium Client(Java&Python)

#java 版导入相关 pom 依赖即可
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>7.0.0</version>
</dependency>
#python 版需要执行 pip install Appium-Python-Client
总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git提交代码到远端仓库的方法详解

一、何为git git就是版本控制器&#xff0c;就比如说你新建了一个git文件夹&#xff0c;里面用于存放你的C语言实习报告&#xff0c;现在要用git对该文件夹进行接管。当你修改了你的C语言实习报告点击保存之后&#xff0c;就用git的相关命令&#xff0c;提交给git&#xff0c;让…

Mybatis面试题(三)

MyBatis 面试题 21、MyBatis 实现一对多有几种方式,怎么操作的&#xff1f; 有联合查询和嵌套查询。联合查询是几个表联合查询,只查询一次,通过在resultMap 里面的 collection 节点配置一对多的类就可以完成&#xff1b;嵌套查询是先查一个表,根据这个表里面的 结果的外键 id,…

Js-WebAPIs-事件流(三)

• 事件流与两个阶段说明 事件流指的是事件完整执行过程中的流动路径 说明&#xff1a;假设页面里有个div&#xff0c;当触发事件时&#xff0c;会经历两个阶段&#xff0c;分别是捕获阶段、冒泡阶段 简单来说&#xff1a;捕获阶段是 从父到子 冒泡阶段是从子到父 实际工作都是…

使用主动检索增强生成FLARE来实现更好的RAG

文章链接&#xff1a;https://arxiv.org/abs/2305.06983 项目代码&#xff1a;https://github.com/jzbjyb/FLARE 原文地址&#xff1a;Better RAG with Active Retrieval Augmented Generation FLARE 2023 年 11 月 18 日 欢迎深入探讨前瞻性主动检索增强生成 (FLARE)&…

对于随机生成图片接口浏览器走缓存的问题

前提场景 目前有一个api 他可以随机生成一张图片&#xff0c;我通过v-for循环一个Array渲染出来几个img 并且都调用了该接口&#xff0c;但是每个img都是一样的图片 具体代码如下 <div class"icon-group-box" v-for"item in groupList" :key"item…

22k+star一款自托管的开源的的好用的碎片化笔记软件 Memos超级详细部署教程

目录 1.拉取镜像 2.启动 3.体验 4.源码地址 1.拉取镜像 docker pull neosmemo/memos:stable 2.启动 创建目录 mkdir -p /opt/memos/ 启动 docker run -d --name memos -p 10006:5230 -v /opt/memos/:/var/opt/memos neosmemo/memos:stable 3.体验 浏览器输入下面地址…

linux perf工具使用

参考文章Linux性能调优之perf使用方法_perf交叉编译-CSDN博客 perf是一款Linux性能分析工具。比如打流性能优化的时候&#xff0c;就能够看到是哪些函数消耗的cpu高 那么linux如何编译perf工具呢&#xff1f; perf工具编译 进入perf目录下linux-3.16/tools/perf make ARCH…

class_12:析构函数

#include <iostream>using namespace std;class Myclass{ private:int* datas; public:Myclass(int size){datas new int[size];}~Myclass(){cout<<"析构函数被调用"<<endl;delete [] datas;} };int main() {cout << "Hello World!&qu…

Docker(八)高级网络配置

作者主页&#xff1a; 正函数的个人主页 文章收录专栏&#xff1a; Docker 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01; 高级网络配置 注意&#xff1a;本章属于 Docker 高级配置&#xff0c;如果您是初学者&#xff0c;您可以暂时跳过本章节&#xff0c;直接学习…

PyTorch 内 LibTorch/TorchScript 的使用

PyTorch 内 LibTorch/TorchScript 的使用 1. .pt .pth .bin .onnx 格式1.1 模型的保存与加载到底在做什么&#xff1f;1.2 为什么要约定格式&#xff1f;1.3 格式汇总1.3.1 .pt .pth 格式1.3.2 .bin 格式1.3.3 直接保存完整模型1.3.4 .onnx 格式1.3.5 jit.trace1.3.6 jit.scrip…

小程序宿主环境-组件button

button <button>普通按钮</button> <button type"primary">主色调按钮</button> <button type"warn">警告按钮</button><button size"mini">普通按钮</button> <button type"primary&q…

OpenCV-Python(49):图像去噪

目标 学习使用非局部平均值去噪算法去除图像中的噪音学习函数cv2.fastNlMeansDenoising()、cv2.fastNlMeansDenoisingColored等 原理 在前面的章节中我们已经学习了很多图像平滑技术&#xff0c;比如高斯平滑、中值平滑等。当噪声比较小时&#xff0c;这些技术的效果都是很好…

钡铼 楼宇暖通网关之 BACnet网关在空气源热泵智能控制系统中的应用介绍

前言 在刚刚过去的2023年&#xff0c;空气源热泵市场依然火爆&#xff0c;全线市场销量递增&#xff0c;各种新品层出不穷&#xff0c;市场认可度持续攀升&#xff0c;在整个采暖市场&#xff0c;空气源热泵已然成为当红明星。 热泵组管道比较复杂&#xff0c;传感器分布比较分…

JUC-Java内存模型JMM

JMM概述 Java Meory Model java内存模型。在不同的硬件和不同的操作系统上&#xff0c;对内存的访问方式是不一样的。这就造成了同一套java代码运行在不同的操作系统上会出问题。JMM就屏蔽掉硬件和操作系统的差异&#xff0c;增加java代码的可移植性。这是一方面。 另一方面JM…

Java项目:11 Springboot的垃圾回收管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 功能介绍 本系统通过利用系统的垃圾回收流程&#xff0c;提高垃圾回收效率&#xff0c;通过垃圾回收的申请&#xff0c;增删改查&#xff0c;垃圾运输申…

TCP服务器最多支持多少客户端连接

目录 一、理论数值 二、实际部署 参考 一、理论数值 首先知道一个基础概念&#xff0c;对于一个 TCP 连接可以使用四元组&#xff08;src_ip, src_port, dst_ip, dst_port&#xff09;进行唯一标识。因为服务端 IP 和 Port 是固定的&#xff08;如下图中的bind阶段&#xff0…

Mysql运维篇(一) 日志类型

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人&#xff0c;如有侵权请留言&#xff0c;我及时删除。 一、mysql相关日志 首先&#xff0c;我们能接触到的&#xff0c;一般我们排查慢查询时&#xff0c;会去看慢查询…

关于java的方法重写

关于java的方法重写 我们之前在学习方法的时候&#xff0c;了解到了方法的重载&#xff0c;但是本篇文章我们要了解的是方法的重写&#xff0c;是不一样的&#xff0c;千万不能混淆在一起&#x1f600; 一、初识重写 1、首先我们建立一个新的包&#xff0c;然后新建一个A类&…

快速幂 算法

暴力算法 我们可以采用暴力算法 #include<bits/stdc.h> using namespace std; #define ll long long int main() {ll a, b, c;cin >> a >> b >> c;ll ans 1;for (ll i 1; i < b; i) {ans * a;}ans % c;cout << ans; } 不过这样肯定会超时…

torchtext安装及常见问题

Pytorch 、 torchtext和Python之间有严格的对应关系&#xff1a; 在命令窗中安装torchtext pip install torchtext 注意这种安装方式&#xff0c;在pytorch版本与python版本不兼容时动会自动更新并安装pytorchcpu版本&#xff0c;安装的新版本pytorch可能会不兼容。慎用。 …