请点击输入图片描述(最多18字)

当我们以脚本的形式编写了大量的自动化测试代码后,很容易发现代码可读性太差了、任何一个测试脚本几乎毫无扩展能力或者说扩展起来只能修改边边角角、一旦被测系统的UI层发生变化对于测试代码的修改来说简直就是灾难性的,整个自动化工程几乎毫无结构可言,当面临这些问题的时候实际上已经失去了一部分自动化测试原有的职能

请点击输入图片描述(最多18字)

任何自动化测试团队在开展自动化测试这项活动的之前,必须考虑的是这项活动的ROI,自动化测试的本职是解放人力,基于前边所述的常见情况不仅仅其ROI非常低,也违背了自动化的初衷

基于这个大背景下,常规的自动化测试活动必须引入PO模式,它是一种自动化测试的设计模式,也是一种解耦的思想,即:以页面为单位,将页面中的控件及控件的动作逐一提炼,从而在测试脚本中可以直接使用,其最终目的是使得元素定位表达式``页面对象``测试代码三者分离

而分离后的测试代码,具有极高的可复用性、可读性,可维护性,可扩展性,而这像极了面向对象思想更像极了Java里Spring的MVC模式和Django的MTV模式

01

定义基本页面类

在自动化测试活动中,每个页面都有其独特的地方,每个月面有都与其共性,为了达到PO模式的目的,首先需要考虑的是每个月面的共性,第一项需要做的就是定义页面的基本特性及活动,它是所有页面类的基类,是独立于所有实际页面之外的

实例代码:

02

定义具体页面类

定义了基本页面类,接下来便是具体到每个页面,因为每个也面都有不同,定义具体页面类也是定义其不同,但凡有相同的都应该抽象到基本页面类中去定义

03

编写测试脚本

定义基本页面类是为了更快速的定义具体页面类,使得页面对象的共性可以复用,减少测试代码量;定义具体页面类实际上是扩展了基本页面类,相对于基本页面类而言它是独特的页面类;之后,便可以轻松的编写自动化测试脚本,脚本内容也变得简洁而清晰

阿里软件测试工程师手把手教学:自动化脚本中的设计模式-PO模式详解相关推荐

  1. 阿里软件测试工程师手把手教学——自动化测试报告太丑,怎么办?

    TestNG的报告太难看了?测试结果维度显示受限?无法确定用例的优先级?查看错误信息不方便吗? Allure测试报告框架帮助您轻松实现"高"报告呈现.本文通过实例演示了如何将All ...

  2. 从java多态到策略模式_设计模式中的多态——策略模式详解

    2. 策略模式详解 2.1 策略模式定义 策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户端而独立的变化. 可以使用多态进行类比来理解策略模 ...

  3. 阿里软件测试工程师手把手教学—作为测试,如何理解线程同步异步

    案例描述 在日常测试中,当程序加载数据文件时,经常会出现页面卡住.程序不响应.程序崩溃等情况.,调查发现与程序进程中线程的同步和异步有关. 问题描述: 使用文件查看器打开压缩文件时,程序没有响应. 问 ...

  4. 阿里软件测试工程师手把手教学—如何快速定位bug 编写测试用例?

    作为一个测试人员,如果你连常见的系统问题都不懂得分析,频繁地把前端人员问题分配给后端人员,把后端人员问题分配给前端人员,那么你在团队发展中的地位是显而易见的,声誉.赏识.加薪应该是你遥不可及的梦想. ...

  5. 阿里软件测试工程师手把手教学——如何更好地设计测试用例?

    不知道大家知不知道软件质量模型这个概念. 软件质量模型是衡量软件整体质量效果的度量标准.目前常见的质量模型包括麦考尔模型.博恩模型.FURPS模型.德罗梅模型和ISO9126模型. 一般来说,软件产品 ...

  6. java中的生产者消费者模式详解

    方式 一: Synchronized方式 注:此种方式会造成资源的浪费: 利用锁的notifyAll()方法会将所有的线程都唤醒,会造成资源的浪费 class Resource {private St ...

  7. Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法

    [原文链接]Pytest自动化脚本中各个层级的setup和teardown的执行流程和使用方法 文章目录 一.自动化脚本组成简介 二.测试类中的各个层级的setup和teardown 三.测试文件中各 ...

  8. linux基础配置脚本,Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selin ...

  9. python脚本运行时网络异常_Python中异常重试的解决方案详解

    前言 大家在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理. 原先的流程: def crawl_page(url): pass def log_ ...

最新文章

  1. C++知识点21——使用C++标准库(再谈string——string的搜索和数值转化)
  2. 需求的推动力-网线啥的
  3. PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
  4. 邮箱解决任务间资源共享问题
  5. 宏光MINI EV收割的年轻人,又被苏宁、小米、欧拉盯上了
  6. 五分钟了解先验概率和后验概率
  7. 【深度学习】21个深度学习调参技巧,一定要看到最后一个
  8. div border-radius
  9. 算法设计与分析(第四周)大整数相乘 分治法【不能解决溢出问题】
  10. Kingback小组冲刺博客
  11. 基于RStudio 实现数据可视化之二
  12. 中缀表达式转换为后缀表达式算法
  13. 网络分析软件(科来网络分析软件)
  14. xp系统一直跳出宽带连接服务器,xp系统一直显示正在获取网络地址的操作方案...
  15. 看不懂英文文档,是我们英语太差吗?
  16. [人生故事] -- 花朵静悄悄地开放
  17. 数据分析之历史上的百年奥运
  18. 神经元的结构模型图片,神经元模型图片解析
  19. 印象笔记Android怎样创建md,LocalNote,让你像使用本地文件一样使用印象笔记(支持 markdown 格式)...
  20. 电脑误删除的文件怎么恢复

热门文章

  1. 电子地图是利用计算机,电子地图制图的运用与发展
  2. (转载)来一本奥运版圣经?
  3. 摄像头-主码流子码流
  4. Word 纸张方向横向纵向调整格式问题
  5. xshell7 无法启动
  6. 使用 Dev-C++开发windows程序界面设计
  7. Spring中涉及的设计模式总结
  8. 外贸须知|独立站海外营销推广秘笈之SEO优化
  9. 前端搭建(HTML+CSS+JS)游戏官网(或其它)页面------实例与代码(示例:游戏官网界面)
  10. 中国软件人没有创造力?