一、什么是自动化PO模式:
自动化PO模式是一种应用程序测试的设计模式,其全称为“Page Object自动化化测试模式”(Page Object Automation Testing Pattern)。该模式的主要思想是将UI页面元素抽象成一个个独立的对象,每个对象描述了元素的属性和行为,并提供了一组用于测试的方法。测试过程中,通过调用这些对象的方法,可以实现对页面元素的操作和验证。
使用自动化PO模式可以将测试代码与被测试的应用程序解耦,让测试脚本更加简洁灵活、易于维护。通过把UI页面元素封装在单独的类中,可以避免将来页面修改所带来的影响,也便于多人协作开发测试代码。
在使用自动化PO模式时,需要编写Page Object类和对应的Test Case类,其中Page Object类包含了对应页面/部件的操作和检查方法,Test Case类则通过Page Object类的方法来驱动测试流程。同时需要注意,Page Object类是应用程序UI页面的抽象表示,应该始终与页面保持同步更新。
二、PO模式的实现过程
第一步:对UI页面进行分析,把UI元素封装成独立的对象。例如,对于一个登录页面,可以将“用户名”、“密码”和“登录按钮”三个元素都封装成单独的对象。
第二步:创建Page Object类,为每个UI元素或者UI部件编写相应的方法,例如输入用户名、输入密码、点击登录等。
第三步:在Test Case测试用例中调用Page Object类中的方法,驱动测试过程。在执行测试用例时,通过调用Page Object类中的方法来操作UI元素并检查预期结果。如果页面发生变化,只需要修改Page Object类的代码即可,而无需修改Test Case类的逻辑。
第四步:保持Page Object类与UI页面同步更新。在开发过程中如果UI页面发生了改变,需要及时更新相应的Page Object类以保证测试代码的正确性。
三、PO模式的三个层级
-
页面对象层级(Page Object Level):页面对象层级封装了每个UI页面或者UI部件对应的操作和检查方法。页面对象层级应该与UI页面保持同步更新。
-
操作对象层级(Element Level):操作对象层级封装了具体的UI元素的数据属性和行为。对于一个页面或者部件,可能包含多个操作对象,例如一个输入框、一个单选按钮都可以视为一个操作对象。
-
测试层级(Test Level):测试层级包含了所有的测试用例。测试用例通过调用页面对象类中定义的方法来驱动自动化测试过程。