zoukankan      html  css  js  c++  java
  • python_Appium测试环境搭建

    python_Appium测试环境搭建

    Android环境搭建

    移动端Appium环境部署比Web的selenium环境稍微复杂一些,如用python编写测试用例脚本或者开发测试框架以及UI自动化操作方法是一样的,基本是通用。因两者都是基于selenium,在Python的appium包中实际继承了Selenium,在测试过程中将移动端的页面元素当作是网页来处理。Web和Appium两者区别在于环境部署和脚本部分配置差异。如果对Web的selenium自动化脚本有基础的话,只要环境搭建及配置搞明白可以直接上手Appium移动端自动化测试。

    由于网上的Appium部署的环境资料比较零散,不完整,自己把以住工作中使用到的知识梳理总结搭建的appium环境从0到1完整部署过程记录。

     一、环境准备:

    本文讲解的环境在windows7系统64位版本进行部署。

    需要安装的工具清单如下:

    1.jdk1.8.0 (64位)

    2.android-sdk_r24.4.1-windows    (下载地址:http://tools.android-studio.org/index.php/sdk

    3.python:3.6    (下载地址:https://www.python.org/)

    4..net framework4.5   (下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=30653

    5.Node.js:node-v10.14.2-x64  (下载地址:https://nodejs.org/en/download

    6.appium-desktop :1.10.0  (下载地址:https://github.com/appium/appium-desktop/releases)

    7.Appium-Python-Client:1.0.1

    8.夜神模拟器:6.2.6.3

    二、安装jdk

    1、在系统环境变量,新增JAVA_HOME为jdk安装路径:D:Javajdk1.8.0_181
    2、在Path变量中增加:%JAVA_HOME%in;%JAVA_HOME%jrein
    3、在CLASSPATH变量中增加:%JAVA_HOME%lib;%JAVA_HOME%lib ools.jar

    三、安装android-sdk

    将下载的 Android SDK 解压指定的目录

    在系统变量新建:ANDROID_HOME,对应变量值为:D:android-sdk(sdk安装路径)

    path变量里面添加%ANDROID_HOME% ools和%ANDROID_HOME%platform-tools;

    注意:

    由于目前Google在国内无法访问,所以需要通过镜像方式去下载我们的SDK,就碰到android sdk解压后没有platform-tools目录,或者安装SDK时遇到"Done loading packages"的问题。

    1、进入Android SDK安装目录中点击SDK Manager.exe,然后选择Tools->options菜单,弹出如下界面:

    录入如下数据:【本人亲测该URL地址镜像服务器可用】

    Proxy Server:mirrors.neusoft.edu.cn

    Proxy Port:80

    并勾选Others框内的第一个复选框,如上图红色圈。

    2、列出Android SDK在线更新镜像服务器

    • 中国科学院开源协会镜像站地址:
      • http://mirrors.opencas.cn 端口:80
      • http://mirrors.opencas.org 端口:80
      • http://mirrors.opencas.ac.cn 端口:80
    • 上海GDG镜像服务器地址:
      • http://sdk.gdgshanghai.com 端口:8000
    • 北京化工大学镜像服务器地址:
      • http://ubuntu.buct.edu.cn/ 端口:80
      • http://ubuntu.buct.cn/ 端口:80
      • http://ubuntu.buct6.edu.cn/ 端口:80
    • 大连东软信息学院镜像服务器地址:
      • http://mirrors.neusoft.edu.cn 端口:80
    • 腾讯Bugly 镜像:
      • http://android-mirror.bugly.qq.com 端口:8080

    3、完成代理设置后再次打开SDK Manager.exe,即可更新及安装我们的SDK了。

    接下来勾选需要下载的android版本和工具,如下图所示:

    如上图Tools的红色圈内必须要勾选安装,下载安装完后,Status状态下会出现Installed表示已安装。

    本文选择的是android 6.0版本,如上图。

    Extras下Android Support Repository是android系统的兼容库,必须安装,Google USB Driver也安装。

    勾选完后,单击右下角install package按钮,安装更新全部内容大概要2小时左右的时间,请耐心等待!

    下图是一位大神整理的SDK图片描述很详细,供参考,如下图所示:

     三、安装python

    本文选择3.6版本安装完后,进行环境变量配置,指定安装路径目录即可。

    在系统变量的path变量新增:D:ProgramsPythonPython36;D:ProgramsPythonPython36Scripts

    四、安装.net framework4.5

    安装appium之前,先安装.net framework4.5工具,否则安装appium会报错,直接傻瓜式安装即可。

    五、安装Node.js

    安装appium之前,需要安装Node工具,傻瓜式安装完后,在cmd窗口录入node -v查看版本号。

    六、安装appium-desktop

    由于AppiumForWindows一直没更新版本,版本过低,对android系统高版本不支持。由appium-desktop替代。

    安装appium-desktop桌面版比较简单,直接傻瓜式安装即可,安装完后桌面出现appium图标,点击打开如下图:

    如下命令行版本安装:

    1、安装appium 【可安装,也可不安装,前面已安装有appium-desktop桌面版】
    npm --registry http://registry.npm.taobao.org install appium -g
    验证:cmd输入appium

    2、安装appium-doctor检测环境
    npm --registry http://registry.npm.taobao.org install appium-doctor -g
    验证:cmd输入appium-doctor

     七、安装Appium-Python-Client

    直接在cmd窗口输入pip3 install Appium-Python-Client安装即可,这个工具是用来能够在客户端编写python脚本去实现操作android系统的APP测试。

    八、安装夜神模拟器

    直接傻瓜式安装即可,安装完后,可以直接在夜神摸拟器自带的夜神应用中心HD,搜索需要下载安装APP软件,或者也可以网上下载的apk包文件直接拖到夜神摸拟器窗口就可以实现自动安装app软件。如下图所示:

     到此为止,所有的该要安装工具都安装完后,接下来就可以配置,调试跑通起来。

    Android环境配置调试

    1、连接夜神摸拟器前,先在cmd窗口检测环境sdk和夜神摸拟器版本号是否一致性。否则会报错如下信息:
    adb server version(36) doesn’t match this client (40);killing…

    • 在cmd窗口输入adb查看版本号
    • 在cmd窗口进入夜神安装目录下D:Program FilesNoxin输入命令:nox_adb.exe connect 127.0.0.1:62001

    如夜神版本比SDK的adb的版本号低的话,如下解决办法:

    a、关掉夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
    b、找到SDK的目录和夜神模拟器的目录,将夜神模拟器目录下原本的adb.exe和nox_adb.exe修改文件名为adb_bak.exe和nox_adb_bak.exe,将SDK目录(D:android-sdkplatform-tools)下的adb.exe文件复制到夜神模拟器的目录(D:Program FilesNoxin)下,将从SDK目录复制过来的adb.exe放在夜神目录下,同时复制一份改名为nox_adb.exe。

    最后在cmd窗口进入夜神安装目录下D:Program FilesNoxin输入命令:nox_adb.exe connect 127.0.0.1:62001后,查看连接信息如下:

    如上图表示已经成功连接到夜神摸拟器。

    2、点击电脑桌面appium图标启动,点击Start Server按钮启动appium服务。如下图所示:

    点击放大镜按钮进入appium配置数据如下图所示:

    • platformName :Android 【这里是Android环境】
    • platformVersion:4.4.2   【在cmd窗口输入命令:adb shell getprop ro.build.version.release查看版本或者在夜神摸拟器系统信息菜单查看版本号】
    • deviceName:驱动名称  【在cmd窗口输入命令:adb devices查看名称】
    • appPackage:包名  【在cmd窗口输入命令:aapt dump badging D: est aobao.apk | findstr package(网上下载的taobao.apk文件)】
    • appActivity:启动栈  【在cmd窗口输入命令:aapt dump badging D: est aobao.apk | findstr launchable(网上下载的taobao.apk文件)】

    在D:android-sdkuild-tools28.0.3目录下的cmd窗口输入aapt dump badging D: est aobao.apk命令后,可以找到如下信息。

    package: name='com.taobao.taobao'
    launchable-activity: name='com.taobao.tao.welcom.Welcom'

    查找appPackage和appActivity方法有好多种,选其中一个方法就行了。还可下载的查看包名的apk工具拖到夜神摸拟器窗口安装后,可直接用查看包名工具来查看模拟器已安装所有的APP包名清单,如下图所示:

     点击appium界面的右下角“Start Session"打开如下界面,就可以看到连接到夜神摸拟器启动打开淘宝APP软件主界面,就可以定位元素控件写测试脚本了。

    如上图appium自带的可定位元素属性,值。另一种方法可用sdk自带的工具D:android-sdk ools目录下uiautomatorviewer.bat文件来定位元素,查看属性,值。打开后弹如下界面:

     3、接下来就可以编写测试脚本调试是否能跑通,如下图所示:

    方法一,使用appium工具定位元素:

    方法二,使用SDK自带的uiautomatorviewer工具定位元素如下图所示,前提条件必须关闭appium,否则会报错获取不到当前摸拟器的图像。

    通过以上可知控件的元素,就可以编写测试脚本,如下图所示:

    需要先启动appium服务,然后执行测试脚本,可通过夜神摸拟器查看当前自动化运行的淘宝APP界面操作测试。如果需要测试真机的话,将手机和电脑通过USB数据线连接,手机打开USB调试模式,USB的连接方式要选择设备文件管理选项。

    然后在cmd窗口输入adb devices查看是否连接成功并获取到驱动名。最后在测试脚本的驱动名称改为当前真机驱动名称,再执行测试脚本即可实现在真机跑。

    IOS环境搭建

     本文介绍搭建IOS的摸拟器和真机的appium环境,部署过程中各种报错遇到不少坑,关键xcode和ios系统、appium版本三者要对应起来,否则安装部署大多数是版本问题。如果在项目测试的话,最好在IOS系统电脑搭建IOS和android两套环境,这样一台机子就搞定了,在IOS搭建的android跟windows方法差不多,这里重点讲搭建IOS的appium环境。

     一、环境准备:

    需要安装的工具清单如下:

    1.jdk11.0.2 (64位)

    2.xcode:10.1  (下载对应的MACOS系统版本:https://developer.apple.com/download/more/

    3.python:3.6    (下载地址:https://www.python.org/)

    4.macOS:10.14.3

    5.Node.js:node-v10.15.1-x64  (下载地址:https://nodejs.org/en/download

    6.appium-desktop :1.8.2  (下载地址:https://github.com/appium/appium-desktop/releases)

    7.Appium-Python-Client:1.0.1

    • java安装

    先进入根目录输入vim ~/.bash_profile
    JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
    export JAVA_HOME

    export PATH=${JAVA_HOME}/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    重新引入生效:source ~/.bash_profile
    查看更改后的JAVA_HOME路径:echo $JAVA_HOME

    • brew安装

    brew是mac上一个软件管理工具,通过它可以在终端输入命令安装各种软件包
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    检查homebrew是否安装:brew -v

    • 检查git是否安装

     $ git --version
    git version 2.19.0

    • 安装carthage

     brew install carthage
    验证:carthage version,查看版本

    • 安装 libimobiledevice (真机测试必装)【(查看当前连接此电脑的设备中的信息、log,调试设备,git submodules的依赖,

    brew install -HEAD libimobiledevice
    验证:将真机连接在mac上,命令行输入idevice_id -l,如果出现该设备的udid,则说明配置成功能够正常识别了。

    查看真机的设备名字:idevicename -d
    查看所有的模拟器和真机:instruments -s devices

    • 安装 iOS-deploy (真机测试需要)【可以用来安装卸载ios应用,iOS10,真机必装】

    brew install ios-deploy

    • 安装xcode

     从App Store获取xcode的工具并安装

    • 安装node.js

    直接官网下载安装

    • 安装Appium-Python-Client

    pip3 install Appium-Python-Client

    • 安装appium-doctor

     npm install -g appium-doctor
    使用appium-doctor 检查Appium iOS环境环境:appium-doctor --ios
    如果出现opencv4nodejs、fbsimctl、applesimutils、ffmpeg、ios-webkit-debug-proxy失败信息,可通过如下手动安装即可:
    安装ffmpeg
    brew install ffmpeg
    brew tap facebook/fb and brew install fbsimctl --HEAD

    安装ios-webkit-debug-proxy
    brew install ios-webkit-debug-proxy

    安装opencv4nodejs:
    使用npm代替brew:
    brew install cmake
    npm install -g opencv4nodejs

    安装fbsimctl:
    brew tap facebook/fb
    brew install fbsimctl

    安装applesimutil:
    brew tap wix/brew
    brew install applesimutil

     二、Appium环境安装:

    安装WebDriverAgent(WDA)
    如果是模拟器测试,不需要安装WDA,如果用真机一定要安装WDA
    前提:电脑必须安装了Carthage
    注意,由于appium安装目录下自带的WebDriverAgent有BUG问题,需要从网上下载最新版本执行脚本。

     先进到用户目录下:

    cd ~
    
    git clone https://github.com/facebook/WebDriverAgent.git
    
    cd WebDriverAgent
    
    mkdir -p Resources/WebDriverAgent.bundle
    
    sh ./Scripts/bootstrap.sh
    然后进入appium-xcuitest-driver所在文件目录下:
    /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver下把自带的WebDriverAgent目录重命名为WebDriverAgent_bak。
    执行命令:ln -s ~/WebDriverAgent WebDriverAgent (其中~/WebDriverAgent是源地址,后面的是目标地址)
     
    三、编译WebDriverAgent
    进入目标文件/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent,双击WebDriverAgent.xcodeproj工程文件。
    1、编译WebDriverAgentLib
     
    2、编译WebDriverAgenRunner
     
    3、App ID要保持一致性。


    进入WebDriverAgent 文件夹:cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

    执行命令:xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test

    如果终端出现以下信息,表示编译 OK

     Testing failed:

        Early unexpected exit, operation never finished bootstrapping - no restart will be attempted
    ** TEST FAILED *

    这个时候iphone多了一个WebDriverAgentRunner的app,如下图所示:

    在手机通用-》描述文件设置信任证书,终端再重新执行xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=真机的udid' test进行验证环境。
    验证一下WDA是否运行成功,因为有些国产的iPhone设备通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上,终端输入:iproxy 8100 8100进行端口转发。
    浏览器输入:http://localhost:8100/status,返回一串json即证明成功
    真机命令行启动wda:
    控制台切换到wda的文件夹目录下,运行:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=(你的id) USE_PORT=8100 test(id填你自己的uid)
    执行:iproxy 8100 8100

    摸拟器的命令行启动wda:

    控制台运行:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination id=A2C61397-E627-422E-87D3-8745C3E4F927 USE_PORT=8100 test(id填使用的模拟器uid)
    到此为止,真机环境搭建完成,接下来就是可以配置appium信息,写测试脚本跑自动化了。

    四、安装IOS摸拟器
    打开已经安装好的xcode(位于/Applactions/Xcode),如图

    选择Create a new Xcode project,按下图操作:





    选择摸拟器:


    如果需要其它,还可点击Add Additional Simulators下载摸拟器版本。
    最后,点击左侧三角形运行,出现打开摸拟器,会多出test的app图标,如下图:


    如查看udid方法如下图左边的Devices是查看真机,右边的Simulators是查看摸拟器信息。还可通过命令instruments -s devices查看所有的真机和摸拟器。

     备注:在真机上是安装.ipa的包,在模拟器上是安装.app的包。

    这是两种不同的打包方法,也就是说从appstore这种渠道下载的.ipa是无法安装到模拟器上的,必须要找你们开发专门针对iOS模拟器打个模拟器的包,后缀是.app 。

    、APPiumDesktop的环境真机和摸拟器参数配置

    a、在真机上测试时,需要在AppiumDesktop新增udid、xcodeOrgld和xcodeSigningld等字段属性。xcodeOrgld是指开发者账号id,可在https://developer.apple.com/account的左侧的Memeber ship找到,或者在xcode账号管理里。

    如下图参考:

    b、摸拟器配置如下图所示:

     备注:如上图真机和摸拟器已经有安装好的被测app软件,可把参数app属性改为bundleId,此项相当于android的里面的app包名。如果想看app的bundleId,只需要安装了ideviceinstaller工具就可以了,然后执行 ideviceinstaller -l 就可以将手机安装的app列出。Appium每次运行,不安装APP,就在Capabilities增加参数属性noReset设置为True。

    如下图公用的Capability参数:

    其它更多的参数参考请进入:https://blog.csdn.net/ljl6158999/article/details/80594521

    、APPium代码启动

    参考如下图启动摸拟器执行用例脚本自动化测试示例代码:

    Appium工作原理

    1、appium是基于webdriver 协议,appium ios封装了apple的Instruments框架,用了里面的UIAutomation,Client是我们编写的 webdriver脚本,中间是appium启动server(默认监听 4723 端口 ),appium server调用instruments.js启动一个 socket server ,同时分出一个子进程运行instruments.app 将bootstrap.js(一个 UIAutomation 脚本)注入到 devices用于和外界进行交 ,最后 Bootstrap.js将执行的结果返回给appium server, appium server再将结果返回给appium client 。

    2、appium使用的是UIAutomator框架,我们在client客户端编写测试脚本运行,调用的是webdriver接口,appium server接收到我们client发送过来的命令去调用UIAutomator,把命令转换后去实现,Bootstrap将执行的结果返回给appium server ,最后由Appium server再将结果返回给client端。

  • 相关阅读:
    大数据平台的数据源
    大数据平台的数据采集
    kubernetes入门
    机器学习分类算法
    唱吧DevOps的落地,微服务CI/CD的范本技术解读
    JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎
    MySQL索引及查询优化总结 专题
    玩转spring boot——ajax跨域
    Linux Shell远程执行命令(命令行与脚本方式)
    Android ServiceConnection
  • 原文地址:https://www.cnblogs.com/peanut-HS/p/13719094.html
Copyright © 2011-2022 走看看