APP自动化测试所需要的环境

以下是进行app自动化测试前需要准备的环境清单:

  • 手机
  • appnium client
  • appnium server
  • jdk
  • android sdk

APP自动化测试环境与web自动化测试环境的比较

web自动化测试中所需要准备的环境如下:

  • selenium client。也就是python中写selenium代码所需的开发环境
  • selenium server。也就是webserver,根据浏览器不同又分ChromeDriver、FirefoxDriver、IEDriver等
  • 浏览器。又分为谷歌浏览器、火狐浏览器、IE浏览器等

APP自动化测试所需要准备的环境如下:

  • appnium client。也就是python中写appnium代码所需的开发环境。与selenium client相对应
  • appnium server。由于appnium同时支持ios和Android,所以只根据工作方式的不同分为桌面程序和命令行程序。与selenium server相对应
  • 手机。分为真机和模拟器,根据设备的不同又分为安卓和苹果。与浏览器相对应

环境准备

手机

真机

真机也就是真实的手机,在测试时需要开启开发者模式。
安卓端的开发者模式一般在关于手机-Android版本中点击多次,弹出一个Android版本的画面即可开启开发者模式:


而ios上开启开发者模式就比较麻烦些,不仅要在手机端进行设置,还需要一个开发者账号,而账号是需要每年交一笔钱的。

模拟器

现在市场上的手机模拟器一般是用来打手游的居多。比较出名的模拟器有以下几款:

  • 雷电
  • 夜神
  • 逍遥
  • genymotion(国外的)
    这里一般推荐雷电模拟器,另外两款模拟器在程序目录下自带了自己的adb,需要手动把Android sdk中的adb替换上去,不然在adb上执行adb devices时会出现多个设备;而雷电模拟器在执行adb devices时只会出现一个设备。
    在雷电模拟器安装好之后,需要查看设置是否正确(一般保持默认的就行):

两者比较

真机与模拟器相比较,更贴近真实的环境,测试效果也是最完美的。因为模拟器毕竟在电脑上面运行的程序,所以本质上还是用着电脑端CPU的wintel的架构(分为x86和x64);而手机的架构与电脑架构完全不同,它的CPU是分为ARM、联发科等架构的,所以模拟器并不能完全代替手机进行测试,但如果公司没有真机资源的条件下,只能使用模拟器进行测试。

appnium client

appnium client的安装是所有环境准备中最简单的,只需要执行:pip install Appium-Python-Client即可。

appnium server

appnium的服务端根据工作方式不同又分为桌面程序及命令行工具。这里一般推荐使用桌面程序,因为它的功能比命令行工具要丰富些。

桌面程序

下载

进入appnium官网提供的github下载地址:
https://github.com/appium/appium/

由于高版本容易出现问题,所以这里推荐使用1.13版本:
https://github.com/appium/appium-desktop/releases/tag/v1.13.0

安装

安装时需要注意以下两点:

  • 需选择仅为自己安装。不然到时执行时可能会出现权限相关问题:
  • 没得指定安装路径。所以安装完成后需要记住安装路径。一般放在用户目录下的AppData\Local\Programs\Appium下。

基本设置

打开appium,可进行一些基本的设置,一般只需要设置红色框的这4个配置就ok了:

运行

点击Start Server,弹出如下信息,即证明安装成功:

命令行工具

appnium server的命令行程序由于是用JavaScript写的,所以需要安装js的环境:Nodejs

Nodejs安装

进入官网:http://nodejs.cn/

如果安装的是msi,则安装完毕后会自动导入nodejs的路径到Path变量中:

如果是选择其他的进行安装而没有自动导入环境变量,需要手动设置。
环境变量没问题之后,打开cmd输入node --version,弹出版本号则表明安装成功:

如果提示不是内部命令,则可尝试重启cmd再执行。

appium命令行安装

执行:npm install -g appium即可进行安装:

端口占用

appium命令行端口号默认为4723,而appium桌面程序默认端口也为4723,所以为了两个端口号不冲突,需更改下命令行端口号或桌面程序端口号。命令行端口号更改命令为:appium -p 指定端口号

JDK

为什么要装JDK呢?因为安卓系统就是JAVA写的,app除了web应用之外,也一般都是java写的,需要JAVA的环境运行。
由于jdk官网下载较慢且很麻烦(需要登录),所以这里提供华为的jdk镜像下载地址:
https://repo.huaweicloud.com/java/jdk/
jdk安装这里就不再详细赘述了。需注意以下两点即可:

  • 必须安装1.8以上的64位的版本,不然后面测试可能会出错:
  • 配置环境变量。JAVA_HOME与Path。

android SDK

下载

android SDK官方下载地址:
https://developer.android.google.cn/studio/

环境变量设置

  • ANDROID_HOME
    1.在系统变量新建:ANDROID_HOME,变量值为sdk所在路径:

  • Path
    Path添加两个变量:%ANDROID_HOME%\tools和%ANDROID_HOME%\platform-tools:

    配置好环境变量后,在cmd中执行:adb,出现如下信息即安装成功:

查找手机

打开模拟器或连接手机

这里我们打开雷电模拟器:

adb devices

在cmd中输入adb devices,检测到手机设备:

第一个demo

从appium包中导入webdriver,然后通过webdriver的Remote来初始化设备。从这里我们可以看出appium的初始化手机设备与selenium初始化浏览器是相似的,这是因为appium其实是继承selenium的基本类,然后在上面拓展自己的代码。

from appium import webdriverdriver = webdriver.Remote()

