听海——sky 发表于 2018-4-9 15:27:39

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 l
inks and determine what’s displayed. However, if you write tests that manipulate the HTML elements directly yo
ur 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就行了,所有和这个
元素相关的都直接关联修改了,,而直接撸代码,涉及到的地方可能会有很多,改动起来很麻烦。查找方法,测
试步骤什么的都不用改,维护起来相对轻松。

一些环境

简单列一下我的环境吧:

系统:Mac OS X EI Capitan

Python: 2.7

Appium: 1.4.16

IDE: PyCharm

测试系统:Android

测试对象:微证券(应用商店可以直接下载)

我的项目结构:

____.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
大的目录我是这么划分的:

Data 用来放置一些数据
Report 存放测试报告
TestCase 存放测试用例
img 存放一些截图
config.py 配置文件
当然写到后续可能会做一些调整,毕竟我才刚刚开始写。

一些忠告

一些很弱智的问题就自己去Google,比如Appium怎么开始啊,怎么学啊,环境怎么搭建啊!
多用Google
StockOverflow是个好地方
多写、多写、多写
人脑不是万能的,遇到问题解决后记录下来才是王道

页: [1]
查看完整版本: Appium实战-开始