Page Object的缩写是PO中文翻译为”页面对象模式“。它是一种设计模式目的是创建Web UI对象库即涉及的每一个页面都被定义为一个单独的类。类中应该包含页面元素对象和处理这些元素对象所需要的方法等。核心思想页面即类操作即方法分层把同属一个页面的元素都分装在一个页面中优点PO提供了页面元素操作和业务流程相分离的模式使测试代码结构比以前更清晰可读性更强更方便地重用对象和方法对象库可以通过集成不同的工具类来达到不同的测试目的方便自动化测试的维护和更新若某个页面的元素需要变更仅需要修改封装好的页面元素类而不用修改测试类PO项目的框架结构Base层Common层Data层Logs层PageObject层Reports层TestCases层config.ini其中的核心层是PO层围绕着PO层又新增了其他层级。采用结构化模型可以使自动化测试越来越清晰也会降低后期维护成本提高项目自动化的程度Base层Base层封装了项目需要的基本方法如元素click操作、send keys操作、调用Java space脚本的方法和其他一些与基本浏览器相关的操作等Base层的一些方法调用了Common层的模块方法需要先熟悉Common层代码结构Common层Common层主要包含处理Excel文件的方法获取项目路径、测试系统URL的信息和日志功能的实现方式。PageObject层PageObject层是核心层该层不但涉及代码技术还涉及对项目业务的分析进而对相关的页面进行分析。在业务分析方面首先分析要进行po的页面。其次对每个范围内的页面进行详细分析TestCases层TestCases层的作用是管理测试用例和执行测试相当于测试的总入口。在项目中该层可以存放测试套件和测试用例的相关代码。Data层项目中的data目录用于存放测试数据模块该模块用于维护测试数据Date层通常有以下几点需要注意数据文件类型的选型根据项目的实际需要灵活选择。举例说明在测试场景中有时需要测试上传功能在测试数据中需要清楚定义数据字段等头部信息而且上传文件的信息可能比较大。此时用CSV文件就比用excel文件优势明显原因是CSV保存的是文本文件而excel保存的是二进制文件从软件的可操作性或易用性来说excel文件比不上CSV文件而在大数据量场景下excel文件没有CSV文件高效数据的维护要有条理性关联性比较强的测试数据可以存放在同一个工作表中便于维护。Logs层Logs层数据主要存放在项目运行过程中产生的日志文件中。日志文件记录了每次测试执行过程中的详细信息便于分析定位测试过程中的异常。框架的日志在一定程度上反映了框架是否运行在正确的轨道上。关于日志的维护有一些建议如下日志等级或频度要设置得合理。在测试用例时需要对要打印的日志进行筛选对于一些重点操作最好打印日志建议给框架中添加一些系统级别的日志如对系统资源进行监控的日志这样可以便于对一些非框架问题进行定位日志的管理如定期清理日志Reports层Reports层数据主要存放在项目执行过程中产生的测试报告文件中测试报告是对测试结果的总结。Reports层的报表可能不只是一个测试报告文件那么简单还需要探究报告所呈现的内容的准确性、完整性和持续性等而且后续报表能力的迭代不能影响之前的测试结果或报告。如果自动化测试项目的周期比较长建议对测试结果进行数据存储如将数据存储在MongoDB或者MySQL数据库中等配置文件config.ini该文件包含了整个项目的配置项。如果后续还需要添加其他项目直接在该文件中进行维护即可。建议将驱动driver存放在项目根目录下。