zoukankan      html  css  js  c++  java
  • PO模式的实现

    PageObject模式

      PO模式,是目前测试行业公认最佳的自动化设计模式,取自关键字驱动模式来做的一次升级

      完全基于页面来实现模型

    PO设计原理:

      提取selenium中公用的方法,作为基本对象

      页面业务流程的关联设计

      调用业务流程实现自动化设计

    优势:

      将不同的页面封装成不同的页面对象,分别进行管理

      进一步降低冗余

      对于代码的阅读性和维护性有进一步提升

      以最低的成本实现最高的自动化产出

      将不同的页面进行信息化的区分

      可以对一个系统完整深入的测试

      测开针对公司的系统,结合需求与业务,结合实际项目的情况,设计对应用的测试框架与测试工具

    提供给测试人员进行功率提升,并且进行维护

    PO的实现:

    在PO页面概念模式的设计当中 它是以页面作为对象的,页面当中的每一个元素其实固定的

    如搜索框,登录按钮 我们在PO模式下,将页面当中关联到的变量写死,作为页面当中存有的内容

    目录结构:

     

    baseObject 基本类 (存放公共代码一般存放 元素定位 访问url 关闭)base_page.py:

    # 这是基本类

    from selenium import webdriver

    class BasePage(object):

        browser = webdriver.Chrome()

        # 构造函数

        def __init__(self,browser):

            self.browser = browser

        # 访问URL

        def visit(self,url):

            self.browser.get(url)

        # 元素定位

        def locator(self,locator):

            return self.browser.find_element(*locator)

        # 关闭

        def quit_browser(self):

            self.browser.quit()

    basepage (页面对象类 将搜索的页面做成一个完整页面对象) search_page.py:

    # 页面对象类

    # sear_page 文件:将搜索的页面做成一个完整页面对象

    from basepage.base_page import BasePage

    from selenium import webdriver

    from selenium.webdriver.common.by import By

    # 继承于base_page 继承类

    class SearchPage(BasePage):

        # 因为一个页面的主要功能不会变 所以就可以直接进行写死

        # 搜索框  如果页面元素出现变更 可以把定位方式换为xpath

        input_id = (By.ID,'kw')

        # 百度一下按钮

        click_id = (By.ID,'su')

        # 对输入框进行内容的输入

        def input_text(self,input_text):

            self.locator(self.input_id).send_keys(input_text)

        # 点击查询按钮 实现本次搜索

        def click_element(self):

            self.locator(self.click_id).click()

        # 当前页 调试检验

        def check(self,url,input_text):

            self.visit(url)

            self.input_text(input_text)

            self.click_element()

    if __name__ == '__main__':

        url = 'http://www.baidu.com'

        browser = webdriver.Chrome()

        sp = SearchPage(browser)

        # 因为加入调试函数 就可以在当前页进行调试

        # sp.visit(url)

        # sp.input_text('老祝头')

        # sp.click_element()

        sp.check(url,'老祝头')

            

    # 这是基本类
  • 相关阅读:
    阿里巴巴2015年校招笔试附加题
    hadoop eclipse插件生成
    DevExpress控件的安装及画图控件的使用
    计算二进制数的0的个数
    Docker初探
    AppStore App申请审核加速
    _DataStructure_C_Impl:LinkListBasedSort
    rman数据库恢复;关键/非重要文件、影像副本、控制文件、还原点、非归档、增量、新数据库、灾难性回复
    RenderScript on LLVM笔记
    Oracle数据库备份恢复,巡检须要关注的对象设置以及相关恢复概述
  • 原文地址:https://www.cnblogs.com/sunzzc/p/13377347.html
Copyright © 2011-2022 走看看