基于 SpringCloud 的在线交易平台乐优商城的设计与实现(六)

本文主要是介绍基于 SpringCloud 的在线交易平台乐优商城的设计与实现(六),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

第六章 系统测试

6.1  功能性测试

6.1.1  商家后台功能测试

 6.1.2  前台功能测试

 6.2  非功能性测试

6.3  本章小结 

结束语

参考文献


前面内容请移步

基于 SpringCloud 的在线交易平台乐优商城的设计与实现(五)

相关免费源码资源

乐优商城

第六章 系统测试

        系统测试是整个项目开发生命周期的一个重要环节, 也是系统上线之前  必须要完成的步骤。测试的目的是对系统进行整体检验, 发现系统设计中存  在的 bug  。通过系统测试 ,开发人员能够及时修复和升级 bug,确保系统  在上线运营时能够完成用户的各项业务需求, 进而提升用户体验和用户粘性。

        本章主要从系 统功能性测试和系统非功能性测试两方面进行说明 。        

6.1  功能性测试

        系统功能性测试包括运营商后台功能测试 、商家后台功能测试和前台功能测 试三个部分。本小节将结合测试用例分别对三个部分进行说明

6.1.1  商家后台功能测试

        表 6-1  是针对商家后台的测试用例 ,主要验证商家登录 、商家登出和 商品管理功能。

6-1商家后台测试用例表

用例编号

用例名称

测试流程

预期结果

测试结果

结论

T1

商家登录

在商家后台

登录页填写

信息登录

信息正确可

以登录, 

则不能登录

信息正确进

入商家后台

首页 ,信息

输入错误跳

回到登录页

通过

T2

分类管理

商家在后台

管理页面点

击分类管理

可以展示分

类查询结果

点击完成正

常展示分类

信息

通过

T3

品牌管理

商家在后台

管理页面点

击 品 牌 管

理,切换页

容量,切换

页面,在搜

索框键入搜

索条件

可以展示品

牌查询结果

切换页面正

常展示, 

换页容量正

常展示, 

入搜索条件

正常展示

通过

T4

商品新增

点击新增按

钮,选择分

类,品牌,

填写商品名

称,商品描

述,规格参

可以实现商

品保存

按照表单要

   

容, 商品信

息正常保存

通过

T5

商品上下

点击上下架

按钮,实现

对应 spu  

sku  信息

的上下架

可以完整对

应实现, 

变商品的上

下架状态

Spu      

Sku  对应状

态可以变更

通过

 6.1.2  前台功能测试

        前台功能测试包括门户首页功能测试 ,商品搜索功能测试 、商品详情 页功能 测试、用户中心功能测试 、单点登录功能测试、购物车模块功能测 试和秒杀频道 功能测试 。由于篇幅原因, 在此不再全部列出前台全部模块 的功能测试用例 ,以 商品搜索功能测试、用户中心功能测试和购物车模块功能测试为 例进行说明。

 6-2 是针对商品搜索的测试用例 ,主要验证关键宇搜索 、条件过滤筛选和商品排序功能 。

6-2 搜索功能测试用例表

用例编号

用例名

试流程

预期结果

试结果

结论

T6

关键字搜

搜索框内,

输入商品

关键字,点

击搜索

可以显 

出于关 

字有关 

商品列 

和搜索 

包,搜索面

板中办 

商品分类,

商品品牌,

规格等

成功展 

出于关 

字有关 

商品列 

和搜索 

包,搜索面

板中办 

商品分类,

商品品牌,

规格等

通过

T7

条件过滤

筛选

在搜索面

板,按 

商品分类、

商品品牌、

规格、价格

区间等进

行条件筛

可以查 

到条 件过

滤筛选 

的商品 

成功查 

到条 件过

滤筛选 

的商品 

通过

T8

商品排序

在搜索结

果页,  

照价格、销

量等对 

品列表进

行排序

可以显 

排序后 

商品列表

成功显 

排序后 

商品列表

通过

 6.2  非功能性测试

        系统测试不仅包含功能测试 ,还需要进行非功能性测试,非功能性测 试主要为系统性能测试,

        性能测试也可以称作压力测试。由于该电商平台需要实现高并发特性, 所以需要对系统进行压力测试以此检验该电商平台是否能够达到预期的并发要求。

        压力测试需要通过压力 测试工具模拟用户真实的并发请求 ,本文设计 的电商平台使用 JMeter  进行压力测试问, JMeter  是阿帕奇开发的基于 Java  的开源压力测试软件, JMeter  设计之初被用于 Web  应用测试 ,后续 经过扩展也被用于其他领域测试。使用 JMeter  不但可以对 Java  Servlet   Java  对象、数据库和 FTP  服务器等静态资源和动态资源进行测试, 还可以 通过模拟大量并发负载对服务器 、网络或对象的健壮性和性能进行评估 。 JMeter  的聚合报告中,主要提供平均响应时间,错误晌应率等信息。在系  统压力测试过程中,设置每秒并发量从 2000  开始 ,并以 2000  为增量逐  级递增到 12000  并发量 ,循环次数均设置为 3  次。以搜索页的压力测试  为例 ,商品搜索页压力测试结果如表 5-6  所示。

