一、PO模式思想

PO模式是一种自动化测试设计模式,将页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,从而提供可维护性。

PO设计模式基础(页面作为类、元素对象作为属性、元素操作作为方法)

写了多个页面类后,发现可以归纳总结一个base_page父类,其它页面类继承该父类,首先抽象封装一个BasePage类,这个基类拥有一些指向Webdriver的公共的方法,然后每一个Page继承基类BasePage,可以通过driver管理每一个Page中的元素,而且在Page中将这些操作封装为一个一个的方法。每一个page运行时候通过调用page和basepage中的方法对元素进行操作。

优化一:考虑进页面识别元素导致元素识别不稳定,把页面类的属性存放字典形式的元素识别信息。

优化二:数据分离,把元素信息放置到excel\yaml等数据源文件中,然后在代码层进行加载给元素识别信息赋值(代码设计编写好用为主)

优化三:每个模块的每个页面单独使用Excel存放元素信息,与之对应有每个模块的每个页面单独类。

优化四:一个模块对应一个测试套件,一个测试套件内有多个测试类,一个测试类下有多个测试用例。

优化五:

selenium分层设计:元素层、功能层、用例层。

二、PO模式下的框架结构

Python_Selenium 之PO模式的思想、优化思路的更多相关文章

  1. web自动化测试中的PO模式(一)

    1.PO模式的思想 原理: 将页面的元素定位和元素行为封装成一个page类 类的属性:元素的定位 类的行为:元素的操作 页面对象和测试用例分离 测试用例: 调用所需要页面对象中的行为,组成测试用例 测 ...

  2. Python_selenium PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用

    作用: PO模式下 Tesecase 的相同执行代码做成selenium_base_case公共模块及调用,提高代码简洁度,实现同样效果. 框架结构: 代码简单实践: common模块下 seleni ...

  3. 【58沈剑架构系列】mysql并行复制优化思路

    一.缘起 mysql主从复制,读写分离是互联网用的非常多的mysql架构,主从复制最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重. 为什么mysql主从延时这么大? 回答:从 ...

  4. PO模式学习笔记

    框架: 1.PO模式应用(测试对象和测试用例分离)(写到简历中) 2.引入ddt 3.深入分层:测试数据分离 4.遵循原则:测试用例的独立性 5.深入分层:元素定位分离 6.框架优化:提取basepa ...

  5. 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)

    注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...

  6. PHP优化思路

    想起来记录一下自己对PHP的优化思路 针对Nginx和 PHP-FPM进行优化 首先应该分为代码层面.配置层面.架构层面 代码层面 参见了https://segmentfault.com/a/1190 ...

  7. 游戏server之server优化思路

    本文仅仅是提供一些游戏server优化思路,当中一些思路是用在不同场合的,不是同个架构的.须要依据应用场景选用合适方式. 本文的引用的文章都是在自己写的在本博客内的.也都是上线开几百个服的成熟项目的. ...

  8. web自动化针对PO模式进行二次封装之basepage

    在PO模式当中,我们做到了页面对象与测试用例的分离,但在页面对象编写时,我们仍然还有优化的空间.页面对象有一些共同的基本操作,可以封装起来,并可以在基本操作当中加上日志和异常截图的处理.比如说我们在查 ...

  9. neo4j - 查询效率的几种优化思路

    最近在公司实习做的就是优化neo4j图形数据库查询效率的事,公司提供的是一个在Linux上搭建且拥有几亿个节点的数据库.开始一段时间主要是熟悉该数据库的一些基本操作,直到上周才正式开始步入了优化数据库 ...

随机推荐

  1. hdu1556 线段树段更新(简单题)

    题意: N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个 ...

  2. adbi学习:安装和使用

    adbi 是一个android平台(arm 32 )的so注入+挂钩框架,源码开放在github上 :  ADBI 项目 .从github上下载来目录如下: 执行主目录下build.sh编译后目录如下 ...

  3. 神经网络与机器学习 笔记—支持向量机(SVM)(上)

    支持向量机(SVM)的主要思想: 给定训练样本,支持向量机建立一个超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化. 线性可分模式的最优超平面 训练样本{(xi,di)}^N i=1 ,其中x ...

  4. Day006 方法的重载

    方法的重载 定义 重载就是在一个类中,有相同的函数名称,但形参不同的函数. 方法的重载的规则 方法名称必须相同. 参数列表必须不同(个数不同.或类型不同.参数排列顺序不同等). 方法的返回值类型可以相 ...

  5. 【vue-09】axios

    [vue-09]axios 文档:Axios中文文档 官网 为什么要使用axios 功能特点: 支持发送ajax异步 支持在NodeJs中发送ajax请求. 支持Promise 支持拦截器请求和响应 ...

  6. Gridea博客无法载入CSS样式的解决办法

    今日在使用Gridea客户端更新博客的过程中,推送到远端仓库后内容显示正常,但是无法载入主题样式,就是没有载入CSS样式,折腾了一下午在搞懂问题出在哪里了,下面说一下自己的解决思路. 问题描述 首先, ...

  7. maven 中setting.xml

    <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http:/ ...

  8. 月薪6K和月薪2W的测试,有什么区别?

    之前,我收到了一位朋友的好消息,说自己拿到了接近月薪 20k 的 offer.   说实话,软件测试岗位前期门槛低,但是想要拿到高薪真没那么简单.工作 2-3 年薪资还在原地打转的同学,都大有人在. ...

  9. Mybatis学习之自定义持久层框架(五) 自定义持久层框架:封装CRUD操作

    前言 上一篇文章我们完成了生产sqlSession的工作,与数据库的连接和创建会话的工作都已完成,今天我们可以来决定会话的内容了. 封装CRUD操作 首先我们需要创建一个SqlSession接口类,在 ...

  10. beta设计和计划

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 Beta设计和计划 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 ...