测试文档---消息驿站

news2024/11/24 11:03:28

文章目录

  • 项目背景
  • 测试计划
    • 服务器模块
      • 设计测试用例
      • 进行单元测试/黑盒测试
    • 客户端模块
      • 设计测试用例
      • 进行单元测试/黑盒测试
    • 转发规则模块
      • 设计测试用例
      • 进行单元测试/黑盒测试
  • 测试总结

项目背景

在高并发量的情况下,针对某一台服务器的访问量激增就可能导致该服务器“宕机”,造成难以估量的损失。因此,就需要我们自己设计一个MQ来进行“削峰填谷”保证服务器能够平稳运行。在我们的MQ中通过对虚拟主机、交换机、队列、绑定的管理来控制对消息的接收和转发。我们一共分为三个模块来进行功能实现:

  1. 公共模块:约定网络通信协议、进行消息的序列化和反序列化

  2. 服务器模块:实现对虚拟主机、交换机、队列、绑定、消息的内存管理和硬盘管理

  3. 客户端模块:建立生产者和消费者的网络通信连接、通过信道进行数据传输

测试计划

因为我们的“消息驿站”项目是一个纯后端项目,我们要对每个模块分别设计测试用例来进行单元测试/黑盒测试。

服务器模块

设计测试用例

  • 数据库管理:
    测试交换机的测试用例:testExchange,ExchangeType.DIRECT,true,false,[“aaa”,1],[“bbb”,2]
    测试队列的测试用例:testQueue,true,false,false,[“aaa”,1],[“bbb”,2]
    测试绑定的测试用例:testExchange,testQueue,testBindingkey

  • 文件管理:
    测试目录创建:“/data/queue_data.txt”,“/data/queue_stat.txt”
    测试修改统计消息文件:totalCount=100,validCount=50
    测试插入与删除消息:null,”testMessage“,”testRoutingKey“
    测试取出所有消息:null,”testMessage+i“,”testRoutingKey“
    测试GC消息文件:null,”testMessage+i“,”testRoutingKey“

  • 内存管理
    测试交换机的测试用例:testExchange,ExchangeType.DIRECT,true,false
    测试队列的测试用例:testQueue,true,false,false
    测试绑定的测试用例:testExchange,testQueue,testBindingkey
    测试消息的测试用例:null,”testMessage“,”testRoutingKey“

进行单元测试/黑盒测试

  • 数据库管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 文件管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 内存管理

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

客户端模块

设计测试用例

  • client测试用例:
    测试交换机的测试用例:testExchange,ExchangeType.DIRECT,true,false,null
    测试队列的测试用例:testQueue,true,false,false,null
    测试绑定的测试用例:testExchange,testQueue,testBindingkey
    测试消息的测试用例:null,”testMessage“,”testRoutingKey“

  • broker server测试用例:
    测试交换机的测试用例:testExchange,ExchangeType.DIRECT,true,false,null
    测试队列的测试用例:testQueue,true,false,false,null
    测试绑定的测试用例:testExchange,testQueue,testBindingkey
    测试消息的测试用例:null,”testMessage“,”testRoutingKey“

进行单元测试/黑盒测试

  • client

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • server

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

转发规则模块

设计测试用例

在这里插入图片描述

进行单元测试/黑盒测试

在这里插入图片描述
在这里插入图片描述

测试总结

我们的”消息驿站“就是通过对虚拟主机、交换机、队列、绑定的管理来控制消息的接收和转发。因此,在测试时应该重点关注它们内部的方法执行是否正确。我们在上述介绍的测试过程中,通过对消息所处的各个环境里对交换机、队列、绑定、消息的管理设计对应的测试用例,全面的检测了消息传递过程中的各种情况,最终保证了消息传输的正确性,也就保证了项目的正确性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1292710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于最长上升子序列的动态规划问题的优化算法(二分搜索)

最长递增子序列 暴力解法: 思路:使用动态规划的思想,判断当前元素之前的所有元素,如果比当前元素小,则修改当前元素的最长递增子序列(需判断是否需要修改)。 时间复杂度:O(n^2) im…

leetcode做题笔记1466. 重新规划路线

n 座城市,从 0 到 n-1 编号,其间共有 n-1 条路线。因此,要想在两座不同城市之间旅行只有唯一一条路线可供选择(路线网形成一颗树)。去年,交通运输部决定重新规划路线,以改变交通拥堵的状况。 路…

C#winform根据选择的Excel文件在数据库中创建数据表

C#winform根据选择的Excel文件在数据库中创建数据表 需求:根据选择的Excel文件在数据库中创建数据表;可以实现特殊字段(比如字段中含有数字、下划线、特殊字符等)以及表名创建 C#实现 using System; using System.Data; using S…

运维05:自动化

人工运维时代 运维人员早期需要维护众多的机器,因此需要执行很多重复的劳动,很多机器需要同时部署相同的服务或者是执行相同的命令,还得反复地登录不同的机器,执行重复的动作 自动化运维时代 早期运维人员会结合ssh免密登录&…

