|
几种设计模式
线性模式
我称呼它为撸代码,也就是按照业务逻辑直接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是个好地方
多写、多写、多写
人脑不是万能的,遇到问题解决后记录下来才是王道
|
|