前言

Appium是一个开源的自动化测试框架,支持跨平台,支持多种编程语言,可用于原生,混合和移动web应用程序,使用webdriver驱动ios,android应用程序、那么为了学习app自动化测试首要任务肯定就是搭建测试开发环境, 因此在这里记一次搭建Appium自动化测试环境的完整过程,文章较长,需要花费一定的时间,请耐心阅读,如果文中有什么错误请指正

安装Java JDK

JDK环境可以看我之前安装Jenkins时的随笔https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html,这里需要注意一点尽量安装jdk 1.8,防止后面链接手机失败

安装Node.js

安装nodejs之前,我们需要知道,为什么要安装nodejs? 因为appium是nodejs实现的,node相当于appium的解释器

Node.js下载地址:https://nodejs.org/en/download/current/

由于我的电脑是windows 64位的系统,这里我直接下载windows 64位的msi程序文件

下载完成后直接双击安装即可(傻瓜式的安装),所以我就不说具体步骤了,安装后,检查是否安装成功

cmd终端输入第一个命令 node -version,输出下面的信息

接着再输入 npm 命令,输出下面的信息

ok, 这说明node.js已经安装成功

安装Appium server

不知道你做过或者学习过selenium没有,这里的appium server 相当于 selenium中的浏览器驱动程序,当启动浏览器驱动时会初始化一个服务器,绑定本机的地址和端口,那么Appium server也一样,当启动appium时同样会初始化一个服务器绑定本地的地址和端口

安装server有两种方式

第一种:使用npm工具

使用命令 npm install -g appium 安装,不过这种安装方式比较慢(我用这种方式没安装成功,可能网速不行,报了一些错误,比较尴尬)

第二种:安装desktop版本

这种安装方式还是比较快的,但是下载安装包也比较慢,好歹安装没出现什么问题

下载地址

https://bitbucket.org/appium/appium.app/downloads/(modify at: 2019.08.12-这个地址不要用了,我后来才发现里面的版本并不是最新的,是很老的版本,对后期定位app中的toast会失败)

https://github.com/appium/appium-desktop/releases(这个是官网的地址,按下图下载最新的安装即可)

下载完成之后,直接双击安装

这里我也不叙述安装过程了,同样的傻瓜式安装,默认安装目录: C:\Users\v-xug\AppData\Local\Programs\Appium

配置环境变量

appium安装目录下的node_modules\.bin添加到系统环境变量(添加放看后面吧)

注:老版本的有这个目录,新版的我还真没找到这个目录,所以也不需要配置环境变量了-modify at: 2019.08.12

安装完成后能够成功打开桌面的appium程序,说明安装过程暂时没什么问题

安装Android SDK

下载SDK及安装

下载地址: https://www.androiddevtools.cn/

下载完成后,直接双击安装即可

安装完成后,找到你的安装目录,并找到SDK-manager工具双击打开

自己根据需求选择对应的sdk build-tools,Android SDK Platform-tools及api,api我选择的API 22(5.1.1)版本

Android SDK Platform-tools, SDK build-tools我这里是直接下载安装的最新版本,如果你下载的版本比较低的话,后面链接模拟器或者真机时可能会链接不上

点击上图中的[Install packages],弹出下面的页面,点击Accept License后安装,等待所有包安装完成(所需时间比较久,请耐心等待)

配置环境变量

新建系统变量

ANDROID_HOME=D:\Program Files\Android\android-sdk变量及值(SDK的安装目录)

添加系统变量

把platform-tools及tools添加到系统环境变量,变量值(路径)之间使用分号隔开,两个变量值分别为:%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;或者直接添加绝对路径

配置完环境变量之后,我们就可以使用adb命令了

安装Appium Client

我们使用python开发appium的自动化测试脚本,肯定离不开appium的一些api库,所以说这里的appium 客户端就是python代码使用的库,用来连接appium server 及操作app

