前面我们都是基于线性模型来编写测试脚本,而且元素定位方式和属性值都是写死的。在业务场景简单的情况下这样写无可厚非,但是一旦遇到产品需求变更,业务逻辑比较复杂需要维护的时候就非常麻烦,此时就需要灵活的处理方案。
什么是PageObject
Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素的封装减少冗余代码,同时在后期维护中,若元素定位发生变化,只需要调整页面元素封装的代码,提高测试用例的可维护性。
怎么做
将各个功能的代码封装为一个类,后面要用他时,直接调用即可
代码
代码
封装App启动配置信息(desired_caps.py)
1 | import yaml |
封装基类(baseView.py)
1 | class BaseView(object): |
封装通用公共类(common_fun.py)
1 | from appium_advance.page_object.baseView import BaseView #导入刚刚封装的基类 |
封装登录操作(loginView.py)
1 | import logging |
unittest用例封装
封装用例启动结束时的配置(myunit.py)
1 | import unittest |
测试用例封装(test_login.py)
1 | from appium_advance.unittest.myunit import StartEnd |
_1.注意test开头 2.运行顺序一个test_xxx->setUp->tearDown->另一个test_xxx->…,test_xxx的顺序为xxx的默认排序,并非像线性一样从上到下的运行。_