Giter VIP home page Giter VIP logo

autotest's Introduction

Python + Selenium + BSTestRunner 自动化测试框架

环境配置要求

  • Python: 3.x
  • Selenium: 3.x
  • BSTestRunner: 兼容Python 3的版本

框架概述

本项目采用Python内置的unittest框架构建自动化测试,结合数据驱动测试(DDT)和Excel进行测试用例管理,使用Selenium框架进行Web自动化。

目录结构

  • bussiness: 存放业务逻辑模块。
  • data: 存放测试数据和界面元素定位信息。
  • report: 存放生成的测试报告。
  • case: 存放测试用例。
  • log: 存放测试日志。
  • resultpang: 存放测试过程中的截图。
  • suite: 存放测试用例集。
  • util: 存放公共工具模块。
  • run.py: 项目入口脚本,用于执行测试。

功能特点

公共逻辑模块 (bussiness)

包含基于 Selenium WebDriver 和 YAML 配置文件的自动化测试框架。为登录、注册、找回密码和修改密码等业务功能提供类封装,并使用 WebDriverWrapper 类来统一执行浏览器操作。这些操作包括打开网页、定位元素、输入数据、点击按钮等,简化了测试脚本的编写。

测试用例管理 (data)

利用 Excel 管理测试用例,通过DDT方法提升测试覆盖率和灵活性。使用yaml文件管理页面元素定位,确保元素可被准确找到。Excel中可以定义不同的测试场景和数据,yaml文件中定义元素的定位方式和属性,使得测试用例的编写更加灵活和可维护。

测试报告 (report)

生成包含测试结果、错误信息和日志详情的详细测试报告,便于分析和调试。测试报告以HTML格式生成,包含测试用例的执行结果、执行时间、失败原因等信息,方便测试人员和分析人员查看。

测试用例 (case)

使用unittestddt库实现数据驱动测试。实现了基于Excel文件中的数据进行自动化测试,涉及WebDriver操作和日志记录。测试用例中可以定义不同的测试步骤,如打开网页、输入数据、验证结果等,通过数据驱动的方式,可以轻松实现不同的测试场景。

测试日志 (log)

记录测试执行过程中的日志,帮助问题排查和性能分析。日志可以记录测试脚本的执行过程、错误信息、异常信息等,方便测试人员定位问题和分析测试结果。

测试截图 (resultpng)

在测试过程中自动保存截图,用于定位问题和验证测试结果。截图可以记录测试过程中的关键步骤或错误界面,方便测试人员和分析人员查看。

测试用例集 (suite)

通过测试套件构造和创建测试报告。测试套件可以包含多个测试用例,按照特定的顺序执行,生成整体的测试报告。通过测试套件,可以方便地管理和执行多个测试用例。

公共模块 (util)

封装工具函数和辅助功能,提高代码可读性和复用性。包括读取测试数据、封装WebDriver操作和日志配置。公共模块中可以定义一些常用的函数和类,如读取Excel文件、处理数据、生成日志等,避免重复编写代码,提高测试脚本的可维护性。

执行脚本 (run.py)

入口脚本,负责初始化环境、加载测试用例并生成测试报告。执行脚本中可以定义测试脚本的入口,包括初始化WebDriver、读取测试数据、执行测试用例、生成测试报告等操作,通过运行该脚本,可以自动化地执行测试并生成相应的报告。

运行说明

  1. 搭建后端项目本地运行环境(步骤略)。
  2. 配置测试用例和环境:
    • data目录中配置测试用例和界面元素定位文件。
    • 修改case文件夹中相关测试用例的配置参数。
  3. 执行测试:
    python run.py
  4. 查看测试报告:
    • 测试完成后,报告将存放在report目录中,包括详细的测试结果和分析信息。
    • 报告使用BSTestRunner格式。

未来规划

  • 增加更多测试用例以提升覆盖率。
  • 优化测试执行效率。
  • 集成CI/CD工具。
  • 增强报告的可视化和交互性。

autotest's People

Contributors

liwanlei avatar shige666hello avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.