说说UI自动化中的PO模式】的更多相关文章

PO模式,全称PageObject模式,即页面对象模式.将页面定位与业务操作分离. po模式有以下几个优点: 1.易读性好 2.扩展性高 3.复用性强 4.维护性好 5.代码冗余率低 了解了po模式及po模式的优点,可po模式在实际项目中到底该怎么做呢?接下来我们就来看看: 在本篇中我将po模式分为三层,分别是页面定位层,页面对象层,业务逻辑层:我将对每层逐一介绍. 一.页面定位层:每个页面作为一个模块,将页面元素定位表达式统一存放在该页面 例:登录页面模块部分代码如下 from seleniu…
一.PO模型 1.PO介绍:page(页面) object(对象) 在自动化中,Selenium 自动化测试中有一个名字经常被提及 PageObject (思想与面向对象的特征相同),通常PO 模型可以大大提高测试用例的维护效率. 优点: 提交测试脚本可读性 减少代码重复 提高测试用例的可维护性,特别是针对UI变动频繁的项目 缺点: 结构复杂:基于流程进行了模块化的拆分 结构: base(基类) page(页面对象) scripts(业务层) 扩展: loc 变量:类型为元组:*loc为解包 2…
1. PO 设计模式简介 2. 工程结构说明 3. 工程代码实现 page 包 action 包 business_process 包 util 包 conf 包 test_data 目录 log 目录 screenshot_path 目录 main.py 1. PO 设计模式简介 什么是 PO 模式? PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离. PO 模式的设计思想与面向…
1.PO模式的思想 原理: 将页面的元素定位和元素行为封装成一个page类 类的属性:元素的定位 类的行为:元素的操作 页面对象和测试用例分离 测试用例: 调用所需要页面对象中的行为,组成测试用例 测试用例中,只需要含有页面函数的调用和断言,不应该出现元素定位等其他的操作,如果写测试用例中出现需要其他的额外的操作,可以想办法封装到页面对象或者元素定位中 好处: 当某个页面的元素发生变化,只需要修改该页面对象中的代码即可,测试用例不需要修改 提高代码的重用率,结构清晰,维护代码容易 测试用例发生变…
前言 经过前面的实战我们已经编写了几个测试用例,下面我们要用PO设计模式来调整我们的代码,让页面元素和测试业务进行分离,这样看起来直观而且后期的维护也方便. python有一个第三方的PO设计的库,既然已经有了轮子,我们就可以直接造车了. 安装 首先我们来安装 pip install page_objects Code 页面封装 #pages.py from page_objects import PageElement, PageObject class Blog_Login_Page(Pag…
因为某次工作中写了个脚本要来回跑,还要在本机上做很多其他的事情,所以就上网找了个方法,无头浏览器,这样就不会浏览器来回弹出来,执行用例还会很快. 废话不多说,直接放代码: #coding=utf-8 """ creted on : 2019-05-06 updated on : 2019-05-06 description : ABtester for splitFlow """ from selenium import webdriver fr…
1.如果目标元素有id属性,优先使用id定位: 2.元素locator尽可能保证简洁,考虑locator中路径的变化频率,尽量减少后期更新和维护成本: 3.使用xpath时,不要一味的使用‘/’逐层进行选择:合理使用‘/’和‘//’,能简化表达式: 4.尽量使用函数和运算符,如contains(),text(),position()等:运算符包括算数运算符或逻辑运算符等: 以下举例xpath常用语法: 1) xpath=//img[@alt='The image alt text'] 2) xp…
一 .引子 UI自动化,在移动互联网时代的今天,一直都是在各大测试社区最为火爆的一个TOPIC.甚至在测试同行面前一提起自动化,大家就会自然而然的问:“恩,你们是用的什么框架?appium?还是robotium?” 其实在笔者看来,UI自动化是一个ROI较低的测试项(ROI即return on investment,中文意思是投资回报率).但UI自动化相比接口自动化.白盒测试等,它更贴近手工业务测试行为.对于刚起步测试左移.效率提升的团队来说,是最迅速的切入点,也是广大黑盒tester,提升自身…
UI自动化中常用三种等待 目录 1.强制等待 2.隐式等待 3.显示等待 1.强制等待 执行到某一条语句后,然后sleep(3),等待3秒后,才会继续执行后面的语句 2.隐式等待 隐式等待只需要声明一次,一般在打开浏览器后进行声明.声明之后对整个drvier的生命周期都有效,后面不用重复声明. 隐式等待是等待页面加载完,才会继续执行后面的语句:也就是一般情况下你看到浏览器标签栏那个小圈不再转,才会执行下一步 driver = webdriver.Chrome() driver.implicitl…
web UI自动化项目实战-项目 项目使用禅道,所以你需要搭建1个禅道,搭建禅道的方法和步骤见 https://www.cnblogs.com/xinhua19/p/13151296.html 搭建UI自动化的框架 第一步,搭建框架,从配置文件信息开始,然后读取配置文件,然后是读取驱动. 第二步,对selenium中的一些方法做二次封装 第三步,封装页面的元素对象和元素的新增,删除,查询,修改等操作 第四步,测试用例层,设计测试用例 selenium读取配置文件的方法封装 有了配置config.…