官方介绍:

Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS mobile, Android mobile, and Windows desktop platforms. Native apps are those written using the iOS, Android, or Windows SDKs. Mobile web apps are web apps accessed using a mobile browser (Appium supports Safari on iOS and Chrome or the built-in 'Browser' app on Android). Hybrid apps have a wrapper around a "webview" -- a native control that enables interaction with web content. Projects like Apache Cordova or Phonegap make it easy to build apps using web technologies that are then bundled into a native wrapper, creating a hybrid app.

Importantly, Appium is "cross-platform": it allows you to write tests against multiple platforms (iOS, Android, Windows), using the same API. This enables code reuse between iOS, Android, and Windows testsuites.

For specific information about what it means for Appium to "support" its platforms, and automation modalities, please see the platform support doc.

appium呢,是开源的,用于在iOS移动,Android移动和Windows桌面平台上自动化本机,移动Web和混合应用程序。。。。。。。(一大堆、自行百度)

重要的是,Appium是“跨平台的”:它允许您使用相同的API针对多个平台(iOS,Android,Windows)编写测试。这样可以在iOS,Android和Windows测试套件之间重用代码。

我们无论在做什么测试,首先要考虑的便是该工具(框架)是否真的适合自己的业务,自己的需求;显然跨平台的优点是首选,和之前的jmeter是一样的。我们不能被工具(框架)限制。

appium概念(来自官方文档):

客户端/服务器架构:

Appium的核心是一个公开REST API的Web服务器。它从客户端接收连接,侦听命令,在移动设备上执行这些命令,并使用表示命令执行结果的HTTP响应进行响应。我们拥有客户端/服务器架构这一事实开辟了许多可能性:我们可以使用任何具有http客户端API的语言编写测试代码,但使用其中一个Appium客户端库更容易。我们可以将服务器放在与运行测试不同的机器上。我们可以编写测试代码并依赖像Sauce Labs这样的云服务来接收和解释命令。

会话:

自动化始终在会话的上下文中执行。客户端以特定于每个库的方式启动与服务器的会话,但它们最终都向POST /session服务器发送请求,并使用称为“所需功能”对象的JSON对象。此时,服务器将启动自动化会话并使用会话ID进行响应,该会话ID用于发送更多命令。

环境搭建:

1、android SDK!!!

2、appium-server,下载传送门:https://bitbucket.org/appium/appium.app/downloads/(本文以appium-server为主)

 (或者)appium-desktop,下载传送门:http://appium.io/downloads.html

3、appium安装:

  

  

  一路next,没技术含量。

4、appium环境变量配置:appium-server安装完成,

            将${appium_home}\node_modules\.bin添加至path变量

5、安装nodejs,官网下载传送门https://nodejs.org/en/download/releases/

 一路next,环境变量自动添加。

6、cmd命令行输入appium-doctor,查看环境是否搭建成功

  

ok,到这块appium环境就搭建成功了。

appium-sever介绍:

看一下界面:

左上角四个按钮功能:Android Setting=======>android应用配置

          General Setting=======>通用配置

          Developer Setting======>开发者配置

          版本详情

Android Setting:

1、勾选:Application Path

2、点击:Choose,将要测试的apk文件放进去,下方包名以及activity自动加载、。

   【切忌:每次选完成apk_path,将Application Path的勾去掉。否则,每次启动时,appium会重新安装相应的应用

3、勾选package包名,勾选launchActivity。

  有关launchActivity可直接向开发进行索取,或者重签名,或是使用SDK中build-tools中的aapt.exe

4、capabilities中的platformname 和automationname都默认

General Setting:

1、server和port

2、pre-launch:在启动app时,预先启动它,建议不勾选。

3、logging中勾选show Timestamps,显示时间戳

4、Log to File中填写日志保存路径

ok,开发者选项没用到,基本介绍以及配置方法完成。

先配置server,android-setting中加载一个APK,启动,查看日志。

点击右上角的启动按钮。

ok,从日志中可以看得到appium-server已经启动成功了。本地的4723端口已经启用。

指定的保存本地日志文件也有相关执行日志内容:

  

            

