当前位置: 首页 > news >正文

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

一 项目介绍


项目名称

项目名称: 学习交流社区

项目介绍

项目介绍: 学习交流社区是一个基于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.lryc.cn/news/134364.html

相关文章:

  • 2023-08-21力扣每日一题
  • 对象存储服务-MinIO基本集成
  • Yarn介绍及快速安装 - Debian/Ubuntu Linux
  • 【新日语(2)】第10課 中国の生活に慣れるかどうか少し心配です
  • Python 网页解析初级篇:BeautifulSoup库的入门使用
  • Spring Schedular 定时任务
  • 营业额统计
  • 使用lodash的throttle函数会触发两次
  • 如何使用CSS实现一个瀑布流布局?
  • dfs之有重复字符串的排列组合
  • Java之抽象类
  • “无Internet连接但是可以上网” 解决全流程
  • VS2022 CMake报错解决小结
  • java之webservice_aegis.xml学习
  • 总结 TCP 协议的相关特性
  • 不负众望~历时4年修炼,这本册子终于成书了(文末赠书)
  • 【校招VIP】java语言考点之垃圾回收算法
  • juc概述和Lock接口
  • 图像降采样的计算原理:F.interpolate INTER_AREA
  • 云上的甜蜜早安:腾讯云云函数助力PHP打造女友专属每日推送
  • Javaweb基础学习(3)
  • 使用在 Web 浏览器中运行的 VSCode 实现 ROS2 测程法
  • 快速学习GO语言总结
  • 尚硅谷宋红康MySQL笔记 10-18
  • Java 面试题--SpringBoot篇
  • GitKraken 详细图文教程
  • ubuntu20.04 root用户下使用中文输入法——root用户pycharm无法用中文输入法问题
  • FastDFS与Nginx结合搭建文件服务器,并实现公网访问【内网穿透】
  • 嵌入式蓝海变红海?其实是大浪淘沙!
  • 【附安装包】Solid Edge2023安装教程最强CAD选择