安装配置Appium环境

安装appium

安装appium有两种方式,一种是通过命令行终端方式,一种是Appium Desktop。这里推荐使用Appium Desktop方式,只需下载下来安装就可以啦。Appium Desktop下载

安装驱动

根据被测应用平台选择不同的驱动,这里在Xcode9上测试iOS,选择XCUITest Driver。这是实现自动化测试很重要的一步。驱动其实也集成在了Appium Desktop中,不需单独安装,但运行环境需要搭好。

1.iOS设备系统必须是iOS9.3及以上
2.macOS系统必须是10.11或10.12
3.Xcode版本为Xcode8及以上
4.Appium版本为1.6及以上
5.安装所需依赖库,包括:

a.node (brew install node)
b.npm (brew install npm)
c.carthage (brew install carthage)
d.libimobiledevice(真机测试需要)(brew install libimobiledevice)
e.ios-deploy(真机测试需要)(brew install ios-deploy)
确定所有依赖是否安装成功,可通过appium-doctor验证,首先安装appium-doctor(npm install -g appium-doctor),然后在终端运行appium-doctor,如图所示,都是打钩状态就证明环境正常(java相关环境不需要配置。

更新Appium中的WebDriverAgent

网上很多是到WebDriverAgent下载最新版本的WebDriverAgent,然后配置替换Appium路径下的WebDriverAgent(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/),但真机测试一启动导致App反复重启。
这里是不用替换,直接用appium自带的WebDriverAgent,进行相关配置即可。

  • cd 进入appium的WebDriverAgent文件,路径:(/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/)
  • 执行 ./Scripts/bootstrap.sh
  • 直接用Xcode打开WebDriverAgent.xcodepro文件

    • 配置WebDriverAgentLib和WebDriverAgentRunner的证书
    • 连接并选择自己的iOS设备,然后按Cmd+U,或是点击Product->Test
    • 运行成功时,在Xcode控制台应该可以打印出一个Ip地址和端口号
    • 在网址上输入http://192.168.2.101:8100/status,如果网页显示了一些json格式的数据,说明运行成功。

最后一步这里在电脑浏览器访问真机ip时,一直报超时。在网上找到了答案,说国产机通过手机的IP和端口还不能访问,此时需要将手机的端口转发到Mac上。

安装iproxy工具,用法非常简单 iproxy <local port><remote port> [udid]。端口转发后,浏览器访问 http://localhost:8100/status会看到一个json字符串,即说明WebDriverAgent安装成功

启动Appium Desktop,开始测试!

  • 运行Appium-Desktop

  • 开启start server

  • 点击start new session并且在Desired Capabilities 中输入相关的参数后点击Start Session

  • 运行成功后,会弹出一个控制界面,在该界面中可以控制手机上正在运行的程序

利用Appium-Python-Client进行iOS的自动化测试

1.首先在终端安装,python install Appium-Python-Client,如果是python3,就用python3 install Appium-Python-Client
2.在git上下载测试文件测试demo
3.用下载的demo配置好证书,直接安装到手机上
4.找到demo下文件下的appiumSimpleDemo.py,编辑里面的参数udid,和bundleid,里面的app参数如果已经把demo安装到手机的话,可以注释掉;省得去编译测试demo;
5.执行demo下文件下的appiumSimpleDemo.py,终端执行python appiumSimpleDemo.py(或python3 appiumSimpleDemo.py),就可以看到真机开始自动执行测试代码

Appium自动化测试实践的更多相关文章

  1. 记安卓appium自动化测试实践

    一.软件安装 1. 安装node.js,安装路径D:\Program Files\nodejs\ 可以在官网下载https://nodejs.org/zh-cn/download/,版本号为node- ...

  2. appium+java(五)微信小程序自动化测试实践

    前言: 上一篇<appium+java(四)微信公众号自动化测试实践>中,尝试使用appium实现微信公众号自动化测试,接着尝试小程序自动化,以学院小程序为例 准备工作 1.java-cl ...

  3. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  4. Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)

    简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...

  5. Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群 ...

  6. Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)

    1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...

  7. Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)

    1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...

  8. 基于图像识别框架Airtest的Windows项目自动化测试实践

    写在前面 上一篇分享了<基于Sikuli GUI图像识别框架的PC客户端自动化测试实践>,但sikuli看起来怎么都像是上个世纪的界面风格,且功能过于简陋.而同样基于图像识别框架的Airt ...

  9. Appium学习实践(四)结构优化

    随着我们测试脚本中的用例越来越多,我们不可能将所有的用例都放在同一个脚本中,所以我们需要优化我们的结构.将脚本放在一个文件夹中,再通过别的脚本来执行脚本.这样,我们也可以有选择性的执行我们的脚本 先来 ...

随机推荐

  1. python脚本实现自动安装nginx

    本文python脚本实现自动化安装是源码安装.实现任意版本安装,默认版本是1.13.11,也可以更改默认版本,手动配置安装目录. 环境:Ubuntu16.04,python3以上版本,Ubuntu自带 ...

  2. drf中的请求模块和渲染模块

    请求模块:request对象 APIView request.py # 在rest_framework.request.Request实例化方法中 self._request = request 将原 ...

  3. HttpServletReqeust、HttpServletResponse

    HttpServletRequest:一次来自客户端的请求的相关信息    请求行        request.getMethod()  获取http请求方式        request.getR ...

  4. 2019-2020-1 20199324《Linux内核原理与分析》第六周作业

    第五章 系统调用的三层机制(下) 1.给MenuOS增加命令 进入Linuxkernel目录下,强制删除当前menu目录,再重新克隆一个新版本的menu 进入menu,运行make roofts脚本就 ...

  5. [LC] 285. Inorder Successor in BST

    Given a binary search tree and a node in it, find the in-order successor of that node in the BST. Th ...

  6. 关于jQuery中toggle参数callback函数提前执行问题

    通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法. 显示被隐藏的元素,并隐藏已显示的元素: $(selector).toggle(speed,call ...

  7. day11-random模块-随机

    import random # 一.随机小数: print(random.random()) # 0.848972270116501结果是0-1之间的随机小数 print(random.uniform ...

  8. 《C程序设计语言》练习1-5

    #include<stdio.h> /*修改温度转换程序,要求以逆序(即按照从300度到0度的顺序)打印温度转换表*/ main () { float fahr,celsius; int ...

  9. 3dmax2018卸载/安装失败/如何彻底卸载清除干净3dmax2018注册表和文件的方法

    3dmax2018提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dmax2018失败提示3dmax2018安装未完成,某些产品无法安装,也有时候想重新安装3 ...

  10. MAC上安装maven以及配置Intellij IDEA

    大前提:java环境已经配置好 maven是对于java工程的管理 一.maven安装到mac 1.首先,maven下载地址http://maven.apache.org/download.cgi 点 ...