一. 了解需求,什么是系统的核心业务

二. 编写测试用例:用例名称,前置条件,测试数据,测试步骤,期望结果

三. 自动化代码的初步构建:所有的元素定位、元素操作、测试用例都写在一个模块中

问题:

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自动化流程总结的更多相关文章

  1. 【JavaScript】停不下来的前端,自动化流程

    http://kb.cnblogs.com/page/501270/ 流程 关于流程,是从项目启动到发布的过程.在前端通常我们都做些什么? 切图,即从设计稿中获取需要的素材,并不是所有前端开发都被要求 ...

  2. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  3. Web自动化之Headless Chrome测试框架集成

    使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...

  4. Selenium Web自动化 原理

    文章转自 白月黑羽教Python 原理 说到web应用自动化测试,第一选择就是 Selenium 框架. Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序像人一样( ...

  5. Robotframework Web自动化实战课程

    想学习的小伙伴,现在可以报名了!!!7月1日正式开课本期课程主要是web自动化为主,根据平时工作经验整理的一套流程以及使用过程中常见的问题总结.学完后能很快上手,即学即用,课后遇到问题在线解答,远程协 ...

  6. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  7. 这一次,Google 终于对 Web 自动化下手了!

    大家好,我是安果! 最近 Google 对 Chrome 进行了一次比较大的更新,其中一项是脚本录制回放功能,它可以非常方便我们处理一些自动化场景 我们可以在 Chrome 官网下载 Chrome C ...

  8. web自动化工具-开篇

    web自动化工具-开篇 最近几年,前端技术风一样的速度迭代更新,各种框架工具雨后春笋般涌现,作为一个平凡的开发者,也只能在洪流中沉沉浮浮,微不足道,以前前端叫做切图仔.美工,如今改了称号叫前端工程师, ...

  9. web自动化工具-liveStyle

    web自动化工具-liveStyle LiveStyle. The first bi-directional real-time edit tool for CSS, LESS and SCSS主要用 ...

随机推荐

  1. python创建进程的两种方式

    1.方式1 import time import multiprocessing def task(arg): time.sleep(2) print(arg) def run(): # 进程1 p1 ...

  2. python线程间数据共享(示例演示)

    ``` import threading data_list = [] def task(arg): data_list.append(arg) print(data_list) def run(): ...

  3. Django - 回顾(2)- 中介模型

    一.中介模型 我们之前学习图书管理系统时,设计了Publish.Book.Author.AuthorDetail这样几张表,其中Book表和Author表是多对多关系,处理类似这样简单的多对多关系时, ...

  4. (转)JAVA-反射机制的使用

    Java反射机制的实现原理 反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠 ...

  5. 003-mysql查询表的数据大小

    在需要备份数据库里面的数据时,我们需要知道数据库占用了多少磁盘大小,可以通过一些sql语句查询到整个数据库的容量,也可以单独查看表所占容量. 1.查看数据库表结构大小,要查询表所占的容量,就是把表的数 ...

  6. 关于shared pool的深入探讨(四)

    我们进一步来讨论一下shared pool的处理: 先进行相应查询,获得测试数据: [oracle@jumper udump]$ sqlplus "/ as sysdba" SQL ...

  7. Part01、memcache 缓存

    Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy 目录 一. Memcached Memcached安装和基本使用 Python操作Memcached2.1 se ...

  8. Django之查询总结

    models.Book.objects.filter(**kwargs): querySet [obj1,obj2]models.Book.objects.filter(**kwargs).value ...

  9. Django-form进阶+详细版

    Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 一.创建Form类 #!/usr/bin/en ...

  10. Mootools遮罩层练习(原为网上的jquery写法)

    <html > <head> <meta charset="utf-8" /> <title>mootools 遮罩层</ti ...