接下来我们看下Remote类中要传的参数:

    def __init__(self, command_executor: str = 'http://127.0.0.1:4444/wd/hub',desired_capabilities: Optional[Dict] = None, browser_profile: str = None, proxy: str = None, keep_alive: bool = True, direct_connection: bool = False):super().__init__(AppiumConnection(command_executor, keep_alive=keep_alive),desired_capabilities,browser_profile,proxy)

这里主要要传两个参数:command_executor及desired_capabilities。command_executor是设置appium server的url,注意要与appium server端的IP和port相对应:

desired_capabilities是一个列表,传入测试所需要的一些环境参数。以下是最主要的几个参数:

  • platformName:平台名称,是Android还是Ios

  • deviceName:设备名称,与adb devices中的名称相对应

  • app:app所在路径。这里可以填写本地路径,也可填写网上的url路径。

执行前得先打开appium server及模拟器或连接真机;执行代码后会在appium server端打印日志信息。如下即为执行成功:

在模拟器上也打开了应用:

APP自动化基础之环境准备相关推荐

  1. APP自动化基础之appium

    appium介绍 什么是appium? (官方)appium是一个开源的测试自动化框架,可以与原生的.混合的和移动的web应用程序一起使用.它使用webDriver协议驱动ios.android.wi ...

  2. APP自动化基础之元素定位

    mobileby 在开始讲元素定位的方式时,我们先来看下appium中元素定位的相关模块:mobileby.py: 在这里可以看到,MobileBy这个类继承了selenium中的元素定位的类:By, ...

  3. python+appium手机APP自动化基础篇3-找元素定位(anroid)

    1. 定位工具 前言,在环境搭建已经安装anroid-sdk,里面就自带有元素定位的工具.找到uiautomatorviewer.bat文件,位置在D:\android-sdk-windows\too ...

  4. Java自动化测试(app自动化环境搭建 31)

    Appium 官网:http://appium.io/ github:https://github.com/appium/appium Appium is an open source test au ...

  5. [facebook-wda]搭建iOS App自动化环境

    搭建iOS App自动化环境 一.测试结构介绍 手机端的WDA Runner(WebDriverAgent)类似于appium测试框架中的 UIAutomator Server,将从客户端接收到的控制 ...

  6. 一整套的软件测试学习视频、包括web自动化、APP自动化、接口自动化,以及python语言,基础知识讲解和项目实践,学习后可收获python、web/APP/接口自动化测试。

    买的自动化测试学习视频,学完后对自动化测试能力提升了不少,觉得老师讲的很不错,分享给有需要学习的人学习 一.web自动化 百度网盘链接:https://pan.baidu.com/s/1e2fctYu ...

  7. APP自动化原理+环境搭建

    3.1 APP原理 1.客户端运行脚本的时候,调用任何的appiumAPI,都会向Appium Server端post一条HTTP请求 2.当开启appium服务器的同时就开启了监听端口,Appium ...

  8. Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)

    ** 文末有小礼物! ** 希望此次分享能够帮助小伙伴们,按照当前文章可自主搭建APP自动化测试环境和实现计算机控制模拟器APP执行操作! 环境依赖(jdk.sdk) 安装jdk(地址):jdk下载地 ...

  9. Python+Appium APP自动化环境搭建

    Python+Appium之APP自动化环境搭建 1.安装node.js (1)一直点击下一步即可 (2)配置环境变量 (3)输入npm --version 安装成功 2.安装appium-docto ...

最新文章

  1. 在演唱过后的飞秋代码
  2. 超越java jb51_.net mvc超过了最大请求长度的解决方法
  3. asp.net mvc源码分析-Action篇 Action的执行
  4. Windows API ——GetLogicalDriveStrings——获取逻辑驱动器
  5. 光纤非线性效应对光OFDM信号的影响研究
  6. net.sf.json与fastjson两种jar包的使用
  7. php可以运行js代码吗,php可以运行js代码吗?
  8. Java方法重载中返回值的问题
  9. 拼音加加在双拼状态下在输入数字后的标点不正常的解决方式
  10. void函数使用return
  11. hive sql alter table 修改表操作小记
  12. IPhone4S自定义铃声
  13. Jenkins之分布式部署及构建(master-slaver)
  14. 参考汉语拼音,越南语的元音和辅音如何发音
  15. 区块链技术中隐私计算的技术特点
  16. 使用Selenium IDE进行自动化测试
  17. 互联网晚报 | 05月16日 星期一 | 上海:6月1日至6月中下旬全面恢复正常生产生活;微软IE浏览器将于6月16日正式退役...
  18. Java基础学习:尚硅谷项目三 开发团队调度软件
  19. 使用crow E-R图描述数据库关系
  20. set集合判断集合中是否有无元素_Python基础学习笔记(五)集合与字典

热门文章

  1. CSMA/CA载波侦听多路访问及冲突避免协议
  2. CSS3实现绚丽的图片切换效果
  3. 三国杀ol服务器维护时间 11月6日,[OL][公告] 《三国杀OL》11月6日版本更新公告 九区归一 合服启动!...
  4. 小程序 onReachBottom 上拉加载事件失效
  5. python实现——根据txt文件进行文件复制并重命名
  6. 用BCV备份Oracle数据库
  7. fullcalendar显示出勤日_FullCalendar 日历插件中文说明文档
  8. 华为申请注册盘古大模型商标;京东推出言犀大模型,率先布局产业应用
  9. C语言详解系列——循环语句详解(2)for语句的语法结构
  10. 创建文件的三种方式和一些操作方法