测试自动化框架使用说明
Framework: 测试过程中的一些公用方法可以存放这个目录,方便其它模块调用。在该目录中代码中定义了打印日志、读取yaml配置文件以、保存测试报告、截图及发送邮件的方法。
Logs :保存测试过程中生成的日志文件,日志文件名后缀为.txt,日志文件保存格式可以自己定义,比如.log。
Testcase:测试类文件,建议一个功能一个测试类,在测试类加入测试用例方法,依据功能来决定,另外这里要注意一下就是测试文件和测试用列需以test或者以test结尾。
config:相关配置文件目录。可以把一些全局的配置,如测试地址,邮箱服务器地址等配置项,也可以把测试用例存入配置文件,建议用yaml文件格式。
Reports:测试报告存储位置。
RunTestCase:运行全部测试用例,右键-run as …可以达到运行全部用例的目的。
Base:二次封装selenium的方法和待测页面的操作步骤,这里引入的是POB设计模式。
requirements.txt:此框架需要安装的第三方包。
POM,中文字母意思是,页面对象模型,POM是一种最近几年非常流行的自动化测试模型,或者**,POM不是一个框架,就是一个解决问题的**。采用POM的目的,是为了解决前端中UI变化频繁,从而造成测试自动化脚本维护的成本越来越大。
PageObject是一种程序设计模式,将面向过程转变为面向对象(页面对象),将测试对象及单个的测试步骤封装在每个Page对象中,以page为单位进行管理。可以使代码复用,降低维护成本,提高程序可读性和编写效率。
PageObject可以将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),提高用例的可维护性。
从上图看出,采取了POM设计思路和不采取的区别,左侧把测试代码和页面元素都写在一个类文件,如果需要更改页面,那么就要修改页面元素定位,从而要修改这个类中测试代码,这个看起来和混乱。右侧,采取POM后,主要的区别就是,把页面元素和业务逻辑和测试脚本分离出来到两个不同类文件。ClassA只写页面元素定位,和业务逻辑代码操作的封装,ClassB只写测试脚本,不关心如何元素定位,只写调用ClassA的代码去覆盖不同的测试场景。如果前端页面发生变化,只需要修改ClassA的元素定位,而不需要去修改ClassB中的测试脚本代码。
POM主要有以下优点:
-
把web ui对象仓库从测试脚本,业务代码和测试脚本分离。
-
每一个页面对应一个页面类,页面的元素写到这个页面类中。
-
页面类主要包括该页面的元素定位,和这些元素相关的业务操作代码封装的方法。
-
代码复用,从而减少测试脚本代码量。