UI自动化实战进阶PO设计模式】的更多相关文章

前言 经过前面的实战我们已经编写了几个测试用例,下面我们要用PO设计模式来调整我们的代码,让页面元素和测试业务进行分离,这样看起来直观而且后期的维护也方便. python有一个第三方的PO设计的库,既然已经有了轮子,我们就可以直接造车了. 安装 首先我们来安装 pip install page_objects Code 页面封装 #pages.py from page_objects import PageElement, PageObject class Blog_Login_Page(Pag…
前言 最近几天因为回老家的缘故,暂时没空学习和记录,好不容易抽空那就赶紧开始后面的实战. 前面我们已经基本完成了测试的框架,并且也有了PO设计模式,后面我们还缺少什么呢?做为自动化测试最主要的测试报告我们是不是还没有,所以今天主要是要集成测试报告. 安装 Unittest测试报告虽然没有自带的测试报告,但是已经有了第三方的测试报告HTMLTestRunner.不过它只支持python2,对于python3可能需要下载后修改文件部分地方进行适配.不过好在已经有人 也解决了这个问题,更新了HTMLT…
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…
首先说说为什么想起来用自动化脚本来实现该项目的自动化. 工作还是以手工测试为主,业务驱动型的项目大概就是这样,业务不停地变,不断的迭代. 自动化测试实施的先决条件: 一 得有时间. 如果有时间大部分的项目都可以实现自动化,这是毋庸置疑 的.不过一般公司的手工测试岗位测试任务之繁重做过的同学应该有体会.我自己负责五个产品线的迭代版本,不得一刻空闲,几乎每天都埋在业务测试中. 二 得有必要. 成本与效率之间很多时候在我所经历的项目中会倾向于手工测试,可以说是严重倾向于手工测试. 大部分迭代版本手工测…
该部分记录测试页面2-StrategyPage,所有页面2上的元素定位.操作.获取属性等方法都写在该类中. 1 页面2继承自BasePage: 2 页面2第一部分写的是所有的定位器 3 页面2第二部分类的方法,包括提取页面元素,页面元素的操作.获取属性.验证元素属性正确性等 4 当用例中需要用到该页面的某元素或操作时,补充方法到该类中,再在用例中调用 5 页面数据最后要与接口对比,需要将接口类和页面类返回的值数据类型等进行统一,方便用例的编写. #coding:utf-8 ""&quo…
脚本思路: 使用pageobject模式,写一个basepage基类,所有页面的通用方法封装到基类中.比如打开页面,关闭页面,等待时间,鼠标移到元素上,获取单个元素,获取一组元素,获取元素的子元素,截图等等. 项目中的测试页面page1和page2都继承自basepage基类.可使用基类定义的方法.基类里会将webdriver和page合二为一,既将webdriver的操作改写成page的方法. 新建一个包pageclass > 分别新建basepage.page1.page2三个python文…
该部分记录如何获取预期结果-接口响应数据,分成两步: 1 获取数据源接口数据 2 提取后续页面对比中要用到的数据 并且为了便于后续调用,将接口相关的都封装到ProjectApi类中. 新建python包:apiclass > 新建python file:api_fund.所有接口相关的操作均放到该文件中.隐去项目相关信息后的代码如下: 1 获取数据源接口数据 # coding:utf-8 import requests from common.round_rewrite import round…
测试需求: 项目包含两个数据展示页面,数据均来自于四个数据源接口. 测试操作步骤: 选择5个大类型中的一个,每个大类型下有3个子类型,选择任一子类型,页面数据更新.需验证页面上的数据与数据源接口数据一致. 自动化必要性: 1 更新频率:接口数据每天更新 2 数据量:单个子类型页面的数据量较大 ,且需全量覆盖15个子类型的数据验证 测试思路:分别获取页面和接口数据,对比是否一致 dinghanhua 2019-01 一 获取接口数据 [预期结果] --requests --发送请求,获取响应 --…
使用简单的unittest.TextTestRunner. 思路: 1 在report目录下创建当日测试报告目录 20190113 2 创建测试报告文件 f = 时间戳.txt 3 加载测试集,运行测试,测试结果unittest.TextTestRunner(stream=f)保存到文件中 项目目录下新建run_test.py文件,写入代码: # coding:utf-8 import unittest from testcase import testcase_index,testcase_s…