一、前言

对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功。appium 自动化测试是很早之前做的,一直想留下点什么,可是一直抽不出一块完整的时间来做这件事儿。现在终于有了。

反观各种互联网的招聘,移动测试已经成了主流,如果再不去学习移动自动化测试技术将已经追不上时代的赶脚!好了,废话不多说,进入正题!

二、Appium简介

appium是移动端最主流的开源自动化测试框架。开源,免费

跨平台:完全满足IOS和Android两个不同的系统以及H5的自动化测试。

Appium是基于Selenium来实现的

Appium是基于JDK+SDK环境来运行的。

Appium有Server版和Desktop版两种,2020年前者已经淘汰了。

三、搭建Appium+Python自动化测试环境

1、安装JDK并配置JDK的环境变量。

(1) JDK的下载

下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

下载版本选择主流的jdk1.8的版本:jdk-8u241-windows-x64.exe

(2) 配置JDK的环境变量:

我的电脑右键属性-->高级系统设置-->高级-->环境变量-->系统变量:

1、新建系统变量:

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_211 (这里是jdk的实际安装路径)

2、新建系统变量:

变量名:CLASSPATH

变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; (前面有一点和冒号不能少)

3、编辑PATH变量,在PATH的最后面添加:

%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(PATH中原来的路径不要去掉哦)

4、验证是否安装并配置成功:

在dos中输入javac和java -version验证。(分别出现一堆英文和jdk的版本信息则说明安装配置成功!)

      如果基础太弱请点击:https://blog.csdn.net/pengjiangchun/article/details/105419683   里面有很详细的步骤和截图!

2、安装SDK并配置SDK的环境变量。

(1) SDK的下载

下载地址:http://tools.android-studio.org/index.php/sdk/

下载版本选择:android-sdk_r24.4.1-windows.zip

(2) SDK的安装

进入D:\android-sdk-windows目录,双击SDK Manager.exe下载对应的包:

a.以下三个Android工具包必须安装:只需要下载最新的版本就行了。

b.Extras(附加设备)

c.安卓版本:安装和模拟器安卓版本一致的SDK。现在android 5开发的场景多一些

夜神模拟器查看Android版本:设置左边的三横->关于我们->Android版本

(3) 配置SDK的环境变量

我的电脑右键属性-->高级系统设置-->高级-->环境变量-->系统变量:

1、新建:

变量名:ANDROID_HOME

变量值:D:\android-sdk-windows (SDK的实际安装路径)

2、编辑PATH,在最后面添加:

%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\29.0.3;

      (如果原来PATH路径最后不是;则加一个;再添加上面的内容)

3、验证是否安装并配置成功:

在dos中输入adb验证。在最上面出现Android Debug Bridge version版本信息,如下图表示成功!

3、安装夜神模拟器并在模拟器上安装被测app

(1) 夜神模拟器的下载

下载地址:https://www.yeshen.com/

版本选择:最新版

(2) 夜神模拟器的安装

下一步下一步傻瓜式安装。

(3) 被测app的安装

把apk包直接拖拽到夜神模拟中安装

(4) 设置模拟器/真机的环境

1.启用设备的开发者选项,启动调试功能。

夜神模拟器:设置->多次点击版本号直到出现提示【开发者选项】->返回上一步能看到【开发者选项】->USB调试。

2.输入命令前:因为SDK下的adb[在SDK安装目录的platform-tools目录下]和模拟器的nox_adb[在夜神安装目录的bin目录下]版本不一致,所以需要把SDK路径下的abd.exe复制到模拟器的bin路径下,重命名为nox_adb.exe,原来的nox_adb.exe先备份。

4.安装和配置Appium

(1) 下载和安装appium-desktop。

下载地址:(强烈建议使用迅雷下载)

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

(2) 打开appium输入:127.0.0.1和4723登录,如下图:

如果此端口被占用:可以使用此命令检查端口是否被占用:netstat -ano | findstr 4723

(3) 配置Appium检查器:

A.Appium右上角有三个选项分别为:

start inspector session 开始检查回话(点击它)

Get Raw Logs 获得原生日志

Stop Server 停止服务

B.点击Automatic Server(自动化服务)

在Desired Capabilities选项中输入如下内容,如图:

deviceName:设备名称

获取方式:通过adb devices获取。输入adb devices后出现

            值为:127.0.0.1:62001

platformName:操作系统名称

可填写:Android和IOS

值为:Android

platformVersion:操作系统版本

查看天天模拟器的anroid版本获取得到。

夜神模拟器查看Android版本:设置左边的三横->关于我们->Android版本

appPackage:包名

通过aapt.exe获取:aapt dump badging apk包的路径。

值为:找到package后面的值,一般在第一行。如:tv.danmaku.bili

appActivity:activity程序主入口

通过aapt.exe获取:aapt dump badging apk包的路径,

找到launchable-activity后面的值,如:tv.danmaku.bili.ui.splash.SplashActivity

第一种可以取全部的值,第二种也可以只取包名以后的内容:

第一种值为:tv.danmaku.bili.ui.splash.SplashActivity

第二种值为:.ui.splash.SplashActivity (注意:前面有个点不能省略)

保存后点击"Start Session"如出现:unkown... 错误,是因为模拟器中没有安装apk包。

如果正常在模拟器里启动app则表示appium自动化测试环境搭建成功!

四、Appium运行原理

(1)自动化脚本向AppiumServer发送注册参数(URL,platformName, platformVersion,deviceName,appPackage,appActivity)

(2)AppiumServer将bootstrap.jar包放入手机端中

(3)手机端用bootstrap启动手机端口(4724),并将端口返回给AppiumServer(相当于建立好了通信连接)

