标题
appium 企业微信 PO 实战 -打造自己的测试
课程价值
- 掌握常用的元素定位器
- 掌握 PO 封装
- 了解测试框架改进方案
大纲
- 常用的元素定位器
- PO封装
- 框架改进方案
元素定位
- 测试步骤三要素:
- 定位、交互、断言
- 定位
- Id 定位(优先级最高)
- XPath 定位(速度慢,定位灵活)
- Accessibility ID 定位(content-desc)
- Uiautomator 定位(速度快,语法复杂)
- predicate 定位
XPath 定位
- xpath w3c
- xpath表达式常用用法:
- not 、contains、ends_with、starts_with
- and 、or
XPath 定位用法
- 绝对定位: 不推荐
- 相对定位:
- //*
- //*[contains(@resource-id, ‘login’)](重点)
- //*[@text=‘登录’] (重点)
- //*[contains(@resource-id, ‘login’) and contains(@text, ‘登录’)] (重点)
- //*[contains(@text, ‘登录’) or contains(@class, ‘EditText’)](了解)
- //[ends-with(@text,‘号’) ] | //[starts-with(@text,‘姓名’) ] 两个定位的集合列表**(了解)**
- //*[@clickable=“true"]//android.widget.TextView[string-length(@text)>0 and string-length(@text)<20](了解)
- //[contains(@text, ‘看点’)]/ancestor:://*[contains(@class, ‘EditText’)] (轴)(了解)
原生定位方式
- 官网
- Uiautomator 定位
- 写法:’new UiSelector().text(“text")’
- 滚动查找:
- new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text(“查找的文本”).instance(0));
PO 封装
1、app.py 封装起来(应用的启动,关闭,重启)
2、将各个页面以Page页的形式封装起来
3、driver 复用,封装base_page.py 将__init__方法,find(),finds(), swipe_find() 底层常用的一些方法封装起来,driver 不要暴露出来。
日志 收集
设置日志级别
logging.basicConfig(level=logging.INFO)
打印日志
logging.info("find")
logging.info(locator,value)
logging 日志级别划分
_nameToLevel = {
'CRITICAL': CRITICAL,
'FATAL': FATAL,
'ERROR': ERROR,
'WARN': WARNING,
'WARNING': WARNING,
'INFO': INFO,
'DEBUG': DEBUG,
'NOTSET': NOTSET,
python 会收集当前级别及以上级别的日志。
参考代码
作业
思考题:
如何将日志保存到文件中?
课后练习:
- 实现添加联系人功能的PO封装
- 实现删除联系人功能的PO封装