appium工具相关

一、appium基本介绍

1、appium 基本介绍
  1. 定义:appium 就是一款非常流行和好用的第三方工具,通过该工具我们可以配合 python 脚本实现 IOS / Android 多平台的APP 自动化测试。
  2. 作用:在编写测试脚本的PC机和运行 APP 的真机或设备之前充当一个 “中转翻译” 的角色,让真机可以理解和执行测试开发工程师编写的脚本,从而达到运行 APP 功能的效果。
2、appium 工作原理【理解】

appium 从名称来看是一个工具,但是它的工作过程会涉及到多款不同的工具组合,所以为了方便学习和理解。我们在此处将其分为三个部分:客户端 + 服务端 + 设备端,其中客户端我们可以理解为是我们编写脚本代码的地方,在我们课程就可以直白认为是 pycharm 。服务端就是我们就是负责接收客户端脚本的中间服务,设备端就是APP的载体,最终去运行具体的脚本代码,从而让APP去执行对应的动作

appium 是一款遵循webdriver 协议的CS架构,客户端只要能发送 Http 协议就可以将具体的数据传送到 服务端,此时服务端就会开启一个 4723端口来管理这个服务,当 appium 接收到客户端发送过来的数据之后会自动的进行解析。然后依据不同的设备系统平台往手机里注入 bootstarp.jar 或者 bootstarp.js 从而让手机APP可以去执行 客户端 发送过来的脚本命令。不论是哪种系统平台,客户端脚本执行完成之后就会将结果返回给 appium 服务端,然后服务端会将结果再返回给客户端

  1. 客户端:可以是不同编程语言的客户端,在这里书写具体的脚本代码
  2. 服务端:依据 webdriver 协议,接收客户端发送过来满足restful 接口的请求
  3. 设备端:IOS / android 平台,服务端会注入对应的框架去执行客户端的脚本
3、appium 优点分析
  1. 跨平台:直白的说跨平台对于我们来说就是 appium 不仅可以测试 IOS 也可以测试 android ,之所以能实现这个操作就是因为 appium 在接收到客户端的请求之后,可以自动调用内部已经集成好的对应平台自动化测试框架,ios 会调用UIAutomation ,然后在 ios 里注入 bootstrap.js 。android 会调用 UIAutomator ,然后在 android 里注入 bootstrap.jar 。然后各自平台上的代码就会各处执行
  2. 多脚本:因为 appium 是基于 webdriver 协议的,所以本质上走的就是 http 协议,因此与外在表现的软件工具没有任何关系。不论采用何种客户端来编写脚本,我们只需要安装对应语言的webdriver 库,然后给服务端发送 http 请求。例如在客户端可以接收 java 、python、 ruby、 php 、 javascript .....

二、appium框架环境安装

1、环境软件准备
  1. 客户端:
    1. pycharm 编辑器: 用于编写具体的 python 脚本代码
    2. pycharm 解析器:解析 python 代码所必须的环境( 不建议执行默认的安装路径 ,建议使用 python3.6)
    3. python 语言使用的webdriver 库:因为原生的 webdriver 库是专门为web端设计的,所以 appium 开发者针对于不同的语言为不同的脚本语言专门设计了对应的 webdriver 库。【 appium-python-client 】
  2. 服务端:
    1. node.js : 因为 appium 服务器软件底层是采用 nodejs 使用的,所以如果想要运行服务端,那么就需要安装 Nodejs环境
    2. appium 服务端桌面版:我们需要开启一个服务用来管理客户端发来的请求,所以我们需要安装一款服务器桌面版软件。
  3. 设备端:
    1. 真机设备:具体的真机设备
    2. 雷神模拟器:可以模拟安卓设备的软件
2、appium-python-client 安装
  1. 在线安装:

    • 执行 pip install appium-python-client

    • python 第三方库下载地址:PyPI · The Python Package Index

    • 安装和验证操作:

  2. 本地安装:

    • 在对应的 python 第三方库集合里下载对应版本的 appium-python-client

    • 执行 pip install 本地解压包所在路径

    3、nodejs 安装
    1. 下载对应的 Nodejs 安装包( 建议v6.0 版本之上 )
    2. 执行常规的下一步安装( 放置于自已习惯的目录下 )
    4、安装 appium服务 桌面版
    • 下载对应的 appium 桌面版本
    • 执行安装过程

三、appium桌面使用

一、appium 框架体验

使用 appium 的核心目的就是让客户端的脚本可以在手机设备上去运行,所以我们首先需要做的事情就是建立客户端与服务端之间的连接。此时我们可以先通过appium UI 界面工具来连接客户端

  1. 启动雷神模拟器

  2. 使用 adb 连接模拟器设备

  3. 启动 appium 桌面版服务

  4. 在 appium 桌面版中进行具体的参数设置

    https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md 【desired capability github 仓库地址】

四、appium+python使用

一、新建 python 项目

