赞
踩
在当今社会的高速发展过程中,产生的劳动力越来越大,提高人们的生活水平和质量,尤其计算机科技的进步,数据和信息以人兴化为本的目的,给人们提供优质的服务,其中网上购买商品尤其突出,使我们的购物方式发生巨大的改变。而线上购物,不仅需要在硬件上为人们提供服务网上购物,而且还可以省去许多时间去实体店选择商品,既可以吸引用户流量好,还可以购买商品,更要在软件上为需要服务的人提供必要的便利。于是网上商城系统便应运而生。
目前在本课题范围内,分析了管理人员对商品的管理现状和现有的用户对管理人员的服务的要求。首先根据以前的网上商城系统的设计模块,总结出符合自己的技术,便于开发商城,选择基于Springboot的框架开发的系统,将此技术运用于商城研发。开发工具软件选择Eclipse ,数据库软件选择MySQL服务器。本系统采用的是B/S模式,web方向的研发,还需要Tomcat作为WEB服务器,来运行项目,另外还使用了Spring和Mybatis框架技术。系统具有专门的供用户使用的前台和专门供管理人员使用的后台。对于管理人员而言通过使用该系统使得系统首页、个人中心、用户管理、商品分类管理、商品信息管理、广告信息管理、系统管理、订单管理等全部在网上进行,对于用户而言可以用积分兑换商品的流程以及在线购买商品的功能。
在网上商城系统的实现下,管理人员能够充分发挥信息化处理的优势,提高日常管理的处理速率。用户一方可以更好的享受信息化处理带来的便利。系统运行能够稳定且高效。并且人机友好程度能够显著提升。
关键词:网上商城系统,Springboot,B/S
Design and implementation of online mall system
Abstract: In the process of the rapid development of today’s society, the labor force is more and more large, improve people’s living standards and quality, especially the progress of computer science and technology, data and information to people for the purpose of people-oriented, to provide people with quality services, which online purchase goods is especially prominent, so that our shopping way has changed greatly. Online shopping, on the other hand, not only needs to provide services for people on the hardware, but also can save a lot of time to go to the physical store to choose goods. It can not only attract good user flow, but also can buy goods, but also need to provide necessary convenience for people in need of services on the software. So the online mall system came into being.
At present in the scope of this topic, the analysis of the management of the commodity management status and the existing user to the management of the service requirements. First of all, according to the previous design module of the online mall system, summed up their own technology to facilitate the development of the mall, choose the system developed based on Springboot framework, apply this technology to the development of the mall. Eclipse was selected as the development tool software and MySQL server as the database software. This system uses B/S mode, web direction research and development, but also needs Tomcat as a WEB server, to run the project, in addition to the use of Spring and Mybatis framework technology. The system has a special foreground for users and a special background for managers. For managers, through the use of this system, the system home page, personal center, user management, commodity classification management, commodity information management, advertising information management, system management, order management, etc. are all carried out on the Internet. For users, the process of exchanging goods with points and the function of buying goods online can be used.
Under the realization of online mall system, managers can give full play to the advantages of information processing and improve the processing rate of daily management. Users can better enjoy the convenience brought by information processing. The system runs stably and efficiently. And the human-machine friendliness can be significantly improved.
Key words: online mall system, Springboot, B/S
1引言 1
1.1开发背景 1
1.2开发意义 1
1.3研究内容 1
2相关技术 2
2.1 技术路线 2
2.2 Mysql数据库 3
3 需求分析 6
3.1业务需求 1
3.1.1业务流程 1
3.1.2业务对象 1
3.2功能性需求 1
3.3非功能性需求 2
3.4运行环境 3
4 系统设计 10
4.1系统结构设计 5
4.2数据库设计 5
5 系统实现 29
5.1核心功能实现 12
5.2关键技术难点与解决 12
5.3编码规范 16
6 测试系统 29
6.1 功能测试 29
6.2 测试分析 30
6.2 测试总结 30
7 总结 32
参考文献 33
致 谢 34
1.1开发背景
目前现有的网上商城系统对于用户而言其购买商品流程仍然过于繁琐,对于而言其系统安全性并不能保障。同时整套系统所使用的技术相对较为落后,界面不能动态化展示。相比较于其它同类型网站而言不能体现技术先进性。
1.2开发意义
此网站系统的开发方式和信息管理方式,借鉴前人设计的信息和研发。以网站商品信息为主,购物商品为核心功能来进行设计和研发,把网站信息和技术整合,开发出一套网上商城系统。用目前现有的新技术进行系统开发,提供后台管理员高度友好的界面操作以及迅捷的信息处理。而前台的开发目标是以用户的需求作为主导,提供对用户而言非常友好的界面操作环境以及完善系统功能。
目前网上很多购物商城存在或多或少的问题,甚至有些网站的体验效果不佳,给人非常差的操作。针对现存的问题,对此进行改进,修复问题中的不足,进行项目体验和功能差的完善,使得其更具有高度界面友好的特性。提出对于系统而言具备可行性的方案,做好系统分析。编译出界面友好,功能齐全的网上商城系统。
1.3研究内容
网上商城项目分为两种角色,普通用户,和管理员。涉及到的功能和权限各不相同,普通用户只能浏览网页,和购买商品,管理员权限比较大,可以对网站信息,和商品进行增删改查等操作。
对于管理人员,其使用习惯是偏向于实用性和安全性。希望该系统能够高度安全,并且能够正常实现管理业务的各项功能。
对于用户而言,其更倾向于界面友好性和便捷性。不仅希望系统能动态展示,还希望系统能够做到“一步到位”,其希望能实现的功能除了正常的业务以外还希望能够网上购买商品。
2.1 B/S模式
在网上商城系统中,用到的技术路线如下:
针对现在的购物商城,选择系统结构为B/S(Browser /Service ),即浏览器和服务器结构。是目前国内最为常见,而且对于用户而言是最方便的一个常用结构,对以往的客户机/服务器结构(Client/Service)进行更深一层的优化。用户为了使用浏览器进行操作,浏览各个网站,进行实现和使用浏览器获取的资料和信息。获取的主要信息和逻辑都在服务器端保存的数据,这些数据,当用户通过浏览器请求服务器时,服务器进行对请求的响应作答,返回一系列数据,因此在服务器端进行业务逻辑的处理,在客户端的浏览器主要处理很少的简单的逻辑。所谓的传统的C/S结构模式发展演变成如今在web上的三层模式。现如今此结构模式非常广泛的运用在各个互联网上,其对系统维护所产生的升级成本和人力时间更低,用户使用成本低,以目前的技术发展情况看,其技术相对来讲易于把握。
本系统是通过Java语言来进行设计和实现的。项目主要用到的技术是SpringBoot框架,Vue框架,数据库使用的是SQL,系统采用的开发工具是IntelliJ IDEA。
2.2 Java语言
本系统的开发主要用Java这一门开发语言。作为开发语言,这是一种通用的开源脚本语言。这种语法主要是将C语言、Java和Perl等语言的相关特点进行总结吸收形成自身特点,使得更加方便学习,当前广泛在Web领域进行使用。此语法的独特之处在于将C、Java、Perl这三种语言进行了归纳,并创新出Java具有自己特点的语法。它在执行动态网页方面相对于CGI和Perl语言更加高效。用动态页面如果是使用Java语言,那么相对于其它的编程语言,Java的执行主要是体现在将程序嵌入到HTML文档中,相对于其它语言,其执行的效率一般都领先于其它的语言。此外,Java编译后代码方面也是做得比较好的,一般其编译能够使代码的运行速度比一般语言都要快[7][8]。
其主要特性有以下几个方面:
1)免费性
和其它技术相比,Java本身免费且是开源代码。
2)快捷性
使用Java编程的程序一般开发比较快,而且系统运行也比较快,也易于学习[2]。嵌入于HTML的这种方式,使其相对于其它开发语言编辑起来相对简单,实用性也更加强,对初学者是比较适用的。
3)跨平台性强
由于Java是运行在服务器的脚本,可以运行在UNIX、LINUX、WINDOWS、MacOS、Android等平台
4)效率高
Java占用相当少的系统资源。
Java是面向对象且独立于架构的动态脚本语言,使用Java和HTML编写WEB页面,Java服务器先对页面的Java代码进行解析,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。Java是一种源代码开放程序,拥有很好的跨平台兼容性。Java代码可以在Window系统以及许多版本的linux系统上完美运行。
Java语言是不需要任何特殊的开发环境的,所以用户可以直接在WEB页面中输入Java命令代码。在WEB页面中,所有的Java代码都被放置在“<?JSP”和“?>”中。
2.3 SpringBoot框架
Spring是Java EE开发中最重要的设计层框架之一,开源、能够很好地处理业务逻辑层和其余层之间的松散耦合关系[4]。Spring Boot框架基于Spring,是Pivotal团队提供的全新的Java框架,它继承了Spring的优良特性,简化Spring应用的开发及搭建过程,实现了自动配置,使程序员全身心地投入到业务逻辑代码的编写中去,还能更快捷的部署和监控系统,是后端开发的优势工具,很大程度的提高开发效率[5]。本系统利用Spring Boot的优势进行后台管理系统的设计。
2.4 Vue框架
本系统的前端框架选择目前较流行的Vue框架。它是一个轻量级的渐进式框架,基于数据驱动和组件化的思想构建前端页面,它的核心库只关注视图层[6],有很多简单、易于理解的API供用户使用,运行效率高、语言简洁、占用空间小、上手容易等特点,深受开发者喜爱,是目前前端首选框架。
2.5 MySQL数据库
MySQL是一个关系型数据库管理系统的数据库,作为当下最流行的关系型数据库管理系统之一,因其在Web应用方面的成就,所以也受到了很多大型物联网公司的青睐。由于其将所有数据存放于一大仓库内,所以它的速度和灵活性都大大提高了。此外,由于MySQL可以在不同系统中运行,所以它有良好的跨平台性。MySQL通过最常使用的准确语言SQL来访问数据库。MySQL因其体积小、速度快、成本低而广泛应用,它是基于Linux操作系统开发的,也是开放源码的免费数据库。另外优化SQL查询算法,提高查询速度。提供多语言支持,如中文GB2312,BIG5。支持大型数据库,可处理拥有上千万条的大型数据库[13]
3.1业务需求
3.1.1业务流程
管理员添加商品的流程中,管理到网站后,点击商品模块,点击添加商品,输入商品信息提交到数据库,其添加商品信息的流程总体业务如图3.1所示。
图3.1 添加商品信息流程总体业务
在商品分类中,用户查询商品分类,其商品分类总体业务如图3.2所示。
图3.2 商品分类总体业务
在用户注册总体业务中,用户到注册,管理人员将根据用户情况进行注册,其用户注册流程总体业务如图3.3所示。
图3.3 用户注册流程总体业务
3.1.2业务对象
在业务对象中,管理人员和订单,商品,商品类别,用户之间的领域模型如图3.4所示。
图3.4 领域模型
3.2 功能性需求
3.2.1 用例概述
在图3.5高层用例图中,根据网上商城的业务逻辑和基本功能需求,总结出能够满足用户和管理员的基本需求的用例。由这些用例所显示的从用户使用的前台和管理人员使用的后台来完成网站商城的正常运作。
图3.5 高层用例图
图3.5的用例名称、用例标记和高层用例描述如表3.1所示。
表3.1 用例摘要描述
用例标识(UC) 用例名称 摘要描述
0 登录 使用系统前的身份验证。
1.1 修改用户和管理员密码 用户和管理员可以在系统上修改各自的登录密码。
1.2 查看商品分类 用户可以查找商品分类信息,并可以获得包括商品名称、商品分类、品牌等信息。
1.3 商品信息 用户可以查找商品信息,并可以获得包括商品名、价格、商品编号等信息
1.4 用户留言 用户可以在网站进行留言
2.1 管理用户信息 对用户的信息进行查询、更改、删除等操作。
2.2 我的购物车 用户查看自己的订单详情
2.3 购买商品 用户可以登录系统进行商品的购买
2.4 管理商品类别信息 管理人员可以管理商品类别的信息。
2.5 管理商品信息 管理人员可以管理商品的信息。
2.6 管理人员密码更改 管理人员可以更改管理人员密码。
3.3非功能性需求
安全性:用户信息具有保密性,用户信息只能由管理人员控制更改使用,用户注册也只能在管理人员处进行注册登记。
正确性:不允许出现业务错误。
兼容性:可在各种支持HTML5的浏览器中使用。
性能:系统处理业务时页面响应时间不能超过2秒,在繁忙时间最多不能超过6秒。
并发性:允许多个用户用户登录操作。
3.4运行环境
网上商城系统运行需要的硬件环境如下
(1)主机类型
系统主机服务器:DELL PowerEdge R630,四核CPU,8G RAM
数据库服务器:HP DL388 Gen9,四核CPU,8G RAM
用户用PC机:任意可联网设备
(2)网络类型
以太网
(3)存贮器容量
系统主机服务器:200G以上
数据库服务器:1000G以上
(4)设备分布图
设备分布图如图2.9所示。
图2.9 设备分布图
网上商城系统运行所需的软件环境如下。
(1)操作系统:
应用服务器:Windows NT Server 2008以上版本
用户用PC机:windows XP和以上
(2)数据库管理系统:
MySQL 5.0.27
(3)网页浏览器:
应用服务器:Google Chrome
用户用PC机:Google Chrome或者Firefox
(4)开发环境:
IDE采用Eclipse Java EE IDE Luna(4.4.1)
(5)数据库管理工具:
Navicat Premium 10.0.9
(6)运行环境:
Tomcat 7.0 + Apache
4.1软件体系结构设计
4.1.1 功能结构
根据需求调研结果确定本系统主要包括以下功能模块,如图4.1所示。
图4.1系统功能结构图
4.1.2 系统架构
系统架构图如图4.2所示。
图4.2 系统架构图
4.2数据库设计
4.2.1 概念结构设计
针对网上商城系统的功能性需求方面的了解,系统概念模型(ER图)如图4.3所示。
图4.3 系统概念模型ER图
4.2.2 表的详细设计
通过对网上商城系统在需求分析中的领域对象、业务对象及对象之间的分析,进行了对网上商城系统的数据库建表设计。如表4.1-表4.6 所示。网上商城系统数据库管理部分采用MySQL。
(1)管理人员信息表(admin)
管理人员信息表主要用于保存管理人员的信息,主要字段包括:管理人员ID、登录账号、登录密码。表结构如表4.1所示。
表4.1 管理人员信息表(admin)
列名 数据类型 长度 允许空 是否主键 说明
userid varchar 32 否 是 管理人员ID
username varchar 50 否 否 登录账号
password varchar 100 否 否 登录密码
(2)用户信息表(user)
用户信息表主要用于保存用户的信息,主要字段包括:账号、昵称、年龄、性别、手机号。表结构如表4.2所示。
表4.2 用户信息表(user)
列名 数据类型 长度 允许空 是否主键 说明
Id varchar 32 否 是 用户ID
Name varchar 100 否 否 用户名称
PassWord varchar 32 否 否 用户登录密码
Sex varchar 100 否 否 用户性别
Tel varchar 100 否 否 用户电话
(3)商品分类信息表(fenlei)
商品分类信息表主要用于保存商品分类的信息,主要字段包括:商品分类ID、商品分类名称、商品分类简介,商品分类创建日期。表结构如表4.3所示。
表4.3 商品分类信息表(fenlei)
列名 数据类型 长度 允许空 是否主键 说明
sortid varchar 32 否 是 商品分类ID
sortname varchar 100 否 否 商品分类名称
sortintro text 0 是 否 商品分类简介
updatedate date 0 否 否 商品分类创建时间
(4)商品信息表(good)
商品信息表主要用于保存商品的信息,主要字段包括:商品ID、商品类别ID、商品名称、商品数量、商品型号、商品简介、商品创建日期、商品图片文件类型。表结构如表4.4所示。
表4.4 商品信息表(good)
列名 数据类型 长度 允许空 是否主键 说明
goodid varchar 32 否 是 商品ID
sortid varchar 32 否 否 商品类别ID
name varchar 100 否 否 商品名称
续表4.4 商品信息表(book_book)
列名 数据类型 长度 允许空 是否主键 说明
bc varchar 100 否 否 商品价格
intro text 0 否 否 商品简介
builddate date 0 否 否 商品创建日期
contenttype varchar 100 否 是 商品图片
(5)广告信息表(order)
广告信息表主要用于保存广告的信息,主要字段包括:标题、联系人、联系电话、封面、发布时间、点击次数。表结构如表4.6所示。
表4.6 广告信息表(order)
列名 数据类型 长度 允许空 是否主键 说明
Id varchar 32 否 是 标题
Name varchar 100 否 否 联系人
userName varchar 15 否 否 联系电话
Date varchar 100 否 否 封面
Situation varchar 10 否 否 发布时间
5.1核心功能实现
在网上商城系统中,核心业务用例的实现效果如下所示。受篇幅所限,将只会添加用户和管理员相关的两个模块核心功能。
(1)用户商品购买模块实现
用户登录网站之后,浏览商品信息,选择自己喜欢的商品,点击进入详情页面,点击购物,对商品进行购买操作,将购买信息发送到控制层,采用 Ajax发送异步请求,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行插入并返回结果,实现效果如图5.1所示。
图5.1 商品信息功能实现效果图
该模块控制层主要代码:
@RequestMapping(“cartadd”)
public String addcart(Model model){
List product= productService.list(“”);
// 放入转发参数
model.addAttribute(“product”, product);
return "pages/cart/cartadd"; } //添加数据 @RequestMapping("cartinsert") public String insertCart(Cart cart,Model model){ String forword=request.getParameter("forword"); String w=" and uname='"+request.getParameter("uname")+"' and product="+cart.getProduct(); List<Cart> cs= cartService.list(w); String addtime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); if (cs.size()>0) {//nums //cart.setNums(cart.getNums()); //cartService.update(cart); model.addAttribute("msg","该商品已存在于购物车"); } else { cartService.insert(cart); model.addAttribute("msg","成功"); } model.addAttribute("path",forword); return "success"; } }
(2)管理人员添加商品信息功能模块
管理人员对商品信息进行添加操作,采用Ajax发送异步请求将商品信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行更改并返回结果。实现效果如图5.2所示。
图5.2 管理人员添加商品信息实现效果图
该模块控制层主要代码:
@RequestMapping(“productadd”)
public String addproduct(Model model) {
List fenlei = fenleiService.list(“”);
// 放入转发参数
model.addAttribute(“fenlei”, fenlei);
return "pages/product/productadd";
}
// 添加数据
@RequestMapping("productinsert")
public String insertProduct(Product product, Model model) {
String forword = request.getParameter("forword");
productService.insert(product);
model.addAttribute("msg", "成功");
model.addAttribute("path", forword);
return "success";
}
}
(3)管理人员添加商品分类功能模块
管理人员对商品分类进行添加操作,采用Ajax发送异步请求将商品分类信息发送到控制层,控制层发送数据到业务逻辑层,业务逻辑层通过调用 DAO层来访问数据库从而执行更改并返回结果。实现效果如图5.3所示。
图5.3 管理人员添加商品分类功能实现效果图
该模块控制层主要代码:
@RequestMapping(“fenleiadd”)
public String addfenlei(Model model){
return "pages/fenlei/fenleiadd"; } //添加数据 @RequestMapping("fenleiinsert") public String insertFenlei(Fenlei fenlei,Model model){ String forword=request.getParameter("forword"); String w=" and name='"+request.getParameter("name")+"'"; List<Fenlei> cs= fenleiService.list(w); if (cs.size()>0) { model.addAttribute("msg","名称重复!请重试"); } else{ fenleiService.insert(fenlei); model.addAttribute("msg","成功"); } model.addAttribute("path",forword); return "success"; } }
5.2 关键技术难点与解决方案
(1)对于界面中要输入的大批量文字和含有特殊符号的内容的情况下,经过各种editor的比较,最后决定采用百度编辑器插件UEditor实现大批量文字输入和特殊表情。UEditor可以以高度可视化的编辑方式编辑大批量文字和含有特殊符号的内容。其可操作性和执行效率要比JavaScript的方式要高。
(2)由于登录时管理人员和用户使用共同的登录页面,需要登录页面去判断当前登陆账号是用户还是管理人员,进而跳转至不同的主页。因此在登录界面中,其控制层的实现方式代码如下所示。
Map<String, Object> map = userService.getUserByName(userName);//检查是否是管理员
Map<String, Object> userLogin = frontReaderService.getReaderByName(userName);//检查是否是用户
// 用户名和密码是否正确,同时检查是用户还是管理员
if (map != null && map.get(“password”).equals(passwordMD5)) {
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, “登录成功”);
retMap.put(Params.RET_MSG, “管理员”);
return retMap;
} else {
if(userLogin != null && userLogin.get(“readerPassWord”).equals(passwordMD5)){
HttpSession session = request.getSession(true);
session.setAttribute(Params.SESSION_ATTR_KEY_USER, userName);
retMap.put(Params.RET_CODE, Params.RET_CODE_SUCCESS);
retMap.put(Params.RET_OBJ, “登录成功”);
retMap.put(Params.RET_MSG, “用户”);
return retMap;
}
5.3 编码规范
在该项目的实现阶段,为保证该系统的编码合乎规范,专门制定其编码规范。网上商城系统的编码规范如下表5.1所示。
表5.1 编码规范表
条目 规范内容
1 包名由小写字母构成。类名由一个或者多个单词构成,且单词首字母大写。
2 函数(方法)名由一个或者多个单词构成,第一个单词为动词,首字母小写,后面的单词为名词,且每个单词的首字母大写。
3 常量名全部由大写字母构成,单词间用下划线(_)分割。
4 变量名由一个或者多个单词构成,第一个单词首字母小写,后面的单词首字母大写。
5 参数命名和变量保持一致。
6 Bean命名:去掉表名的下划线同时首字母大写
7 DAO接口命名:Bean名+DAO。实现类命名:DAO接口+Impl
8 Service接口命名:模块名+Service。 实现类命名:Service接口+Impl
9 Controller类命名:模块名+ Controller
10 Bean实例及方法调用规范:Controller只允许调用Service,Service只允许调用DAO。
一个DAO对应一个数据库表。
一个Service对应一个业务模块,可以对应多个DAO。
一个Controller对应一个业务模块,可以对应多个Service。
11 事务控制放在Service层,不要放在DAO层。
12 DAO层方法的命名规则如下:
插入数据:add*
更新数据:update*
删除数据:delete*
查询数据:get*
13 Service层方法的命名规则如下:
插入数据:add*
更新数据:update*
删除数据:delete*
查询数据:get*
是什么:is*
是否存在:exists*
14 jsp文件命名:文件名首字母小写,如果是由多个单词构成,则后面的单词首字母大写。同使用名词+动词的形式。
6.1 功能测试
本系统对前端用户的基本操作和后端管理员的基本操作,两个核心模块进行了功能测试,测试设计如下所示。
(1)登陆模块功能测试
登录功能中由于管理人员和用户共同使用同一个登录入口。因此测试用例设计如表6.1所示。
表6.1 登陆模块功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D001 以用户角色进行登录 系统跳转到登录页面,按照要求填写账号密码,选择权限角色,点击确定按钮 系统弹出登录成功,并跳转到前台首页 通过
D002 以管理人员角色进行登录 系统跳转到登录页面,按照要求填写账号密码,选择权限角色,点击确定按钮 系统弹出登录成功,并跳转到后台首页 通过
D003 以未注册账号和密码进行登录 系统跳转到登录页面,按照要求填写未注册的账号密码,选择权限角色,点击确定按钮 系统提示用户名或密码错误 通过
D004 密码为空 用户和管理员输入正确账号,输入空白密码 系统提示密码未填写 通过
D005 用户名为空 用户和管理员输入正确密码,输入空白用户账号 系统提示用户名未填写 通过
(2)购物车能测试
用户登录系统后,查看购物车详情,可以将喜欢的商品添加到购物车,购物车可以存入多个商品信息,点开我的购物车,里面可以下一步进行商品的购买功能。测试用例设计如表6.2所示。
表6.2 购物车功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D006 以用户身份浏览商品信息 以用户身份点击商品详情 系统跳转到商品详情页面 通过
D007 以用户身份添加到购物车 以用户身份点击购物按钮 系统提示添加成功 通过
(3)管理人员管理商品相关功能测试
管理人员管理商品相关中包含了商品信息和商品分类两大部分的内容。测试用例设计如表6.3所示。
表6.3 管理人员管理商品相关功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D009 显示商品分类下商品 在商品分类页面选择任意查看商品按钮 系统跳转到该商品分类下的商品列表 通过
D010 在增加商品分类时没有填写完必填信息 在增加商品分类时必填信息没有填写并提交 系统提示必填项未填写完全,本次录入失败 通过
D011 在增加商品分类时部分信息超出允许范围 在增加商品分类时部分信息长度超出范围,其余正常输入 系统自动限制输入范围 通过
D012 在更改商品分类时没有填写完必填信息 在更改商品分类时没有填写完必填信息 系统提示未填写完全,本次更改失败 通过
D013 在更改商品分类时超出允许范围 在更改商品分类时超出允许范围 系统自动限制输入范围 通过
D014 商品类别内还有商品时进行删除 在商品类别页里删除任意含有商品的类别 系统提示类别下还有商品,无法删除 通过
D015 在增加商品时没有填写完必填信息 在增加商品时必填信息没有填写并提交 系统提示必填未填写完全,本次录入失败 通过
D016 在增加商品时没选择图片 在增加商品时没有选择图片,并提交 系统将使用默认图片作为该商品图片 通过
D016 在增加商品时部分信息超出允许范围 在增加商品时部分信息长度超出范围,其余正常输入 系统自动限制输入范围 通过
D017 在更改商品时没有填写完必填信息 在更改商品时没有填写完必填信息 系统提示未填写完全,本次更改失败 通过
D018 在更改商品时超出允许范围 在更改商品时超出允许范围 系统自动限制输入范围 通过
D019 在移动商品时不选择商品类别 在移动商品时不选择商品类别 系统提示选择商品类别 通过
D020 在搜索商品时不填写搜索条件 在搜索商品时不填写任何搜索条件后点击搜索 系统搜索出所有商品 通过
D021 在搜索商品时填写模糊搜索条件 在搜索商品时,搜索条件填写部分字段,点击搜索 系统将匹配的结果显示出来 通过
D022 在搜索商品时多次查询 在搜索商品时按搜索条件搜索结果后更换搜索条件再次搜索 系统将只显示本次搜索结果,不显示上次搜索结果 通过
D023 显示商品简介 在分类下商品列表页选择查看商品简介 系统显示查看商品简介页 通过
(4)用户购买商品功能测试
用户在线购买商品的功能,其测试用例设计如表6.4所示。
表6.4 用户在线购买商品功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D024 以用户身份进入进行购买商品 以用户身份选择任意商品的购物车按钮 系统跳转到该商品的购买页面,点击购买,显示购买成功 通过
(5)管理人员管理用户相关功能测试
管理人员管理用户相关功能中包含了增加用户、更改用户、删除用户、搜索用户等的功能。测试用例设计如表6.5所示。
表6.5管理人员管理用户能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D025 增加用户 到新增用户页,按要求填写用户信息,点击提交 系统提示注册成功 通过
D026 增加用户时部分必填项为空 到增加用户页中,部分必填项为空,其余正常 系统提示必填项为空 通过
D027 更改用户 到更改用户页,按要求更改用户信息,点击提交 系统提示更改还回 通过
D028 更改用户时部分必填项为空 到更改用户页中,部分必填项为空,其余正常 系统提示必填项为空 通过
D029 删除用户 在用户列表页中,选择任意用户,点击删除用户按钮 系统提示删除成功 通过
D030 查询用户 在用户查询页中,填写查询条件,点击查询 系统列出搜索用户信息 通过
(5)更改密码功能测试
更改密码功能中有管理人员的密码更改和用户的密码更改的功能。测试用例设计如表6.6所示。
表6.6 更改密码功能测试用例
用例编号 测试用例描述 操作过程及数据 预期结果 测试结果
D034 以用户身份更改密码 以用户身份到用户密码更改页,填写旧密码、新密码、确认新密码后点击确认 系统提示更改成功 通过
D035 确认新密码和新密码不一致 到密码更改页后,确认新密码和新密码不一致,其余保持正常 系统提示密码不一致 通过
D036 旧密码和当前登录密码不一致 到密码更改页后,旧密码和当前登录密码不一致,其余保持正常 系统提示旧密码错误。并返回登录页 通过
D037 旧密码和新密码一致 到密码更改页后,旧密码、新密码和确认新密码填写一致 系统提示旧密码和新密码一致 通过
6.2 测试分析
网上商城系统一共产生57个bug,通过测试发现在登录注册界面产生5个bug,商品购买界面产生15个bug,购物车界面产生10个bug,管理商品界面产生7个bug,订单管理界面产生10个bug,留言模块管理界面产生2个bug,地址管理界面产生8个bug,通过修改都已经处理了所有bug,并且做了回归测试,整个系统运行的很稳定。测试结束后,对测试结果进行详细的总结分析,按照按版本统计分析如图6.1所示。
图6.1 按版本统计bug数
按等级统计bug的结果,如图6.2所示。
图6.2 按问题等级统计bug数
按类型统计bug的结果,如图6.3所示。
图6.3 按类型统计bug数
由上面统计图的结果可以看出,网上商城系统功能测试有多出Bug,需要对功能进行修改,确保每个功能按键都好使,满足项目需求。性能和可用性bug较少,基本满足项目需要。通过多次修改后,bug逐渐减少,从而使系统更好用,性能更稳定,以后开发其他软件的时候,要尽量避免功能上的bug让软件性能有所提高。
6.3测试总结
在开发期间采用的是边开发边测试的方式,使得开发周期和测试周期同步。经检测,在最后的系统测试期间,全部bug数为320个,在开发阶段的bug就有280个。在最后测试阶段的bug则只有40个。通过开发和测试共同进行的方式,最终保证系统能够具有较高的稳定性。同时通过不断的版本控制,使得系统具备较好的可用性。
系统在功能性上由于新技术所造成的不稳定性,导致了新技术所带来的功能性bug较多。但性能bug则很少,另外经过多次改进,新技术造成的错误数大幅度减少。
在毕业设计开发的这些时间中,付出努力和心血,终于将网上商城系统网站完美的完成。这套系统具有很多优点,不仅能完成日常商品的管理,还可以对商品进行购物业务进行扩展。不过在本项目完成的同时,由于时间短,项目紧促,造成了该系统也有很多不足的地方。整个项目仍有改进的空间。具体的改进如下:
(1)优点
本项目的优点在于项目前后台分离,各自负责不同的部分。同时还应用了较为新颖的技术。项目运用了Bootstrap,使项目能有较高的易用性,其强大的UI库保证了界面的美观程度。页面加载部分使用Ajax方法,使得页面能够动态显示各种信息。
(2)缺点
本项目的缺点在于由于只有一个人完成整个项目,以此来计算的情况下完成整套系统的时间显得非常仓促。在需求调研阶段就调研结果而言并不能高度满足于现有系统真正所需要的要求。另外在项目中,并没能很好的完全分离前后台,这一点还有待加强学习。
对于网上商城系统的缺点的相对应改善计划是,理清前后台的业务逻辑,使之能够做到前后台分离。而Bootstrap中我们可以通过加强对JQuery的使用对其进行补充。使得项目能够有更好的易用性。针对Bootstrap组件库过多的问题,可以对其进行库设计,从而达到快速引用的设计。
通过这几个月的不断努力和学习,最终独立的完成了整个项目。对此有很多的感触。项目中应用到了不少的新技术。有很多都不在学校的课堂中学习到而是通过不断的实践获得的。有很多的知识通过在公司的实习和在对技术的应用中获得,而这些知识将全部应用在网上商城系统这个项目上来。随着技术的进步,我们还需要不断的学习与探索,会有更好的天地等着我们去实现。
[1] 陈韶健.深入实践Spring Boot [M],机械工业出版社,2016.
[2] 袁方.浅谈网络环境下商城网站系现状及对策[J],安阳师范学院学报,2016,(4),154-156.
[3] 岳倩倩,李美莲.商城网站系统的设计与实现[J],软件设计开发,2016,(8),105-107.
[4] 王龙军.基于新浪云计算和Android平台的移动商城网站系研究与应用[J],广东省对外科技交流中心,2016,(8),58-60.
[5] 陈英.商城网站系的现状分析及创新途径探讨[J],中国中南传媒,2016,(9),136-137.
[6]杨振铎. Java语言与Java技术的应用分析[J]. 数码世界, 2018(12).
[7] 周珊.高校电子商品商城使用评价与分析[J],商品情报导刊,2016,(6),57-77.
[8] 朱运乔. 基于SpringBoot+SSM框架的Web应用系统搭建与实现[J]. 电脑编程技巧与维护, 2019(10).
[9] 基于分布式架构管理的B2C商城设计与实现[J]. 电脑与信息技术, 2019(4).
[10] Shameer Kunjumohamed.Spring Essentials [M],Packt Publishing,2016.
在系统全部完成之际,我非常感谢在毕业设计时给予我帮助的人。没有他们的帮助,就没有我能够顺利的完成毕业设计。
首先,我要感谢我的指导教师老师,这几个月来,老师为我们付出了很多的努力,针对我们的系统和论文进行了非常细心的指导。根据毕业设计期间的要求和政策对我提出了不少的意见和建议。我的毕业设计能够完美的完成,多亏了指导老师的帮助,在他的多次建议之下,是系统能够出色的完成,达到开发设计阶段的要求,因为在这发自内心的特别感谢老师。
其次我需要感谢的是我的父母,在整个毕业设计期间,是我的父母,作为在毕业设计期间最强有力的后盾,我可以心无旁骛的专心致的去撰写毕业设计论文,将所有的精力都集中在毕业论文上。在大学生活中我的每时每刻都离不开来自于我的父母的全力支持和关心。
之后,我要感谢的是全体软件工程系的大力协助,没有您们为我们无私的传授知识和获取知识的方法,就没有我们能够在软件行业立足的基础。
最后我要感谢的,是我们的学校。不仅教育我们知识,对我们的思想道德的培养更多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。