appium框架介绍

appium框架的整体流程及可能遇到的问题:

1、启动服务(多线程启动服务)
a、服务是否启动成功
b、杀掉appium相关服务
c、杀掉adb服务(多线程运行时adb存在问题,所以需要每次运行前都要重启adb服务)
2、启动driver(多线程启动服务)
a、运用队列传递生成driver
b、根据配置文件进行每一个设备的初始化
3、运行case(多线程)
a、运行unittest,导入类来实现case的运行
4、生成报告
a、生成报告和case运行拆开

appium介绍

appium是一个开源、跨平台的自动化测试框架,它适用于native app、hybrid app,实际上我们在测试时是启动了一个appium server,这个server可以放到任意的机器上,供公司的自动化测试人员共同使用。手机app分为两大类,原生app(native app)和混合app(hybrid app)

 

app分为原生app和混合app(Hybrid),原生app和混合app的区别有以下几点:

1、原生app实际就是我们所常见的传统app开发模式,云端数据存储+app应用客户端,app应用客户端,包含了所有的UI元素、框架逻辑等,只有数据存储在云端,原生app底层是java开发的

2、混合app就是html5 app,混合app通常由两部分组成,html5云网站+app应用客户端,这里的app应用客户端实际只是个架子,里面的UI元素和逻辑,都是存储在云端的,每次在打开app时,去云端获取数据呈现给手机用户,说白了混合app就是将web页面嵌套到了app应用客户端中,由于每次打开app都要向html云端服务请求数据,加载速度慢,并且如果没有网络,会导致无法看到html app,这就是常说的H5页面

 

如果你开发一个app是不是需要开发两套,一个安卓版的一个ios版的,也就是基于安卓底层和ios底层开发出来的框架功能都是原生,如果现在有功能扩展了,比如app里有个情人节的活动需要开发,如果纯原生开发的话,那么就需要去修改底层原生框架,这样是不是不安全,而且效率慢,就出现了混合开发模式 也就是h5开发

 

appium原理
appium既然是基于selenium做的二次扩展,那么appium也是一个经典的Client-Server的设计模式,我们的code就是狭义上的客户端,server端与selenium不同,selenium直接测试浏览器web页面,将浏览器作为服务端。而appium的服务端是我们自己启动的appium-server,数据与操作命令传递与selenium api接口相同

 

appium工作流

appController文件 启动服务、启动driver(对于server和driver的一些管理操作)

apprun文件 主函数 包含多线程运行case,多线程生成报告

tool文件 主要封装了工具类,如清空文件,为htmlrunner提供错误图片

page文件 存放各个页面的功能方法

appCase文件 存放我们的case

pyapp文件 针对pyse进行了符合app操作的二次封装

实战:

1、qq的登录操作

2、qq的设置9宫格解锁 设置

3、取消解锁

posted @ 2018-08-26 20:31  laosun0204  阅读(1035)  评论(0编辑  收藏  举报