Shell数组函数:数组——数组和循环(二)

for脚本快速定义数组 [rootlocalhost ~]# vim for12.sh #脚本编辑 #!/bin/bash for a in cat /etc/hosts do hosts[o]$a donefor i in ${!hosts[]} do echo "$i : ${hosts[$a]}" done[rootlocalhost ~]# vim for12.sh #执行脚本区别 :for的空格分割…

漏洞复现-某教育视频云平台前台某接口文件上传漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【每日一题】—— D. Divide and Equalize(Codeforces Round 903 (Div. 3))(数学、数论)

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

代码随想录二刷 | 栈与队列 | 前 k 个高频元素

代码随想录二刷 | 栈与队列 | 前 k 个高频元素 题目描述解题思路 & 代码实现 题目描述 347.前k个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nu…

[node] Node.js的Web 模块

[node] Node.js的Web 模块 什么是 Web 服务器?Web的应用架构http使用方式使用 Node 创建 Web 服务器使用 Node 创建 Web 客户端 什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器…

http与apache

目录 1.http相关概念 2.http请求的完整过程 3.访问浏览器背后的原理过程 4.动态页面与静态页面区别 静态页面: 动态页面: 5.http协议版本 6.http请求方法 7.HTTP协议报文格式 8.http响应状态码 1xx:提示信息 2xx:成功…

『TypeScript』深入理解变量声明、函数定义、类与接口及泛型

📣读完这篇文章里你能收获到 了解TypeScript变量声明与类型注解掌握TypeScript函数与方法的使用掌握TypeScript类与接口的使用掌握TypeScript泛型的应用 文章目录 一、变量声明与类型注解1. 变量声明2. 类型注解3. 类型推断 二、函数与方法定义1. 函数定义2. 方法定…

学习Opencv(蝴蝶书/C++)相关1——4.图形和大型数组类型

文章目录 1. 多维度数组和多通道数组区别2. NAryMatIterator详解2.1 介绍2.2 dispatch和SIMD(OpenCV和numpy)2.2.1 OpenCV的2.2.2 numpy的2.2.3 OpenCV文档搜索2.3 调用指令集对代码进行优化2.4 NAryMatIterator理解2.4.1 plane和连续2.4.2 构造函数和迭代2.5 NAryMatIterato…

Cisco Packet Tracer配置命令——交换机篇

交换机VLAN配置 在简单的网络环境中,当交换机配置完端口后,即可直接应用,但若在复杂或规模较大的网络环境中,一般还要进行VLAN的规划,因此在交换机上还需进行 VLAN 的配置。交换机的VLAN配置工作主要有VLAN的建立与删…

CAN总线协议编程实例

1. can.h #ifndef __CAN_H #define __CAN_H#include "./SYSTEM/sys/sys.h"/******************************************************************************************/ /* CAN 引脚 定义 */#define CAN_RX_GPIO_PORT GPIOA #define CAN_RX_GPI…

超大规模集成电路设计----FPGA时序模型及FSM的设计(八)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT 超大规模集成电路设计----RTL级设计之FSM(八) 7.1 CPLD的时序模型7.1.1 XPLA3 时序模型7.1.…

算法___

文章目录 算法两数之和 算法 两数之和 题目如下图: 我的答案如下图: 我采用的是最笨的思路,直接暴力的两次循环,第一次外循环是取数组的第一个元素,然后内循环会遍历数组后面除第一个的所有元素,然后和…

煤矿电力监控系统

煤矿电力监控系统是一种用于煤矿电力系统的监控解决方案。该系统在重点煤矿的矿井变电站、主运输、主通风、主排水、主副提升等重要设备上加装智能用电融合终端,实时监测煤矿重要设备的电流、电压、负载等主要数据变化。为管理人员提供实时监测、报表管理、告警中心…

初始类与对象

初始类与对象 实验介绍 本课程是进一步对类与对象的深入认识,如何定义并实例化一个类,介绍如何使用 C 标准库 string 类等。 知识点 认识类与对象内联函数string 类类的定义与实例化 认识类与对象 官方定义 类:在面向对象编程中是一种…

小白学习java理解栈手写栈——第四关(青铜挑战)

内容1.理解栈的基本特征2.理解如何使用数组来构造栈3.理解如何使用链表来构造栈 1.栈的基础知识 1.1栈的特征 栈和队列是比较特殊的线性表,又称为访问受限的线性表。栈是很多表达式、符号等运算的基础,也是递归的底层实现,理论上递归能做的…

vim常见操作

vim常见操作 文章目录 vim常见操作1. 回退/前进2. 搜索3. 删除4. 定位到50行5. 显示行号6. 复制粘贴7. 剪贴8. 替换9. vim打开文件的时候出现 1. 回退/前进 1.esc进入命令模式 2.ctrlr 前进 u 回退2. 搜索 1) esc进入命令模式 2) /text  查找text&am…