zoukankan      html  css  js  c++  java
  • Appium自动化测试环境搭建

    前言

    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:Usersv-xugAppDataLocalProgramsAppium

    配置环境变量

    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 FilesAndroidandroid-sdk变量及值(SDK的安装目录)

    添加系统变量

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

    配置完环境变量之后,我们就可以使用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,并启动服务器,保持模拟器开启状态

    测试代码

    编写如下测试代码

    """
    ------------------------------------
    @Time : 2019/7/30 19:47
    @Auth : linux超
    @File : appium_test.py
    @IDE  : PyCharm
    @Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error!
    @QQ   : 28174043@qq.com
    @GROUP: 878565760
    ------------------------------------
    """
    from appium import webdriver
    
    
    desired = {
        "platformName": "Android",
        "platformVersion": "5.1.1",
        "deviceName": "e9b768eb7d2a",
        "appPackage": "com.xxzb.fenwoo",
        "appActivity": "com.xxzb.fenwoo.activity.addition.WelcomeActivity"
    }
    
    driver = webdriver.Remote(
        command_executor="http://127.0.0.1:4723/wd/hub",
        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命令等)

  • 相关阅读:
    HDU 2955 Robberies(01背包)
    HDU 2602 Bone Collector(01背包)
    HUST 1352 Repetitions of Substrings(字符串)
    HUST 1358 Uiwurerirexb jeqvad(模拟解密)
    HUST 1404 Hamming Distance(字符串)
    HDU 4520 小Q系列故事――最佳裁判(STL)
    HDU 2058 The sum problem(枚举)
    【破解】修改程序版权、添加弹窗
    HDU 1407 测试你是否和LTC水平一样高(枚举)
    HDU 1050 Moving Tables(贪心)
  • 原文地址:https://www.cnblogs.com/linuxchao/p/linuxchao-appium-environment.html
Copyright © 2011-2022 走看看