API接口自动化测试框架搭建之需求整理、详细设计和框架设计

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: API接口自动化测试框架搭建之需求整理、详细设计和框架设计

1 需求整理

1.1 实现目的

  • API接口自动化测试,主要针对http接口协议;
  • 便于回归测试;
  • 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题;
  • 提升个人自动化测试技术能力,为业务提供强有力的测试手段。

1.2 功能需求

  • 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行;
  • 支持邮件服务,可添加任意团队成员邮箱,及时通知团队成员自动化运行结果;
  • 支持log日志,保存运行过程所有或需要记录的数据;
  • 支持HTML测试报告,直观展示测试结果和数据;
  • 支持用例设计和测试结果分离,便于数据管理;
  • 支持token/cookie获取;
  • 使用HtmlTestRunner,可定制测试报告模板;
  • 全局变量配置,一键修改使用公用参数;
  • 支持单层接口依赖,可以扩展;
  • 使用excel管理测试用例,接口数据写起来快速方便;
  • 支持Jenkins持续集成;
  • 提供测试对象(基于Flask+Python的学生管理系统)

1.3 其他要求

  • 模块化设计,项目框架形式组织代码;
  • 公共方法封装,统一调用;
  • 数据和结果分开,清晰明了;
  • 支持邮件自定义;
  • 代码注释清晰。

1.4 适用人员

  • 有一定测试基础的软件测试人员;
  • 有一定的代码(Python/Java)功底;
  • 致力于学习API接口自动化测试的所有人员。

1.5 学习周期

  • 两个星期到一个月,可达到独立进行API接口自动化测试;

1.6 学习建议

  • 建议按照文章顺序,一步一步进行学习和实践;
  • 文章是从基本的环境搭建到最终框架完全搭建的一个过程,相对来说还是比较详细的;
  • 文章偏向于项目实战,未有太多的理论介绍和名词解释,所以对0基础的人员来说,可能需要额外的时间去补充一下知识;
  • 文章重点是教如何搭建框架,因项目的差异化,可能要对框架中的部分代码进行修改。

2 详细设计

2.1 需求分析

实现需求 进行详细分析,主要有下:

功能 说明
使用Unittest框架 开源自动化测试框架,直接使用
批量或指定用例运行 Unittest框架可支持此功能
log日志 使用Python的logging库即可
生成HTML测试报告 使用HtmlTestRunner模块可实现此功能
用例设计和结果分离 复制用例另存并写入测试结果
用户登录封装 直接把登录功能模块化,使用Unittest框架中的setup,teardown即可
token/cookie获取 登录保持会话
全局变量配置 py配置文件
单层接口依赖 保存返回值,读依赖caseid,替换请求数据
excel管理测试用例 所有接口数据均在excel中维护
提供测试对象 依据一套学生管理系统,进行接口测试环境搭建

2.2 技术栈

技术 版本及说明
Python V3.x(本文为3.7)===编程语言支撑
Request V2.24.0===接口请求
HtmlTestRunner 支持Python3
Logging Python自带===生成log日志
Unittest Python自带===自动化测试框架
Smtplib Python自带===邮件服务
email Python自带===邮件服务
os Python自带===系统模块
openpyxl V3.0.5===操作excel
xlrd V1.2.0===操作excel
xlwt V1.3.0===操作excel
ddt V1.4.2===数据驱动
configparser V5.0.2===config配置文件操作
PyCharm Community 2020.2汉化版
操作系统 Windows10旗舰版64位
其它 后续补充

3 框架设计

在这里插入图片描述

3.1 框架说明

在这里插入图片描述

3.2 框架数据流

在这里插入图片描述

4 预期结果

4.1 测试过程log日志

在这里插入图片描述

4.2 测试报告html格式

在这里插入图片描述

4.3 测试报告邮件格式

在这里插入图片描述

4.4 Excel用例格式

在这里插入图片描述

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5天前
|
机器学习/深度学习 监控 算法
自动化测试框架的演进与最佳实践
随着软件行业的迅猛发展,自动化测试已成为确保软件质量的关键手段。本文将深入探讨自动化测试框架的历史演进、当前趋势以及面临的挑战,并结合实际案例分析,提出一系列的最佳实践策略,旨在帮助读者构建更加高效、稳定的自动化测试体系。
|
1天前
|
安全 Java 测试技术
淘宝API接口测试全攻略
淘宝提供丰富的API接口以促进与平台的数据交互和功能开发。为确保稳定性和安全性,API接口测试至关重要。测试前需熟悉API文档、选配工具(如Postman、JUnit、Selenium)并在独立环境中进行。测试包括端到端、单元及集成测试,并需关注安全问题和正确的数据传输格式。通过有效测试可提升API质量与用户体验。
|
7天前
|
敏捷开发 监控 测试技术
自动化测试框架的演进与实践
【7月更文挑战第19天】随着软件开发行业的飞速发展,自动化测试已成为确保软件质量的重要手段。本文将探讨自动化测试框架的发展历程,从早期的线性脚本到现代的模块化框架,以及它们如何适应敏捷开发和持续集成的需求。同时,我们还将深入分析几种流行的自动化测试工具,并讨论如何在实际项目中有效实施自动化测试策略。
|
12天前
|
测试技术 持续交付 容器
深入探索自动化测试框架的设计与实现
【7月更文挑战第15天】在软件质量保障的众多手段中,自动化测试以其高效、可靠和可重复性的特点,成为提升开发流程效率的重要环节。本文将深入探讨自动化测试框架的设计理念、核心组件以及实际搭建过程中的关键步骤和常见挑战。我们将通过实例分析,揭示如何构建一个灵活、可维护且易于扩展的自动化测试系统,确保它能够满足现代软件开发的需求。
|
10天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
27 2
|
11天前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
25 3
|
13天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
50 5
|
13天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的演进与实践
【7月更文挑战第14天】自动化测试框架在软件开发生命周期中扮演着越来越重要的角色。本文旨在探讨自动化测试框架从简单的脚本到复杂的系统级解决方案的演变过程,并分析其在不同阶段解决的关键问题。通过案例研究,我们将深入了解如何选择合适的自动化测试工具以及设计有效的测试策略,以提升软件质量保障的效率和效果。
|
14天前
|
敏捷开发 存储 数据管理
自动化测试框架设计:从理论到实践
【7月更文挑战第13天】本文将深入探讨自动化测试框架的设计原理与实现方法。通过分析自动化测试的必要性和框架设计的基本原则,结合具体案例,展示如何从零开始构建一个高效、可维护的自动化测试系统。文章不仅涵盖框架的结构设计,还包括最佳实践和常见问题的解决策略,为读者提供一套完整的解决方案和实操指南。
|
13天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
18 2

热门文章

最新文章