最近开始接触自动化测试代码的编写,有很多重复的代码需要对其进行封装。了解到有一个设计模式叫做POM模式,学习了一下。
POM是PageObjectModule(页面对象模式)的缩写。
在该模式下,成堆的测试代码应该进行如下划分。数据驱动、测试日志、测试报告的部分不在本文介绍,我计划写在Pytest测试框架中,实际上就是多建几个项目目录。
一、common:公共类
1、在测试代码中,需要使用对象库实现对象操作,例如用webdriver操作网页,UIA操作windows程序等,可以在公共库对其进行封装,减少后续代码编写;(也可以单独划分成Base类)
2、日志记录的相关操作,封装成类;
3、数据库操作;
4、邮件/微信等通知类操作;
二、pageobject:页面对象类
根据页面功能设计PO类,当这个页面有多个功能,在PO类中就实现多个方法,模拟该页面的操作的所有代码均写在PO类中;
在PO类中实现元素定位,元素操作等功能代码;
三、testcase:测试用例类
根据业务逻辑,测试人员编写相应测试用例。在测试用例类不要实现_ini方法,然后每个用例作为一个方法去实现;测试具体入口;
调用逻辑如下:
testcase -- 》 pageobject --》common