转-Appium实战

几种设计模式

线性模式

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

Page Object

比较流行的设计模式,高度解耦,初学者看起来会觉得有点操蛋,但是了解了逻辑之后,会发现这样做非常棒,维护起来简直是轻松加愉快。

通用框架

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

设计思路

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

设计图

什么是Page Object?

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就行了,所有和这个元素相关的都直接关联修改了,,而直接撸代码,涉及到的地方可能会有很多,改动起来很麻烦。查找方法,测试步骤什么的都不用改,维护起来相对轻松。

 

项目结构:

____.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 配置文件
posted on 2018-04-24 16:45  python从零到一  阅读(491)  评论(0编辑  收藏  举报