6-3商品详情页压力测试结果

并发量

循环次数

平均响应时间

错误响应率%

2000

3

589

0

4000

3

790

0.8

6000

3

930

1.2

8000

3

1220

2.0

10000

3

1910

2.7

12000

3

3150

5.9

         在压力测试过程中, 平均响应时间和错误响应率随着平台并发量的增加 而增加,根据表 5-6  得出并发量平均响应时间折线图如图 6-1  所示

6-1  并发量-平均响应时间折线图 

        图 6-1  中,横坐标为每秒的并发访问请求,纵坐标为平均响应时间 。 通过压力测试结果和并发量平均响应时间折线图可以得出,当并发量在 10000  以内时,  该电商平台的商品搜索页,平均响应时间在 2 秒以下,错 误率在 3%以下,当并发量突破 10000  12000  时,该电商平台的商品搜 索页平均响应时间己经在 3 秒以上, 错误率为 5.9%   。由此可见, 该平台己 经达到预期的支撑 10000  的并发访问量,在该并发量下页面平均响应时间 小于 2 秒,响应错误率低于 3%的需求。 

6.3  本章小结 

        本章主要介绍了该电商平台的系统测试 ,包括功能测试和非功能测试。 功能测试又包括商城后台功能测试和前台功能测试。非功能测试主要为系统 性能测试,目的是检验该电商平台是否能够达到预期的并发需求。 

结束语

        本软件的设计目的是使得中小企业可以直接对外提供线上销售服务,解 决从 0  1 的问题。通过这几个月的毕业设计, 我学到很多以前没有学到的 WEB 开发技术, 在软件工程学上更是取得了很大的进步, 同时也基本完成了 乐优商城的设计与开发。系统服务器端, 我采用 MySQL Server5.5 数据库系 统, Elasticsearch  MVC 结构来完成系统, 客户端采用浏览器来商品管理 以及搜索下单全过程。这种模式的系统运用方便、操作简单, 效率很高。现 阶段实现了用户注册、商品管理、规格参数管理、分类管理、品牌管理、索 引库管理,搜索展示,搜索提示,加入购物车,下单支付等重要功能。

        系统其他功能方面, 本系统提供了一些常用的数据操作, 可以比较完整 的对数据库进行增、删、查、改, 但缺乏必要的统计与分析功能,如销售数据统计分析等。

        在整个过程中使我真正体会到了需求分析与总体设计的重要性。由于自 身原因和时间的关系,放弃了一些设想和功能。但是总的来说,这次的毕业 设计对我来说是一次非常难得的锻炼机会。毕业设计使我对几年来所学的专业课知识得到了融会贯通,得到了比任何一门课都大的提高和进步。

参考文献

[1] []Y.Daniel Liang.    Java 语言程序设计, 北京: 机械工业出版社,2009113-150

[2]  厉小军.    Web 编程技术,北京:机械工业出版社, 2009229-348

[3]  贺智明 等.     JavaEE  企业应用开发技术,北京:清华大学出版社,2012:31-106

[4]  朱欣娟 等.    信息系统分析与设计,西安:西安电子科技大学出版社, 200873-94

[5]  江开耀.    软件工程与开发技术, 西安:西安电子科技大学出版社, 2009

[6]  毋国庆 等.    软件需求工程,北京:机械工业出版社, 201038-93

[7]  萨师煊 等.     数据库系统概论, 北京: 高等教育出版社, 2008198-231

[8]  王晓悦.    Java-JDK、数据库系统开发、Web 开发, 北京: 人民邮电出版 社, 2007479-512

[9]  吴亚峰 王鑫磊.    NetBeans-Java 桌面、Web 与企业级程序开发详解,  京:人民邮电出版社, 2007379-407

[10]  鲁晓东等.    JSP 软件工程案例精解[M],北京: 电子工业出版社,2005.

[11]  夏欣等.Java 面向对象编程指南,电子工业出版社, 2005

[12]  []万普勒 著,王海鹏 译.Java  UML 面向对象程序设计,北京: 人民邮电出版社, 2002

这篇关于基于 SpringCloud 的在线交易平台乐优商城的设计与实现(六)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945839

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法