转-Appium实战

几种设计模式

线性模式

我称呼它为撸代码,也就是按照业务逻辑直接hard code。基本上初学者都会这样折腾,固然,折腾了一段时间就会以为很操蛋,本身都不想看本身写的代码。web

Page Object

比较流行的设计模式,高度解耦,初学者看起来会以为有点操蛋,可是了解了逻辑以后,会发现这样作很是棒,维护起来简直是轻松加愉快。json

通用框架

通用框架就是比较高级的作法了,实施起来比较麻烦,若是水平到了,这种方式确定是最好的,利用关键字来驱动程序,是比较高级的境界。缺点就是比较难。。。。设计模式

设计思路

整个设计思路是基于Page Object模式,以下图:架构

设计图

什么是Page Object?app

When you write tests against a web page, you need to refer to elements within that web page in order to click links and determine what’s displayed. However, if you write tests that manipulate the HTML elements directly your tests will be brittle to changes in the UI. A page object wraps an HTML page, or fragment, with an application-specific API, allowing you to manipulate page elements without digging around in the HTML.框架

原来是Web端的模式,搬到移动端来,就是把页面分拆成一个一个元素,如示意图所示,我拆分为元素数据、元素定位、元素操做、测试步骤这么些东西。测试

有什么好处?

这种模式整个架构看起来比直接撸代码复杂了不少,不过当遇到一些坑爹的问题时,尤为开发频繁改动的时候,这种设计模式的优点就出来了,好比开发改了元素的ID那些东西,那么咱们只要修改相应ID就好了,全部和这个元素相关的都直接关联修改了,,而直接撸代码,涉及到的地方可能会有不少,改动起来很麻烦。查找方法,测试步骤什么的都不用改,维护起来相对轻松。ui

 

项目结构:spa

____.DS_Store
|____config.py |____Data | |____data.json |____img | |____.DS_Store | |____caixun | | |____gupiao.png | | |____gupiaoneirong.png | | |____jijin.png | | |____jijinneirong.png | | |____tuijian.png | | |____tuijianneirong.png | | |____xinsanban.png | | |____xinsanbanneirong.png | | |____zhaiquan.png | | |____zhaiquanneirong.png | | |____黄金.png |____Report |____test.py |____TestCase | |______init__.py | |____common.py | |____testCaixun.py |____View | |______init__.py | |______init__.pyc | |____BaseTestCase.py | |____BaseView.py | |____Caixun.py

大的目录我是这么划分的:设计

  1. Data 用来放置一些数据
  2. Report 存放测试报告
  3. TestCase 存放测试用例
  4. img 存放一些截图
  5. config.py 配置文件
相关文章
相关标签/搜索