基于学习交流社区的自动化测试实现

news/2024/5/20 11:31:56/文章来源:https://blog.csdn.net/m0_57248981/article/details/132415577

一 项目介绍


项目名称

项目名称: 学习交流社区

项目介绍

项目介绍: 学习交流社区是一个基于Spring的前后端分离的在线论坛系统。使用了MySQL数据库来存储相关信息,项目完成后使用Xshell将其部署到云服务器上。

前端页面: 前端共由八个页面构成:注册页面,登录页面,首页,编辑帖子页面,帖子列表页面,个人中心页面,修改个人信息页面,帖子详情页面。

项目总结: 该项目可以实现通过发布帖子分享技术,并通过别人发布的帖子学习知识来进行技术交流,所以也可称之为技术交流社区。

项目功能

学习交流社区主要实现了以下功能
用户注册,用户登录,编辑帖子,删除帖子,查看帖子,点赞帖子,站内信,编辑个人信息等功能。

项目展示

项目展示链接: 学习交流社区
项目源码链接: code论坛源码


二 测试用例设计和功能测试


1.测试用例设计

测试用例会从界面测试,功能测试,性能测试,易用性测试,安全性测试,兼容性测试六个方面进行设计。

①登录页面

在这里插入图片描述

②注册页面

在这里插入图片描述

③首页

在这里插入图片描述

④发布帖子页面

在这里插入图片描述

⑤修改个人信息页面

在这里插入图片描述

2.功能测试环境

测试环境: win11
项目运行: CentOS,maven,JDK1.8
浏览器: FireFox浏览器,Chrome浏览器

3.实际执行功能测试的部分操作

①登录页面

页面展示
在这里插入图片描述

给定一个正确的账号密码:
用户名:锦鲤
密码:123456

操作

输入用户名输入密码操作预期结果实际结果
点击登录提示用户名不能为空,密码不能为空提示用户名不能为空,密码不能为空
张三(错误的用户名)点击登录提示用户名或密码错误提示用户名或密码错误
锦鲤(正确的用户名)点击登录提示密码不能为空提示密码不能为空
锦鲤(正确的用户名)123(错误的密码)点击登录提示用户名或密码错误提示用户名或密码错误
锦鲤(正确的用户名)123456(正确的密码)点击登录登录成功成功登录

②注册页面

页面展示
在这里插入图片描述

操作

输入用户名输入昵称输入密码输入确认密码勾选同意条款点击注册预期结果实际结果
不勾选点击注册提示都不能为空每个输入框下面都提示不能为空
张三不勾选点击注册提示除用户名外都不能为空其余三个输入框下面提示不能为空
张三张三111123勾选点击注册提示密码和确认密码不相同提示请检查确认密码
张三张三111111不勾选点击注册提示请勾选勾选框标红,点击注册按钮无结果
张三张三111111勾选点击注册注册成功注册成功,跳转到登录页面,弹出是否要保存密码框

③首页

页面展示

在这里插入图片描述

操作

操作预期结果实际结果
点击Java跳转至Java版块跳转至Java版块
点击发布帖子跳转至发布帖子页面跳转至发布帖子页面
点击“任一帖子标题”跳转至帖子详情页跳转至帖子详情页
点击月亮标志切换为夜晚模式切换为夜晚模式
点击铃铛标志显示所有私信显示所有私信

④发布帖子页面

页面展示
在这里插入图片描述

操作

输入标题输入内容操作预期结果实际结果
点击发布提示请输入帖子标题提示请输入帖子标题
测试标题点击发布提示请输入帖子内容提示请输入帖子内容
测试标题测试内容点击发布发布成功发布成功,跳转至首页

⑤修改个人信息页面

页面展示
在这里插入图片描述

操作

操作预期结果实际结果
点击修改头像,上传头像头像变为刚刚上传的图片图片无变化(上传图片功能还未实现)
输入邮箱地址,点击修改修改成功修改成功
输入电话号码,点击修改修改成功修改成功
输入错误原密码,点击提交修改提示密码校验失败提示密码校验失败
输入正确原密码,点击提交修改修改成功修改成功

三 接口测试


接口测试使用了:

  1. Junit单元测试
  2. Springfox Swagger 生成 API,完成 API 单元测试

1.Junit单元测试

单元测试类:

在这里插入图片描述

这里只列举用户接口和帖子接口的单元测试,其余的欢迎参考我的gitee链接:

code论坛

①用户接口

这里列举了注册,登录和修改个人信息的测试代码。

