zoukankan      html  css  js  c++  java
  • python selenium自动化测试

    [po模型]

    整理一下python selenium自动化测试实践中使用较多的po设计模式。

    为什么要用PO

    基于python selenium2开始开始ui自动化测试脚本的编写不是多么艰巨的任务。只需要定位到元素,执行对应元素的操作即可。

    下面我们看一下这个简单的脚本实现百度搜索。

    img

    从上述代码来看,我们所能做的就是元素的定位,然后进行键盘输入或鼠标动作。就这个小程序而已,维护起来看起来是很容易的。

    但随着时间的迁移,测试套件将持续的增长。脚本也将变的越来越多。如果我们需要维护10个页面,100个页面,甚至1000个呢?

    那么页面元素的任何改变都会让我们的脚本维护变得繁琐复杂,而且变得耗时易出错。

    那怎么解决呢?ui自动化中,常用的一种方式,引入Page Object(PO):页面对象模式来解决,po能让我们的测试代码变得可读

    性更好,可维护性高,复用性高。

    img

    PO是什么:

    1、页面对象模型(PO)是一种设计模式,用来管理维护一组web元素的对象库

    2、在PO下,应用程序的每一个页面都有一个对应的page class

    3、每一个page class维护着该web页的元素集和操作这些元素的方法

    4、page class中的方法命名最好根据对应的业务场景进行,例如通常登录后我们需要等待几秒钟,

    我们可以这样命名该方法:waitingForLoginSuccess()。

    下面我们看下PO的代码目录组织示例:

    img

    PO的优势

    1、PO提供了一种业务流程与页面元素操作分离的模式,这使得测试代码变得更加清晰。

    2、页面对象与用例分离,使得我们更好的复用对象。

    3、可复用的页面方法代码会变得更加优化

    4、更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,

    方法命名为:gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。

    PO实现示例

    下面看下使用PO设计模式构建的百度搜索用例,先看下代码组织结构如下:

    img

    #basePage.py代码如下

    img

    #searchPage.py代码如下

    img

    #testSearchPage.py代码如下

    img

    参考:https://www.cnblogs.com/ljfight/p/7404964.html

  • 相关阅读:
    [Multimedia] 下载 m3u8 格式视频
    [Multimedia] 合并两个 MP4 文件
    [Multimedia] FLV 相关分析工具
    [Android] 从 logcat 日志中获取设备的 mac 地址信息
    [Android Tips] 33. Lottie 在 RecyclerView onBindViewHolder 中 playAnimation 不生效
    [Multimedia] 旋转 MP4 视频方向
    [Jenkins] Jenkins changes 显示 git log 乱码解决
    [Jenkins] Jenkins 时区设置
    [Gradle] 解决高德 jar 包打包到 aar 后 jar 包中的 assets 内容丢失
    [Gradle] 发布 library 到本地 maven 仓库
  • 原文地址:https://www.cnblogs.com/hanfe1/p/14637650.html
Copyright © 2011-2022 走看看