安装appium client 就非常简单了,只要你已经配置好了python环境,就可以直接使用pip安装了,cmd 执行pipi install Appium-Python-Client即可完成安装,输入下图命令不报错,代表已经安装成功

环境检查

注:这里我只在老版本的appium中找到 appium-doctor这个工具, 新版的并没有找到,那怎么办呢?

打开CMD执行命令 npm install -g appium-doctor 安装appium-doctor

现在们就可以使用appium-doctor命令检查整个环境是否有问题了

cmd执行 appium-doctor命令,如何你的输出信息和我的一样那么恭喜你环境搭建成功了

安装模拟器

所有的环境已经安装完成,接下来就是链接手机模拟器或者真机了,我这里使用的是夜神模拟器,下载地址:https://www.yeshen.com/

下载完成后直接安装,安装完成后,桌面会生成两个图标,夜神模拟器和夜神多开器

连接模拟器

开启模拟器的开发者模式

点击模拟器的设置-点击关于平板电脑-点击版本号(会有提示点击几次打开开发者模式)

打开CMD终端,切换cmd 的工作目录到夜神模拟器的安装目录的bin目录下(或者你把这个目录添加到环境变量也可以,但是最好不要添加到环境变量,因为bin目录下也存在一个adb.exe会和Android SDK中的adb.exe冲突),执行命令 nox_adb.exe connect 127.0.0.1:62001(不同模拟器的这个端口号不同)

如果执行命令时提示类似:abd server version(40) doesn't match this client (36) 这样的失败信息,那么说明你的server(夜神模拟器的adb(nox_adb.exe))和client(Android SDK中的adb)版本不对应

检查版本

cmd 输入 adb version 查看client版本

cmd切换到夜神安装目录的bin目录下,执行nox_adb.exe version

我的版本是一样的,你的可能是两个不同的版本号, 你需要把Android SDK中的adb拷贝到夜神模拟器安装目录下的bin目录下,并重命名为nox_adb.exe 并替换原来的即可

连接模拟器

接下来我们就可以测试连接是否正常了,输入命令 nox_adb.exe connect 127.0.0.1:62001(这里要注意执行命令的目录,应为夜神模拟器安装目录的bin目录下)

看到上面的提示后,接着再次输入命令 adb devices (注意:不要在上面的目录下继续输入命令,因为bin下同样存在一个adb.exe ,如果你还在这个目录下执行adb命令,那么使用的并不是Android SDK中的adb,所以切换到其他任意目录执行命令)

如果你看到的是上图中的信息, 说明已经成功连接上了模拟器, 这里只能说明Android的开发环境没问题了,但是进行自动化时还不一定能够正常控制模拟器

测试环境验证

下面我们通过编写一段简单的代码程序,验证一下程序是否能够成功驱动模拟器打开指定的app,如果没有报错,那么到此为止整个appnium自动化测试环境就已经完成了

打开appium,并启动服务器,保持模拟器开启状态

测试代码

编写如下测试代码

  1. """
  2. ------------------------------------
  3. @Time : 2019/7/30 19:47
  4. @Auth : linux超
  5. @File : appium_test.py
  6. @IDE : PyCharm
  7. @Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error!
  8. @QQ : 28174043@qq.com
  9. @GROUP: 878565760
  10. ------------------------------------
  11. """
  12. from appium import webdriver
  13.  
  14. desired = {
  15. "platformName": "Android",
  16. "platformVersion": "5.1.1",
  17. "deviceName": "e9b768eb7d2a",
  18. "appPackage": "com.xxzb.fenwoo",
  19. "appActivity": "com.xxzb.fenwoo.activity.addition.WelcomeActivity"
  20. }
  21.  
  22. driver = webdriver.Remote(
  23. command_executor="http://127.0.0.1:4723/wd/hub",
  24. desired_capabilities=desired)

以上代码desired_capabilities参数,暂不做介绍

输出

对应app被成功打开,表示整个环境已经没有任何问题了,接下来就可以愉快的开启我们的app自动化测试了

总结

