zoukankan      html  css  js  c++  java
  • 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自动化流程图

     

  • 相关阅读:
    你可见过一种基于状压的二进制筛法?
    dp
    tricks
    csp2020 游记
    洛谷P2982 [USACO10FEB]慢下来Slowing down
    NOIP 2018 大翻车记
    2019 ICPC 南京网络赛
    POJ2778 AC自动机 + 快速矩阵幂
    2019 CCPC网络赛
    2018ICPC 北京
  • 原文地址:https://www.cnblogs.com/my_captain/p/9385257.html
Copyright © 2011-2022 走看看