0
点赞
收藏
分享

微信扫一扫

Selenium35-模块化设计

模块化设计

  • 模块化用来分隔,组织和打包软件
  • 每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要的功能
  • 在系统结构中,模块是可组合、分解和更换的单元
  • 模块化是一种处理复杂系统分解成为更好的可管理的方式
  • 它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立、相互作用的组件、来处理复杂、大型的软件

模块化设计模型进一步优化代码架构

Selenium35-模块化设计_基础操作

  • 问题:各个模块的testcase层级代码中都存在通用的方法,并没有复用。各个模块的pageobject层级代码里都存在通用的操作
  • 目标:复用这些代码,给各个模块的testcase层级代码使用

优化方案-封装公共基类

  • common包:封装基础操作模块
  • 网页基础操作模块:记录网页里的基础操作动作。
  • 测试用例基础操作模块:记录测试用例里用来判断和检查使用的通用方法。
  • 网页基础操作模块
    common包-->page_action.py文件中-->class PageBase
  • locate 定位
  • click 点击
  • input_text 输入文本
  • clear 清空
  • get_text 获得静态文本
  • get_input 获得文本框数据
  • switch_to_default 切换默认主网页
  • 封装页面基类
  • Selenium35-模块化设计_基础操作_02


  • Selenium35-模块化设计_测试用例_03

  • 修改页面对象类
  • from common.page_action import PageBase
  • class LoginPage(PageBase):
  • 测试用例基础操作模块:记录测试用例里用来判断和检查使用的通用方法
    common包里新建测试用例基础模块:假设叫做case_action.py在该模块里定义一个类,假设叫做CaseBase,负责管理各个模块的测试用例代码中的通用操作方法。

    分析:setUp、tearDown……写在此类中后,如何在testcase层级的各个代码中使用它?
    思路:把这个类CaseBase作为testcase层级的各个代码中测试用例类的父类来使用。
    新的问题:测试用例类原来有父类是unittest.TestCase。
    新方案:多重继承机制来实现。

读取csv工具模块

utils包: 存储工具模块

  • 读取csv工具模块:读取csv格式的文件
  • Selenium35-模块化设计_基础操作_04

    utils-->read_csv.py-->class CSVUtil:
    __init__
    get_list_data

Selenium35-模块化设计_模块化_05

  • 测试用例基础操作模块
  • Selenium35-模块化设计_基础操作_06


  • 定义用例基类
  • Selenium35-模块化设计_基础操作_07


  • setUp方法
  • Selenium35-模块化设计_基础操作_08


  • 其他通用方法
  • Selenium35-模块化设计_模块化_09








举报

相关推荐

0 条评论