PO目的

1.用Page Object表示UI
2.减少重复样板代码
3.让变更范围控制在Object内

PO总结

1.The public methods represent the services that the page offers
用公共方法代替页面提供服务
2.Try not to expose the internals of the page
尽量不暴露页面内容
3.Generally don’t make assertions
通常不做断言
4.Methods return other PageObjects
方法返回其他页面类
5.Need not represent an entire page
不需要表示整个页面
6.Different results for the same action are modelled as different methods
相同操作的不同返回结果被定义成不同方法

业务分析

业务分析:根据重要性和紧急程度划分
bug分析:过去半年来的bug分布
用户行为分析:从线上或埋点平台提取用户行为分析

用例设计

自动化测试用例与手工测试用例的设计方法是一致的,区别只是执行方式

测试策略

UI自动化测试
    稳定的功能:投入少
    重要的功能:投入多但是回报也大
自动遍历
    入口简单
    顺序访问即可验证
接口测试
    复杂行为通过UI测试成本大的转移到接口层
手工测试30%

自动化用例设计

测试框架改进
页面建模
自动化用例组织
持续集成

主要组成元素

Page对象:完成对页面的封装
Driver对象:完成对web、android、ios、接口的驱动
测试用例:调用Page对象实现业务并断言
数据封装:配置文件和数据驱动
Utils:其他功能封装、改进原生框架不足

测试框架核心

API对象:完成对接口的封装
接口测试框架:完成对api的驱动
配置模块:完成配置文件的读取
数据封装:数据构造与测试用例的数据封装
Utils:其他功能封装,改进原生框架不足
测试用例:调用Page/API对象实现业务并断言

测试用例构建体系

使用package管理业务模块
使用class管理业务功能
使用method完成业务具体行为
使用配置文件读取初始配置
使用继承规划用例执行顺序
使用testcase完成测试用例的落地
使用assertion完成业务正确性校验
使用数据文件管理用例的数据驱动
使用jenkins完成持续集成

改进方向

数据清理策略
    使用接口删除所有数据
    数据库可以,不建议,因为对环境依赖太大
元素定位
    滑动定位封装
    xpath定位封装
    弹框处理 getPageSource + xpath
    雪球的行情按钮 是动态变化的内容。使用两次定位来解决 可以独立封装方法findByDynamic
多平台封装
    自己封装Element传递快平台的定位数据,然后封装对应的定位和action
    数据驱动or配置驱动
    appium提供的po注解
分类: 测试

发表评论

电子邮件地址不会被公开。