我们当前课程讲解的是 python 自动化测试,所以我们需要新建 python 项目来存放我们的脚本代码,需要处理的是我们之前安装过一个 appium-python-client 的webdriver 库,这个库文件被我们使用 pip install 的方式安装在了自已本地的python 解析器当中。因此在新建 python 项目的时候我们需要将对应的python 解析器指向本地的python.exe ,不然pycharm 会自动生成一个虚拟的解析器依赖,但是这个虚拟的依赖里是没有我安装的 webdriver 库

  1. 打开 pycharm

  2. 新建具体的python 项目,然后设置对应的配置

    二、书写 python + appium 自动化初始化代码
    # -*- coding=utf-8 -*-
    # 导入python需要的 webdriver 库
    from appium import webdriver# 定义一个空字典来存放具体的配置参数
    desired_caps = dict()# 书写具体的参数
    desired_caps["platformName"] = "android"  # 当前的系统平台名称
    desired_caps["platformVersion"] = "5.1.1"  # 当前连接设备的 android 版本
    desired_caps["deviceName"] = "emulator-5554" # 当前已连接设备的名称
    desired_caps["appPackage"] = "com.android.settings"  # 被测试 APP 的包名
    desired_caps["appActivity"] = ".Settings" # 被测试 APP 的启动名# 获取对应的连接
    driver  = webdriver.Remote( "http://localhost:4723/wd/hub",desired_caps )
    

    执行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/288834.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【matlab】绘制横状双组渐变柱状图

【matlab】绘制横状双组渐变柱状图

Open3D 最小二乘拟合平面(直接求解法)

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫自重。 一、算法原理 平面方程的一般表达式为: A x + B y + C z

JDK bug:ciObjectFactory::create_new_metadata:原因完全解析

文章目录 1、问题2.详细日志2.关键日志3.结论4.JDK:bug最终bug链接: 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 服务不通,接口404,查看日志有一下截图,还有一个更详细的日志 2.详细日志 # #…

最详细手把手教你安装 Vivado2017.4

软件下载 官网可下载各个版本 百度网盘链接 Vivado2017.4 License 软件安装 解压缩安装包,双击运行安装程序 xsetup.exe: 忽略软件更新,点击 Continue: 点击 Next: 全部勾选 I Agree,点击 Next&#x…

【软件工程】软件工程复习题库2023

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 SpringCloud MybatisPlus JVM 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 软件工程复习题库 一、选择题二、填空题三、判断题四…

LDO的工作原理

LDO,全称是低压差线性稳压器。LDO使用的是在线性区域内运行的晶体管或者场效应管。通过调节晶体管或场效应管两端的电压,产生经过调整过的输出电压。 但仅能使用在降压应用中,也就是输出电压必须小于输入电压。 LDO内部基本都是由4大部件构成…

原子学习笔记3——使用tslib库

一、tslib介绍 tslib 是专门为触摸屏设备所开发的 Linux 应用层函数库,并且是开源。 tslib 为触摸屏驱动和应用层之间的适配层,它把应用程序中读取触摸屏 struct input_event 类型数据(这是输入设备上报给应用层的原始数据)并进行…

C#二甲医院实验室信息系统源码

医院实验室信息系统简称(Hospitallaboratoryinformationsystem),也可以称作实验室(检验科)信息系统或者LIS系统。 LIS定义 其主要功能是将检验的实验仪器传出的检验数据经分析后,自动生成打印报告,通过网络存储在数据…

python爬虫进阶篇:利用Scrapy爬取同花顺个股行情并发送邮件通知

一、前言 上篇笔记我记录了scrapy的环境搭建和项目创建和第一次demo测试。本篇我们来结合现实场景利用scrapy给我们带来便利。 有炒股或者其它理财产品的朋友经常会关心每日的个股走势,如果结合爬虫进行实时通知自己,并根据自己预想的行情进行邮件通知&…

文件操作入门指南

目录 一、为什么使用文件 二、什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 三、文件的打开和关闭 3.1 文件指针 3.2 文件的打开和关闭 四、文件的顺序读写 ​编辑 🌻深入理解 “流”: 🍂文件的顺序读写函数介绍: …

每日分享,以圣诞节为题的诗词

圣诞节即将来临,相信大家都会在朋友圈表达一下自己的情感,不管大家以前是怎么表达的,今天小编给你分享几首以圣诞节为题的几首诗,喜欢的朋友可以自取,想要更多免费的诗词,请自行百度或小程序搜索&#xff1…

java并发-ConcurrentHashMap 在Java7 和 8 的区别

文章目录 1.Java 7 版本的 ConcurrentHashMap2.Java 8 版本的 ConcurrentHashMap3.分析 Java 8 版本的 ConcurrentHashMap 的重要源码3.1.Node 节点3.2.put 方法源码分析3.3.get 方法源码分析 4.对比 Java7 和 Java8 的异同和优缺点4.1.并发度4.2.保证并发安全的原理4.3.遇到 H…