(4)自动化脚本发送请求(操作或命令或动作)给AppiumServer

(5)AppiumServer将 请求解析并发送给bootstrap

(6)bootstrap将请求解析发给UIAutomator

(7)UIAutomator执行相应的操作并将结果返回给bootstrap

(8)bootstrap将响应结果返回给AppiumServer

(9)AppiumServer将响应结果返回到脚本

综上所述,个人认为AppiumServer像是一个请求者;bootstrap充当桥梁的角色,负责PC与电脑之间的通信;UIAutomator则是真正的执行者。

五、总结

如果你对此文有任何疑问,如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:

软件测试技术群:695458161,群里免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

笔者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12793002.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

全网最全最细的appium自动化测试环境搭建教程以及appium工作原理的更多相关文章

  1. Appium自动化测试环境搭建

    前言 Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序.那么为了学习app自动化测试 ...

  2. appium自动化测试 环境搭建

    最 近接手的项目是移动端自动化测试 ,需要用的appium ,头一回使用, 项目特点:1)数据有时效性,需要在短时间内验证大量数据, 2) 人工去一个一个核对发现不了太多BUG. 环境搭建:参考虫师的 ...

  3. app自动化测试环境搭建之node+appium+ADT+MUMU模拟器

    一.安装Microsoft .NET Framework 4.5 检测本机已安装的程序中,是否已经安装Microsoft .NET Framework 4.5及以上的版本 如果没有安装,则获取安装文件 ...

  4. appium 自动化测试环境搭建

    最近再学习appium,把学习的过程记录下来,以防止到时候 换个电脑就不知道这么安装搭建appium环境了. 环境搭建: 0.JDK环境是必备的,这里大家自行百度,   1.安装 node 环境,前辈 ...

  5. Appium 简介与自动化测试环境搭建

    1. Appium 简介 2. Appium 自动化测试环境搭建 1. Appium 简介 Appium 是一个开源测试自动化框架,可用于原生,混合和移动 Web 应用程序测试. 它使用 WebDri ...

  6. RobotFramwork + Appium+ Andriod 环境搭建

    RF+Appium+Android环境搭建教程 - 1.RF安装 一.适用操作系统 Win7 旗舰版Sp1 32位操作系统 RF环境搭建,请参考文档<RobotFramwork安装指南> ...

  7. Appium之环境搭建

    Appium:是开源.跨平台.多语言支持的移动应用自动化工具 测试对象主要有:① 原生app ② 混合app(h5 + web前端基础) ③ 移动web app 测试对象APPy运行平台:  ① io ...

  8. 全网最新方法:Win10下如何安装和搭建appium自动化测试环境

    为了方便大家,下面是本人安装和搭建appium所需要的软件,自取. 链接:https://pan.baidu.com/s/1wl5Xnos4BmnSZsBRd6B5YA#list/path=%2F  ...

  9. 自动化测试环境搭建(appium+selenium+python)

    一.需要安装的软件(根据你所需要的版本安装即可,不一定必须按照小编的版本来) JDK:1.8.0_171 Python:3.7.1 node.js:10.13.0 android-sdk_r24.4. ...

随机推荐

  1. 电脑网络诊断显示Win10无法与设备或资源(DNS)通信解决办法

    最近是做多错多还是人有点儿衰神附体,软件,电脑系统,各种问题层出不穷,今天早上打开电脑发现不少软件都无法联网,神马百度商桥,腾讯浏览器,百度云...昨天百度商桥打不开还以为是软件出了问题,因为火狐浏览 ...

  2. 意外发现PHP另一个显示转换类型 binary

    竟然不知道除了(string)$a之外,还有(binary)$a知道unset可以不加括号,但不知道还有这种写法(unset) 请看lex文件(php-7.1.8) <ST_IN_SCRIPTI ...

  3. C 最大公约数&最小公倍数

    1.最大公约数  链接 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数.几个自然数公有的约数,叫做这几个自然数的公约数.公约数中最大的一个公约数,称为这几个自然数的最大公约数. 1 ...

  4. SSH免密配置

    1. 在三个节点生成秘钥cd ~/.sshssh-keygen -t rsa 2.合并三个节点的密码cat id_rsa.pub >> authorized_keysssh postgre ...

  5. nginx代理图片访问

    nginx代理图片访问 首先配置nginx的代理物理路径 我的是在E盘下面的image 1 #图片的代理 2 server { 3 listen 80; 4 #配置访问的域名 5 server_nam ...

  6. Java 程序该怎么优化?(命令篇)

    灵魂拷问,JDK 提供的命令,除了 java.javac,你还用过哪些命令呢? 灵魂再拷问,若你写的 Java 程序,出现了性能问题,该怎么去排查呢? Java 作为编程语言中的战斗机,JDK 默认已 ...

  7. Netty:Channel

    上一篇我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习. Channel的简介 Channel代表着与网络套接字或者能够进行IO操作 ...

  8. Ring 笔记 - 核心概念

    Ring 是一个在 Clojure 中的对于 HTTP 的抽象,是构建 Web 应用的底层接口和库,类似于 Java 中的 Servlet 核心概念 Handler Handler 是一个定义web应 ...

  9. Redis 练习(二)

    需求: 为购物网站实现登录状态及浏览记录的维护 进入时检查 token 是否已登录 每次进入更新 token 最新进入时间 记录用户浏览的商品信息(最多 25 个) 定时检查 token 数量,如果超 ...

  10. 使用maven构建 ssm项目 tomcat7插件运行报错, Invalid byte tag in constant pool: 60

    错误日志: [WARNING] [WARNING] Some problems were encountered while building the effective settings[WARNI ...