web自动化流程总结
一. 了解需求,什么是系统的核心业务
二. 编写测试用例:用例名称,前置条件,测试数据,测试步骤,期望结果
三. 自动化代码的初步构建:所有的元素定位、元素操作、测试用例都写在一个模块中
问题:
1. 层次混乱,一旦页面元素调整,需要挨个寻找对应的测试模块,测试类,测试用例函数,不便于后期维护
2. 不便于代码的复用
四. 引入PO模式,进行分层设计:实现测试用例和页面对象分离
好处:
1. 层次清晰,相互独立,易维护
2. 页面对象可以多次调用,提高了代码的复用度
五. 引入单元测试框架unittest
六. 优化分层设计
将每个页面公共的属性和方法提取出来,封装成一个BasePage模块下的BasePage类,后期各个页面只需要继承它,就可以获得父类的所有属性和方法,这样不仅简化了代码,而且提高了复用度
七. 引入pytest:基于unittest,比unittest更"智能"
好处:
1. 可以通过打标记来运行特定的测试用例
2. 利用contest.py定义公共的fixture,多个测试类中都可以调用,不需要每个测试用例类都定义一遍环境准备和环境清理,简化了代码
3. pytest可以按一定规则自动发现测试用例,而unittest则需要向指定的测试套件中添加测试用例
4. 利用pytest-html库,可以生成自带的html报告和xml文件,而xml文件的好处是方便跟其它平台的集成和展示,方便做二次开发
八. 注意点
1. 做自动化前,要有独立的账号,避免外界环境的干扰
2. 页面顺序完全是由业务逻辑来决定,由测试用例来决定。因此在封装页面时不用考虑谁来调用它,不用考虑哪一个页面操作之后再来使用它(或者哪一个功能操作之后再来使用它),应该考虑的是无论前面做了什么样的操作,谁来用它,任何一个步骤来调用它的时候,它都能正常的操作(这也是为什么一些页面的元素需要滚动操作)
3. 在封装功能时不要考虑在用例中是什么意思,只需要考虑在本页面是什么功能(比如:标详情页面获取余额功能的封装,不需要把函数命名为get_user_left_money_before_invest,而是在只考虑它的功能的情况下命名为get_user_left_money)
4. 在选标的过程中,不要指定特定的标名,而是要随机选择,因为页面上的标是会变的。因此测试数据的选取,用例的设计要遵循尽量不要依赖系统的原则,这样也提高了代码的稳定性
5. 投资操作的前置条件是:可用余额要大于投资金额,如何保证这个条件,有两种方法:
1) 后台充值足够多的钱
2) 判断当前用户余额够不够,不够就充值,可以调用查询接口查询用户余额,调用充值接口进行充值——因为API操作是非常快的,这也提高了测试用例的效率
6. 保证用例的独立性:每一个测试用例都要重新打开浏览器
九. 分层设计结构图

十. WEB自动化流程图

web自动化流程总结的更多相关文章
- 【JavaScript】停不下来的前端,自动化流程
http://kb.cnblogs.com/page/501270/ 流程 关于流程,是从项目启动到发布的过程.在前端通常我们都做些什么? 切图,即从设计稿中获取需要的素材,并不是所有前端开发都被要求 ...
- Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)
标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...
- Web自动化之Headless Chrome测试框架集成
使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...
- Selenium Web自动化 原理
文章转自 白月黑羽教Python 原理 说到web应用自动化测试,第一选择就是 Selenium 框架. Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序像人一样( ...
- Robotframework Web自动化实战课程
想学习的小伙伴,现在可以报名了!!!7月1日正式开课本期课程主要是web自动化为主,根据平时工作经验整理的一套流程以及使用过程中常见的问题总结.学完后能很快上手,即学即用,课后遇到问题在线解答,远程协 ...
- Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...
- 这一次,Google 终于对 Web 自动化下手了!
大家好,我是安果! 最近 Google 对 Chrome 进行了一次比较大的更新,其中一项是脚本录制回放功能,它可以非常方便我们处理一些自动化场景 我们可以在 Chrome 官网下载 Chrome C ...
- web自动化工具-开篇
web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...
- web自动化工具-liveStyle
web自动化工具-liveStyle LiveStyle. The first bi-directional real-time edit tool for CSS, LESS and SCSS主要用 ...
随机推荐
- explorer.exe中发生未处理的win32异常
explorer.exe中发生未处理的win32异常的错误提示,是windows系统比较常见的错误事件,多数在开机遇到,也有在电脑使用过程中遇到. 了解explorer.exe进程 从百度百科了解到, ...
- Druid对数据库密码加密的坑
背景: 在对已有项目搭建本地环境,修改了本地ip端口和数据库帐号密码(使用了明文). 然后项目一直跑不起来,还抛出各种异常,经过分析发现主要错在这里:druid java.lang.IllegalAr ...
- Java中的(构造方法、方法重载、final修饰符使用及继承和抽象)
构造方法: 构造方法的名称和类名相同,没有返回类型,参数列表(类型.个数)不同 方法重载:成员方法和构造方法都可以进行重载 方法名相同但是参数列表(类型,个数)不同,成为方法的重载. 继承:直支持单继 ...
- MySQL中的共享锁与排他锁
MySQL中的共享锁与排他锁 在MySQL中的行级锁,表级锁,页级锁中介绍过,行级锁是Mysql中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共 ...
- python数据类型三(字典)
一.字典的介绍 字典(dict)是python中唯一的一个映射类型,它是以{}括起来的键值对组成,在dict中key是唯一的,在保存的时候,根据key来计算出一个内存地址,然后将key-value保存 ...
- Windows 7 下 Node.js 连接 Oracle
原创作者: sailtseng 1. 安装 Oracle 11g express 详见: <Windows 7 x64 安装 Oracle 11g Express> 2. 安装 Micr ...
- 用仿ActionScript的语法来编写html5——第六篇,TextField与输入框
一,对比1,html5中首先看看在html5的canvas中的文字显示 var canvas = document.getElementById("myCanvas"); var ...
- (转载)undo表空间
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...
- JavaScript 函数,math对象,Date对象 序列化 总结
函数 函数定义 // 普通函数定义 function f1() { console.log("Hello world!"); } // 带参数的函数 function f2(a, ...
- PAT 天梯赛 L1-005. 考试座位号 【MAP标记】
题目链接 https://www.patest.cn/contests/gplt/L1-005 题意 有一个 考生号,一个试机座位,一个考试座位,给出试机座位,查询 考生号和考试座位 思路 MAP + ...