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主要用 ...
随机推荐
- 剑指Offer——用两个栈实现队列
题目描述: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 分析: 代码: class Solution { public: void push(int node ...
- CNI portmap插件实现源码分析
DNAT创建的iptables规则如下:(重写目的IP和端口) PREROUTING, OUTPUT: --dst-type local -j CNI-HOSTPORT_DNAT // PREROU ...
- 正向代理、Nginx(反向代理、负载均衡、静态资源服务器)
淘宝tengine文档(本质就是淘宝版的Nginx) http://tengine.taobao.org/book/index.html
- 在windows上搭建redis集群
一 所需软件 Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 ...
- FPGA电源设计
LDO(低压差线性稳压器),FPGA需要3.3V.2.5V和1.2V,可选用凌力尔特LINEAR:LT1083/84/85,低压差正压可调稳压器. 应用电路如图所示: 输入端加10UF电解电容,输出端 ...
- Tomcat 安装、配置与部署
Tomcat的官方网站:http://tomcat.apache.org/,目前最新版本为7.0. Tomcat下载地址: 1.32位:http://mirrors.tuna.tsinghua.edu ...
- url监控
#!/usr/bin/env python #coding:utf-8 import MySQLdb,requests import time from datetime import datetim ...
- TP框架基础2
---恢复内容开始--- [空操作和空控制器处理] 空操作:就没有指定的操作方法 空控制器:没有指定控制器 http://网址/index.php/Home/User/login http://网址/ ...
- CodeForces - 919D Substring (拓扑排序+dp)
题意:将一个字符串上的n个字符视作点,给出m条有向边,求图中路径上最长出现的相同字母数. 分析:首先如果这张图中有环,则可以取无限大的字符数,在求拓扑排序的同时可以确定是否存在环. 之后在拓扑排序的结 ...
- Django 中间件简介
Django 中间件简介 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. ...