注册方法测试:

    @Test@Transactionalvoid createNormalUser() {// 构造User对象User user = new User();user.setUsername("boy1");user.setNickname("boy");// 定义一个原始的密码String password = "123456";// 生成盐String salt = UUIDUtil.UUID_32();// 生成密码的密文String ciphertext = MD5Util.md5Salt(password, salt);// 设置加密后的密码user.setPassword(ciphertext);// 设置盐user.setSalt(salt);// 调用Service层的方法userService.createNormalUser(user);// 打印结果System.out.println(user);}

修改个人信息测试:

    @Test@Transactionalvoid modifyInfo() {User user = new User();user.setId(3l); // 用户Iduser.setUsername("testUser"); // 登录名user.setNickname("testUser1"); // 昵称user.setGender(null); // 性别user.setEmail("qqq@qq.com");// 邮箱user.setPhoneNum("15366668888"); // 电话user.setRemark("测试"); // 个人简介// 调用ServiceuserService.modifyInfo(user);}

登录测试:

    @Testvoid login() {User user = userService.login("bitboy", "123456");System.out.println(user);}

②帖子接口

这里列举了发布帖子,查询所有帖子列表,删除帖子,点赞帖子的测试代码。

发布帖子测试:

    @Test@Transactionalvoid create() {Article article = new Article();article.setUserId(2L); // boyarticle.setBoardId(1L); // java版块article.setTitle("单元测试");article.setContent("测试内容");articleService.create(article);System.out.println("发贴成功");}

查询所有帖子列表:

    @Testvoid selectAll() throws JsonProcessingException {// 调用ServiceList<Article> articles = articleService.selectAll();// 转换成JSON字符串并且打印System.out.println(objectMapper.writeValueAsString(articles));}

点赞帖子和删除帖子方法测试:

    @Test@Transactionalvoid thumbsUpById() {articleService.thumbsUpById(1L);System.out.println("点赞成功");}@Test@Transactionalvoid deleteById() {articleService.deleteById(11l);System.out.println("删除成功");}

2.Swagger API测试

测试链接:code论坛系统API

接口测试版块总览

在这里插入图片描述

回复接口:

在这里插入图片描述

帖子接口:

在这里插入图片描述

版块接口:

在这里插入图片描述

用户接口:

在这里插入图片描述

站内信接口:

在这里插入图片描述

⭐⭐⭐这里每个接口展示一个功能的测试过程。

①用户接口

功能:用户登录

账号:锦鲤
密码:123456

测试过程:
666666666666666666666
在这里插入图片描述

结果:登录成功
在这里插入图片描述

①帖子接口

功能:获取用户列子列表

输入用户id:1

测试过程:

在这里插入图片描述

结果:获取成功,用户id为1的用户共发布一篇文章

在这里插入图片描述

①回复接口

功能:发布回复

输入发布回复的帖子id:19
输入回复内容:支持好文!!!

过程:

在这里插入图片描述

结果:回复成功

在这里插入图片描述

①版块接口

功能:获取首页版块列表

过程:直接点击Execute

在这里插入图片描述

结果:操作成功

在这里插入图片描述

①站内信接口

功能:发送站内信

输入接收用户id:2
输入内容:你好

过程:

在这里插入图片描述

结果:操作成功

在这里插入图片描述


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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode】151. 反转字符串中的单词 - 双指针

目录标题 2023-8-22 09:53:10原始优化 151. 反转字符串中的单词 2023-8-22 09:53:10 也是想到了快慢指针的思想。 原始 class Solution {public String reverseWords(String s) {int length s.length();Integer pre null;Integer last null;StringBuilder stringBuilde…

使用fdisk分区时,确实创建了一个分区,但是这个分区似乎并没有被Linux系统识别解决方法

使用fdisk分区时&#xff0c;确实创建了一个分区&#xff0c;但是这个分区似乎并没有被Linux系统识别解决方法 故障现象描述 这是我的sdb硬盘我想给他扩展一个分区sdb4 我开始扩展硬盘 似乎没用什么太大的问题也同步到磁盘了使用lsblk查看一下分区情况 系统并没有扫描到sdb4这…

第六章,创作文章

6.1添加创作页面 <template><div class="blog-container"><div class="blog-pages"><div class="col-md-12 panel"><div class="panel-body"><h2 class="text-center">创作文章&l…

轻松实现24小时无人直播带货,只需一款无人值守手机直播软件!

现在做线上运营&#xff0c;基本上就离不开短视频平台&#xff0c;想要做好短视频平台&#xff0c;就得弄懂如何在平台上进行直播。 今年以来&#xff0c;以专帮科技为首的一些科技公司研发的手机无人直播技术得到了快速发展&#xff0c;使得越来越多的企业和个人开始使用此类…

shell 01(概述)

一、shell linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等[参考]? 答: 使用linux的内核操作计算机的硬件 通过编写shell命令发送给linux内核去执行,操作计算机硬件, 所以shell命令是用户操作计算机硬件的桥梁;shell是命令&#xff0c;类似于windows系统Dos命令;shell是…

IDEA中导入多module的Maven项目无法识别module的解决办法

首先举个栗子 这是正常的多module工程&#xff08;spring cloud项目&#xff09; 正常工程.png 这是导入出现问题的多module工程 导入出现问题的工程.png 原因&#xff1a; 出现该问题&#xff0c;是由于打开工程的时候IDEA只编译了最外层的pom.xml文件&#xff0c;而内部的…

Dubbo服务

dubbo服务分为服务的提供者和消费者 1.服务提供者在nacos注册后通过 DubboService 暴漏服务 2.dubbo服务消费者通过 DubboReference来进行远程服务调用 dubbo的高级特性 1.启动检查&#xff1a;如果启动消费者无提供者则报错&#xff0c;通过配置文件check&#xff1a; fa…

v8引擎编译全过程

环境vs2019 cmd 命令行需要设置成为代理模式 set http_proxyhttp://127.0.0.1:10809 set https_proxyhttp://127.0.0.1:10809 这个必须带上&#xff0c;不然报错&#xff0c;告诉编译器win系统的模式 set DEPOT_TOOLS_WIN_TOOLCHAIN0 源码 GitHub: GitHub - v8/v8: The…

FastDFS与Nginx结合搭建文件服务器,并实现公网访问【内网穿透】

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

Kafka单节点部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

汽车检测报告小程序开发制作方案

传统的车辆检测流程通常繁琐且耗时&#xff0c;用户对更快速、便捷的检测方式有了更高的期望。基于这一需求&#xff0c;开发一款汽车检测报告小程序将成为现实生活中的实用工具。 产品定位为一款提供汽车检测报告查询的小程序&#xff0c;主要服务于需要进行汽车检测的车主、…

《Linux从练气到飞升》No.16 Linux 进程地址空间

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux菜鸟刷题集 &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的…

【最新附安装包】UG NX2023安装教程(CAD/CAM)

软件下载 软件&#xff1a;UG NX版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;10.78G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU3.0GHz 内存8G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.baidu.c…

数据治理核心知识点总结-1

管理数据的人员必须由业务人员和信息技术人员两类角色共同承担&#xff1b; 数据管理的12个原则&#xff0c;这12个原则分为数据管理原则、数据价值、数据管理需求是业务的需求、数据管理依赖于不同的技能&#xff0c;数据管理是生命周期管理5个方面&#xff1b;这5个方面中&am…

Docker数据管理、网络通信和镜像创建

一、Docker 数据管理1、数据卷2、数据卷容器3、端口映射4、容器互联 二、Docker 镜像的创建1、基于现有的镜像创建1.1 首先启动一个镜像&#xff0c;在容器里做修改1.2 然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 2、基于本地的模版创建3、…

工采电子受邀参加:维科网举办的2023全球数字经济产业大会

先进电子科技将引领着绿色出行、绿色能源、绿色制造的未来发展&#xff0c;协助我们应对环境、经济及社会等种种机遇与挑战。让我们聚焦并探讨如何持续促进智能化、网联化、低碳化、电动化技术的融合发展&#xff0c;牵引和拉动并实现产业效益&#xff0c;相互赋能&#xff0c;…

浅析Python爬虫ip程序延迟和吞吐量影响因素

作为一名资深的爬虫程序员&#xff0c;今天我们很有必要来聊聊Python爬虫ip程序的延迟和吞吐量&#xff0c;这是影响我们爬取效率的重要因素。这里我们会提供一些实用的解决方案&#xff0c;让你的爬虫程序飞起来&#xff01; 网络延迟 首先&#xff0c;让我们来看看网络延迟对…

vue2.x项目从0到1(七)之用户权限

此章节偏理论知识 对于小一点的项目 比如说角色都是平级的 那我们直接像之前 vue2.x项目从0到1&#xff08;二&#xff09;之后台管理侧边栏&#xff08;动态渲染路由以及高亮&#xff09;_vue动态渲染侧边栏_关忆北_的博客-CSDN博客这样渲染就行了 但是一旦项目大了 …

二、6.锁和输入

字符打印执行过程中不能被切换成其他任务。字符打印过程中的三个步骤像原子一样不可拆分&#xff0c;因此字符打印必须具有原子性。 您肯定想到了&#xff0c;每个任务都有时间片限制&#xff0c;迟早会执行任务调度&#xff0c;所以&#xff0c;任务调度保不准就是在某个 线程…

LeetCodeHot100:Python 版本之动态规划

70. 爬楼梯 3.dp数组如何初始化(本题不初始化) 4.确定遍历顺序 5.举例推导dp数组 ​​​​​​118. 杨辉三角 198. 打家劫舍 ​​​​​​279. 完全平方数 322. 零钱兑换 139. 单词拆分 ​​​​​​300. 最长递增子序列 ​​​​​​152. 乘积最大子数组 416. 分割等和子集 …