章节:自动化基础篇——Appium原理初步(第七讲)

本期关键词:

Appium、跨语言跨平台、Bootstrap

主要讲解内容及笔记:

一、what is appium

一种封装了uiautomator、或者其他测试框架的自动化测试框架,跨平台(支持linux、mac、windows)、跨语言(几乎所有的我知道的语言都支持,像什么java、objecet c、脚本语言python、ruby等)

二、the demo

从demo看怎么写自动化test case,包括一个setup方法,一个teardown方法,然后就是testcase了

其中setup方法中需要设置一系列参数,包括app的文件目录File appDir,app的文件名称File app;是做android的测试,设置“device” “android”属性,设置包名、main activity的名称(sdk下面的一个工具,aapt dump badging +apk文件)就可以得到包名和activity的名称

最后最重要的是一个driver的对象,后面编写用户会用到这个driver,调用driver.xxx的方法进行编写测试case

这个driver = new SwipeableWebdriver(new URL("http://127.0.0.1:4723/wd/hub"), capablities);

需要这个driver与server进行通信,然后这个server再通过bootstrap与手机端进行通信(中间隔了两层,比较厚,接触可能不太好,所以容易出现一些问题)

具体原理图:

三、the framework and the analysis of source code

1、UiWatchers——作用:监听ANR(app not response)或crashes,然后打印日志出来

2、BootStrap——socket服务对象,就是封装了Uiautomator,然后通过“4723”的端口进行通信

3、AndroidElement——这个就是获取控件的class

4、Click——继承自handler,对UI上的异步线程的操作都会用到handler类,获取到控件之后,不像robotium把控件放到一个arraylist里面,而是直接进行执行(具体操作由Uiautomator来完成)

5、Strategy——8种获取控件的方法

6、driver——linux、mac、以及windows上的driver都没有开源(这是核心)

四、appium极限(与其他产品对比,可以做IOS的自动化测试,没有之一)

appium支持IOS,android和mobile web

robotium支持android以及mobile web

Uiautomator支持anroid和坐标点的mobile web

这几个是目前主流的,多学多看,加油!

 本集appium架构自动化视频学习连接:http://www.goldensunshine.cc/forum.php?mod=viewthread&tid=19&extra=page%3D2
 

金阳光测试

新浪微博:金阳光woody

         

          网站地址

1、百度搜:金阳光测试

2、官网:www.goldensunshine.cc

微信公众号

Appium原理初步--Android自动化测试学习历程的更多相关文章

  1. Selenium原理初步--Android自动化测试学习历程

    章节:自动化基础篇——Selenium原理初步(第五讲) 注:其实所有的东西都是应该先去用,但是工具基本都一样,底层都是用的最基础的内容实现的,测试应该做的是: (1)熟练使用工具,了解各个工具的利弊 ...

  2. Robotium原理初步--Android自动化测试学习历程

    章节:自动化基础篇——Robotium原理初步(第四讲) 主要讲解内容与笔记: 一.基于控件 1.spinner——下拉菜单 2.TabHost——左右滑动选择菜单,类似电话本 3.Gallery—— ...

  3. MonkeyRunner原理初步--Android自动化测试学习历程

    章节:自动化基础篇——MonkeyRunner原理初步 主要讲解内容及笔记: 一.理论知识和脚本演示 最佳方式是上官网文档去查看monkeyrunner的介绍,官网上不去,就找了一个本地的androi ...

  4. AndroidDriver原理初步--Android自动化测试学习历程

    章节:自动化基础篇——AndroidDriver原理初步(第六讲) 主要讲解内容及笔记: 一.AndroidDriver核心原理 对上图的解析: PC端的端口通过adb,将android版的Remot ...

  5. Monkey原理初步和改良优化--Android自动化测试学习历程

    章节:自动化基础篇——Monkey原理初步和改良优化(第三讲) 主要讲解内容与笔记: 一.理论知识: 直接看文档,来了解monkey的概念.基本原理,以及如何使用. First,what is And ...

  6. 百度Cafe原理--Android自动化测试学习历程

    主要讲解内容及笔记: 一.Cafe原理 Cafe是一款自动化测试框架,解决问题:跨进程测试.快速深度测试 官网:http://baiduqa.github.io/Cafe/ Cafe provides ...

  7. 截图原理(二)——android自动化测试学习历程

    接上一篇(截图原理) 视频地址:http://study.163.com/course/courseLearn.htm?courseId=712011#/learn/video?lessonId=87 ...

  8. 截图原理(一)——Android自动化测试学习历程

    把两节的内容汇总起来,第一节讲的是如何在apk中直接进行截屏,用到了Robotium的Solo类的takeScreenShot方法,有一个小的demo,以及从方法一直往里钻,知道它具体是怎么进行截屏的 ...

  9. Instrumentation类——Android自动化测试学习历程

    这里需要把Instrumentation类的视频的上.中.下三集一起看,把内容总结一下... 视频地址: http://study.163.com/course/courseLearn.htm?cou ...

随机推荐

  1. python selenium-8 Page Object模式

    封装空间操作为一个接口使用,而不是直接在页面中查找 from selenium import webdriver from selenium.webdriver.common.by import By ...

  2. Unreal Engine 4 笔记 2

    转自:http://blog.csdn.net/st_dark/article/details/48005947 2.Actor继承自aactor,可以看成是一个容器,用来装"组件" ...

  3. Web API 源码剖析之默认消息处理程序链之路由分发器(HttpRoutingDispatcher)

    Web API 源码剖析之默认消息处理程序链-->路由分发器(HttpRoutingDispatcher) 我们在上一节讲述了默认的DefaultServer(是一个类型为HttpServer的 ...

  4. UML类图的画法

    http://blog.csdn.net/kevin_darkelf/article/details/11371353

  5. PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别

    这篇文章主要介绍了PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别,本文给出了这两个参数的5个区别,需要的朋友可以参考下 虽然nos ...

  6. 为solr增加用户验证

    添加此功能主要是为了增加solr服务器的安全性,不能随便让人访问. 1.      在tomcat的F:\Tomcat 6.0.26_solr\conf\tomcat-users.xml添加用户角色并 ...

  7. 安装MegaCli,查看linux服务器raid信息

    1.下载安装包 下载地址:https://raw.githubusercontent.com/crazy-zhangcong/tools/master/MegaCli8.07.10.tar.gz 2. ...

  8. CSS3基础知识核心动画(二)

    Transition过渡 transition-property 过渡属性 all|[attr] transition-duration 过渡时间 transition-delay 延迟时间 tran ...

  9. CUDA C Programming Guide 在线教程学习笔记 Part 13

    ▶ 纹理内存访问补充(见纹理内存博客 http://www.cnblogs.com/cuancuancuanhao/p/7809713.html) ▶ 计算能力 ● 不同计算能力的硬件对计算特性的支持 ...

  10. sssp-webservce_restful

    pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or ...