Appium 自动化自学篇 —— 初识Appium自动化!

这篇具有很好参考价值的文章主要介绍了Appium 自动化自学篇 —— 初识Appium自动化!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Appium 简介

随着移动终端的普及,手机应用越来越多,也越来越重要。而作为测试 的我们也要与时俱进,努力学习手机 App 的相关测试,文章将介绍手机自动化测试框架 Appium 。 那究竟什么是 Appium 呢? 接下来我们一起来学习Python+Selenium 做自动化测试。

Appium 概述

(1) 什么是 Appium

  • appium 是开源的移动端自动化测试框架;
  • appium 可以测试原生的、混合的、以及移动端的 web 项目;
  • appium 可以测试 ios,android 应用(当然了,还有 firefox os);
  • appium 是跨平台的,可以用在 osx,windows 以及 linux 桌面系统上。

(2) Appium 的哲学

  • 不需要为了自动化而且重新编译或修改测试 app;
  • 不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试;
  • 不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的 api; 也就是说 webdriver 协议里的 api 已经够好了,拿来改进一下就可以了;
  • 移动端自动化测试应该是开源的。

(3) Appium 设计思想

  • 首先,为了能够实现哲学里描述的第 2 条,也就是不应该让移动端自动化测试限定在某种语言和某个具体的框架;也就是说任何人都可以使用自己最熟悉最顺手的语言以及框架来做移动端自动化测试; appium 选择了client-server 的设计模式。只要 client 能够发送 http 请求给 server,那么的话 client 用什么语言来实现都是可以的,这就是 appium 及 webdriver 如何做到支持多语言的;
  • 其次,为了能够实现不要为了移动端的自动化测试而重新发明轮子,重新写一套惊天动地的 api;也就是说 webdriver 协议里的 api 已经够好了,拿来改进一下就可以了;这个思想,appium 扩展了 webdriver 的协议,没有自己重新去实现一套。这样的好处是以前的 webdriver api 能够直接被继承过来, 以前的 webdriver 各种语言的 binding 都可以拿来就用,省去了为每种语言开发一个 client 的工作量;
  • 最后 appium 当然是开源的,这也实现了哲学思想里的最后一点。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

(4) Appium 优点

  • 支持语言:java ,python,node.js,c#,php,perl,ruby;
  • 支持 android 和 ios;
  • 支持跨应用。

(5) Appium 特点

  • 跨架构,native hybrid webview
  • 跨设备,android ios firefoxos
  • 跨语言,java python ruby nodejs php
  • 跨 app, 可以在多个 app 之间交互
  • 不依赖源代码
  • 不限制测试框架和平台

(6) Appium 架构

  • Android 上使用了 instrumentation 和 uiautomator 两套技术
  • Appium 在 4.1 以上使用 uiautomator
  • 4.1 以下使用 selendroid
  • iOS 使用 uiautomation
  • 支持 firefox

Appium 在 IOS 上的架构:

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

Appium 在 Andiord 上的架构:

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

Appium 基本概念

(1) Client/Server Architecture

appium 的核心其实是一个暴露了一系列 REST API 的 server。这个 server 的功能其实很简单:监听一个端口,然后接收由 client 发送来的 command。翻译这些 command,把这些 command 转成移动设备可以理解的形式发送给移动设备,然后移动设备执行完这些 command 后把执行结果返回给 appium server,appium server 再把执行结果返回给 client。

在这里 client 其实就是发起 command 的设备,一般来说就是我们代码执行的机器,执行 appium 测试代码的机器。狭义点理解,可以把 client 理解成是代码,这些代码可以是 java/ruby/python/js 的,只要它实现了 webdriver 标准协议就可以。这样的设计思想带来了一些好处:

  • 可以带来多语言的支持;
  • 可以把 server 放在任意机器上,哪怕是云服务器都可以;(是的,appium 和 webdriver 天生适合云测试)。

(2) Session

session 就是一个会话,在 webdriver/appium,你的所有工作永远都是在session start 后才可以进行的。一般来说,通过 POST /session 这个 URL,然后传入 Desired Capabilities 就可以开启 session 了。

开启 session 后,会返回一个全局唯一的 session id,以后几乎所有的请求都必须带上这个 session id,因为这个 seesion id 代表了你所打开的浏览器或者是移动设备的模拟器。

进一步思考一下,由于 session id 是全局唯一,那么在同一台机器上启动多个 session 就变成了可能,这也就是 selenium gird 所依赖的具体理论根据。

(3) Desired Capabilities

Desired Capabilities 携带了一些配置信息。从本质上讲,这个东东是key-value 形式的对象。你可以理解成是 java 里的 map,python 里的字典,ruby 里的 hash 以及 js 里的 json 对象。实际上 Desired Capabilities 在传输时就是json 对象。

Desired Capabilities 最重要的作用是告诉 server 本次测试的上下文。这次是要进行浏览器测试还是移动端测试?如果是移动端测试的话是测试android 还是 ios,如果测试 android 的话那么我们要测试哪个 app? server 的这些疑问 Desired Capabilities 都必须给予解答,否则 server 不买账,自然就无法完成移动 app 或者是浏览器的启动。

(4) Appium Server

Appium Server 就是每次我们在命令行用 appium 命令打开的东西。

(5) Appium Clients