UI“三重天”之appium(一)的更多相关文章

  1. UI“三重天”之Selenium(一)

    关注一下UI自动化,记一记笔记. UI自动化的优缺点: 关于UI自动化的优缺点想来大家都有了解,优点:解放人力(并不是完全解放),用机器(涵盖工具.脚本等)代替人工完成测试工作,将测试用例转化为脚本实 ...

  2. Ui"三重天"之重温Uiaumator(1)

    移动端自动化技术和接口自动化技术是接下来需要深究和拓展的两方面,基于之前的薄弱基础,重温一波,本篇内容便是android UI自动化框架Uiautomantor1. 介于对移动端自动化并没有实际应用的 ...

  3. UI“三重天”之实践Uiautomator1

    说起来Uiautomator也有一年没碰过了.借此来回顾.总结一下. 也是阅读<精通APP自动化测试>一书.实践出真知的一个框架.编写了部分移动端UI自动化脚本.后续再深入学习. 虽然现在 ...

  4. UI“三重天”之selenium--常用API和问题处理(三)

    Selenium常用API: 前面两篇示例代码中用到了一些selenium的API方法,例如定位元素的八种方法.访问url.等待.操作浏览器.获取title.点击.清理等等. 有关于selenium的 ...

  5. UI“三重天”之selenium--封装(二)

    基础示例代码: /** * @author Richered **/ package com.sample; import org.openqa.selenium.By; import org.ope ...

  6. python+appium+yaml安卓UI自动化测试分享

    一.实现数据与代码分离,维护成本较低,先看看自动化结构,大体如下: testyaml管理用例,实现数据与代码分离,一个模块一个文件夹 public 存放公共文件,如读取配置文件.启动appium服务. ...

  7. Appium 在 Android UI 测试中的应用

    原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...

  8. Appium 三种wait方法(appium 学习之改造轮子)

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  9. java+appium 自动化环境搭建

    1.安装JDK1.7及以上 2.下载解压sdk并且配置环境变量: ANDROID_HOME:...\adt-bundle-windows-x86_64-20140702\sdk PATH:%ANDRO ...

随机推荐

  1. HDU 2485 Destroying the bus stations(费用流)

    http://acm.hdu.edu.cn/showproblem.php?pid=2485 题意: 现在要从起点1到终点n,途中有多个车站,每经过一个车站为1时间,现在要在k时间内到达终点,问至少要 ...

  2. java学习之浅谈多线程2--线程同步

    如果一个共享资源被多个线程同时访问,可能会遭到破坏.举个例子说明这个问题,假设创建并启动100个线程,每个线程都往同一个账户中添加一个便士,代码如下: import java.util.concurr ...

  3. SQL语句主要的分类

    SQL语言的命令通常分为四类1.数据定义语言(DDL) 创建.修改或删除数据库中各种对象,包括表.视图.索引等. 命令:CREATE TABLE , CREATE VIEW, CREATE INDEX ...

  4. 网络TCP建立连接为什么需要三次握手而结束要四次

    忽然顿悟了,不管三次握手,还是四次握手,这是保证信息来回两个链路可达(也就是信息能从A到B,也能从B到A)的最低要求.-2018-9-17-晚上九点 举个打电话的例子: A : 你好我是A,你听得到我 ...

  5. 配置AD RMS的一点心得

    基本上是按照下面的连接配置的,微软写的很好 AD RMS Step-by-Step Guide http://technet.microsoft.com/en-us/library/cc753531( ...

  6. Java队列的两种实现方式

    1. 基于数组 package Algorithm.learn; import java.util.Arrays; /** * Created by liujinhong on 2017/3/7. * ...

  7. 用ansible剧本搭建lnmp

    首先在主服务器上搭建ansible直接用云yum装就可以, yum -y install ansible 如果copy报错一下的语句 "msg": "Aborting, ...

  8. 利用Sonar定制自定义JS扫描规则(二)——自定义JS扫描规则

    在上一篇blog中,我们将sonar几个需要的环境都搭建好了,包括sonar的服务器,sonar runner,sonar的javascript插件.现在我们就来讲如何自定义JS扫描规则. 实际上有3 ...

  9. 通过命令启动一个activity(am pm 命令)

    一.am的含义是activityManager 主要作用是启动activity.service .broadcast    1.通过adb命令启动acitvity,首先需要设置activity 的 e ...

  10. prototype原型模式

    /** * 原型模式 Prototype * 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 */ 需求: public class Resume { /** * 要求:一个简历类,必须 ...