POM 设计模式
– 基于 java + POM + 数据驱动
– 基于pytest+pom+数据驱动的app测试框架设计四路
POM (page object model)页面对象模型,主要应用ui自动化框架,主流设计四路,结合面向对象编程思路,
把项目的每个页面当做一个对象来进行编程
设计意义:层次更加清晰,方便管理以及提供代码的复用性和扩展性
POM分层 通常四层 项目= n个页面 =base层=pageobject(页面一,页面二。。。)
第一层 : base层 描述每个页面相同的属性以及行为
basepage.py 初始化dirver,定位元素的二次封装 ,输入senkksy二次封装 ,点击click,
滑动(获取这个屏幕尺寸,传入xy开始结束坐标,调用swipe)
第二层:pageobject 每个的独有特征及独有行为
Login_page,基础basepage,再对登录页面的元素操作进行封装
第三次:testcase 用例层,描述项目业务流程
1、设置启动终端的参数,安卓版本号appapckge,appactvity,获取一个已实例化driver,
TestLogin,实例化loginpage(传入driver),然后再去调用page里封装的操作,传入自己要需要的数据
第四层:testdata 数据层
yaml文件存储
config:配置层,终端配置数据
common,公共工具类,yaml读取封装,随机数封装,时间搓封装,db读取封装,excel封装
pytest.mark.parametrize
定位工具
1、uiautomatorview sdk/tools路径下
工具内截屏不能同时多个工具在用,appium server一样 ,开了uiaot就 开appium,不能正常使用,只能用一个 ,wediro不影响
2、appium desktop inspector 另一个 appium server自带 启动server点左上角图标
3、weditor 三方库
首先 uiautomator python的三方库 pip install Uiautomator2
python -m uiautomator2 inti
pip install weditor
weditor --help 查询安装是否成功 ,同时会往设备里推一个工具,会影响前两个工具,目前weditor最好用
weditor 启动 在网页端打开一个页面
adb连接设备 网页刷新显示app内容 ,显示设备属性信息更多
可根据当前xpath来判断resoureId是否唯一
元素定位
id定位 :by id
文本定位:find element by android uiautomator (“new UiSelector().方法1.方法2”)组合定位,传入多个元素进行定位
ios 只是做功能测试,主要是xcode进行调试
- 自动化工具
appium
uiaotomator2
rf
airtest