由于原生的 webdriver api 是为 web 端设计的,因此在移动端用起来会有点不伦不类。 appium 官方提供了一套 appium client , 涵盖多种语言ruby/java/python,在我看来 ruby client 是实现最好的。在测试的时候,一般要使用这些 client 库去替换原生的 webdriver 库。这实际上不是替换,算是client 对原生 webdriver 进行了一些移动端的扩展,加入了一些方便的方法, 比如 swipe 之类,appium client 让我们可以更方便的写出可读性更好的测试用例。

(6) Appium.app, Appium.exe

appium server 的 GUI 版本,前者用在 osx 上,后者是 windows 上。可视化、不需要装 node,可以看 app 的 UI 结构是这个东东的卖点。

Appium 与 Selenium

  • Selenium2 又叫 Selenium Webdriver
  • Appium Clients 扩展了 Selenium 的 WebDriver API
  • Appium Server 实现了 Selenium 中存在的大 部分方法,它属于 Selenium 的第三方 webdriver

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

Appium 自动化自学篇 —— 初识Appium自动化!,软件测试,测试工程师,自动化测试,appium,单元测试,测试工具,自动化测试,软件测试,测试工程师

Appium 环境搭建

学习 appium 最大的难处之一在于环境的安装,安装流程比较繁琐,安装的工具和步骤也较多,以下是基于 Windows 系统下的 Android 手机端的安装流程。就像我们在用 Selenium 进行 web 自动化测试的时候一样,我们需要一个浏览器来执行测试脚本。那么移动端自动化测试,我们同样需要一部 Android 手机(手机需要链接电脑)或者 Android 模拟器。

下节我们将为给为带来Appium的环境搭建与JDK的安装与运用。

END今天的分享就到此结束了!文章来源地址https://www.toymoban.com/news/detail-757853.html

到了这里,关于Appium 自动化自学篇 —— 初识Appium自动化!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 软件测试 -- 自动化测试(Selenium)

            在这里记录一下  自动化测试 -- Selenium 的一些基础知识点,只记录方法。 Selenium 浏览器操作 Selenium 元素定位(包含 Web 表单) findElement 和 findElements         findElement 和 findElements 都可以用于定位元素,它们都需要传入一个 By 类型,但是他们的返回值不同,区

    2024年04月22日
    浏览(61)
  • 【软件测试】自动化测试selenium

    目录 一、什么是自动化测试 二、Selenium介绍 1、Selenium是什么 2、Selenium的原理 三、了解Selenium的常用API 1、webDriver API   1.1、元素定位 1.1.1、CSS选择器 1.1.2、Xpath元素定位 1.1.3、面试题  1.2、操作测试对象 1.3、添加等待  1.4、打印信息  1.5、浏览器的操作 1.6、键盘事件 1.7、鼠

    2024年01月17日
    浏览(59)
  • 软件自动化测试入门攻略

    京东购买:https://item.jd.com/14351742.html   \\\"《软件自动化测试入门攻略》一书是作者花费了近两年时间完成的一本大作,专门为入 门、入行人员编写,无论你是初学者,还是想转型、转专业学习软件自动化测试,本书 都适合你。书中充分考虑到新手入门自动化测试的特点,从工

    2024年01月17日
    浏览(50)
  • 软件测试(五)自动化 selenium

    自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器(代码)执行的过程。(简单而言其实就是降低重复性的工作(大部分是Python)) 自动化测试的具体实现,应该是包含下

    2024年02月08日
    浏览(62)
  • 软件测试(功能、接口、性能、自动化)详解

    测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。 黑盒测试常见测试用例编写方法 1、等价类 选取少数有代表性的数据,这一类

    2024年02月13日
    浏览(62)
  • 软件测试自动化面试题(含答案)

    目录 1.如何把自动化测试在公司中实施并推广起来的? 2.自动化测试用例如何编写? 3.自动化测试发现BUG多吗? 4.在上一家公司做自动化测试用的什么框架? 5.什么是持续集成?它有什么用? UI自动化 1.自动化中有哪三类等待?他们有什么特点? 2.selenium*中的定位方式 3.xpath和

    2023年04月08日
    浏览(73)
  • 软件测试之单元测试自动化入门基础

    所谓的单元测试(Unit Test)是根据特定的输入数据,针对程序代码中的最小实体单元的输入输出的正确性进行验证测试的过程。所谓的最小实体单元就是组织项目代码的最基本代码结构: 函数,类,模块 等。在Python中比较知名的单元测试模块: unittest pytest doctest nose 所谓的测试

    2024年02月03日
    浏览(46)
  • 【软件测试】基于博客系统的自动化测试

    目录 1.我的博客系统链接 2.使用selenium对博客系统进行自动化测试 1.引入依赖 2.创建公共类 3.创建测试套件类 4.测试登陆界面 5. 测试博客列表页 6.测试写博客页面 7.测试删除博客 8.最终运行结果 用户登录 创建一个maven项目,在pop.xml中引入以下依赖 因为对每一个页面进行测试

    2024年02月15日
    浏览(61)
  • 【软件测试】python+selenium自动化测试

    一、什么是自动化测试 自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最 后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 单元测试 java的单元测试框架是Junit,在这里不再赘述。 接口自动化 接口测试就是

    2023年04月09日
    浏览(88)
  • 软件测试 自动化测试selenium API

    1.1.1 CSS 选择器定位元素 CSS 选择器 就是一个语法 浏览器 (ctrl + f)可以进行选择 类选择器:.class值(.s_ipt) id 选择器:#id值(#kw) 父类选择器 子类选择器:父类选择器表达式 子类选择器表达式 标签选择器:标签名(form) 1.1.2 XPath 定位元素 XPath 是一种在XML 文档中定位元

    2024年04月28日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包