章节:自动化基础篇——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
这几个是目前主流的,多学多看,加油!
金阳光测试 |
新浪微博:金阳光woody |
网站地址 |
1、百度搜:金阳光测试 2、官网:www.goldensunshine.cc |
微信公众号 |