最后,回顾一下搭建环境过程中需要注意的点

1.如果在安装appium的时候提示缺少.net framework 4.5 那么先下载安装它,再安装appium即可https://www.microsoft.com/zh-cn/download/details.aspx?id=30653

2.下载最新的appium,防止定位app的toast时无法定位

3.注意Android SDK 中adb的版本和模拟器中nox_adb的版本需要相同

4.下载Andorid SDK的时候一定要安装最新的 platform-tools,防止后面连接模拟器或者真机时遇到不可预料的错误(找不到adb命令等)

Appium自动化测试环境搭建的更多相关文章

  1. 全网最全最细的appium自动化测试环境搭建教程以及appium工作原理

    一.前言 ​ 对于appium自动化测试环境的搭建我相信90%的自学者都是在痛苦中挣扎,在挣扎中放弃,在放弃后又重新开始,只有10%的人,人品比较好,能够很快并顺利的搭建成功.appium 自动化测试 ...

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

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

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

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

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

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

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

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

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

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

  7. appium+robotframework环境搭建

    appium+robotframework环境搭建步骤(Windows系统的appium自动化测试,只适用于测试安卓机:ios机需要在mac搭建appium环境后测试) 搭建步骤,共分为3部分: 一. ...

  8. 『与善仁』Appium基础 — 14、Appium测试环境搭建

    目录 1.Appium测试环境搭建整体思路 (1)Android测试环境搭建 (2)Appium测试环境搭建 (3)测试脚本语言的环境搭建 2.Appium在Android端和IOS端的工作流程 (1 ...

  9. RobotFramwork + Appium+ Andriod 环境搭建

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

随机推荐

  1. Zookeeper详解-API(六)

    ZooKeeper有一个绑定Java和C的官方API.Zookeeper社区为大多数语言(.NET,python等)提供非官方API.使用ZooKeeper API,应用程序可以连接,交互,操作数据, ...

  2. niaobulashi-一个基于springboot shrio的权限管理系统

    github项目地址:https://github.com/niaobulashi/niaobulashi springboot学习地址:http://www.ityouknow.com/spring ...

  3. 【Netty整理03-NIO】Java 实现 NIO demo

    jdk提供的NIO使用: 概览:https://blog.csdn.net/the_fool_/article/details/83000648 博主抄写了网上的demo,略作修改与调整,原文链接: ...

  4. Java学习笔记——设计模式之七.模板方法模式

    模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 结构图: 代码: 算法骨架 ...

  5. selenium3+python3自动化测试学习之网页元素定位

    selenium基础实战之定位网页元素技巧 selenium定位网页元素 find_element_by_id,find_element_by_name,find_element_by_class_n ...

  6. 深度探索c++对象模型 第一章

    1,声明与定义. //声明式如下: extern int x;   //对象式(变量式)声明 std::size_t numDigits(int number);  //函数式声明 class Wid ...

  7. 基于STM32之UART串口通信协议(三)接收

    一.前言 1.简介 回顾上一篇UART发送当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作. 2.UART简介 嵌入式开发中,UART串口通信协议是我们 ...

  8. Docker启动一个Centos镜像,在docker中安装ifconfig和ssh

    执行docker search centos 现在最流行的Linux嘛.查了下,排名第一的(STARS最多1882)官方版,就是你了 果断拿下, docker pull centos,看网速了静等拿下 ...

  9. 基于SpringBoot从零构建博客网站 - 开发设置主页标识和修改个人信息功能

    由于守望博客系统中支持由用户自己设置个人主页的URL的后半段,所以必须要用户设置该标识的功能,而且是用户注册登录之后自动弹出的页面,如果用户没有设置该标识,其它的操作是不能够操作的,同时要求主页标识只 ...

  10. idea创建springcloud主工程和springboot子项目

    创建主工程,选择file-new-project,选择maven,直接next 填写GroupId包名,ArtifactId项目名,next-finish 创建子项目springboot,项目右击-n ...