毕业设计(论文)-Springboot智能菜谱推荐系统设计与实现.docx
摘要近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,智能菜谱推荐系统利用计算机网络实现信息化管理,使整个智能菜谱推荐管理的发展和服务水平有显著提升。本文拟采用java技术和SPringbOOt搭建系统框架,后台使用MySQ1.数据库进行信息管理,设计开发的智能菜谱推荐系统。通过调研和分析,系统拥有管理员和用户两个角色,主要具备登录注册、个人信息修改、对用户管理、类型管理、菜谱信息管理、评分信息管理、留言信息、系统管理等功能进行操作。将纸质管理有效实现为在线管理,极大提高工作效率。关键词:智能菜谱推荐;java;Springboot框架;MySQ1.AbstractInrecentyears,withtherapiddevelopmentofscienceandtechnology,thepopularityoftheInternethasgraduallyextendedtoallwalksoflife,bringingpeopleaveryconvenientlife,intelligentreciperecommendationsystemusesthecomputernetworktoachieveinformationmanagement,sothatthedevelopmentofthewholeintelligentreciperecommendationmanagementandservicelevelhasbeensignificantlyimproved.ThispaperintendstousejavatechnologyandSpringboottobuildthesystemframework,useMySQ1.databaseforinformationmanagementinthebackground,anddesignanddevelopanintelligentreciperecommendationsystem.Throughresearchandanalysis,thesystemhastworolesofadministratoranduser,mainlywithloginregistration,personalinformationmodification,usermanagement,typemanagement,recipeinformationmanagement,scoreinformationmanagement,messageinformation,systemmanagementandotherfunctionstooperate.Effectivelyrealizepapermanagementtoonlinemanagement,greatlyimprovetheworkefficiency.Keywords:intelligentreciperecommendation;java;Springbootframework;MySQ1.目录III第一章概述11.1 研究背景11.2 研究目的及意义11.3 国内外发展现状11.4 研究内容11.5 木文的结构2第二章开发工具及技术介绍32.1 JaVa编程语言32.2 MySQ1.数据库32.3 SPRINGBOOT框架42.4 B/S架构4第三章系统分析13.1 功能需求分析13.2 系统可行性分析13.2.1 技术可行性13.2.2 经济可行性13.2.3 社会可行性23.3 系统用例分析23.4 系统流程分析33.4.1 登录流程图33.4.2 添加新用户流程图3第四章系统概要设计54.1 系统设计原理54.2 功能模块设计54.3 数据库设计54.3.1 数据库设计原则54.3.2 数据库E-R图设计64.3.3 数据库表结构设计7第五章系统功能实现125.1 系统功能实现125.2 管理员功能模块实现14第六章系统测试186.1 系统测试的目的186.2 软件测试过程186.3 系统测试用例18结论20致谢21参考文献22第一章概述1.1 研究背景近些年,随着中国经济发展,人民的生活质量逐渐提高,对网络的依赖性越来越高,通过网络处理的事务越来越多。随着智能菜谱推荐管理的常态化,如果依然采用传统的管理方式,将会为工作人员带来庞大的工作量,这将是一个巨大考验,需要投入大量人力开展对智能菜谱推荐信息等相关工作进行管理,单一且反复的操作容易出错且不易被察觉,工作人员对此风险并不能完全归避。利用现代信息技术,设计开发一款智能菜谱推荐系统,能够极大的节省人力物力、提高工作效率、降低工作成本。1.2 研究目的及意义本论文拟采用计算机技术设计并开发的智能菜谱推荐系统,主要是为菜谱推荐提供服务。使得的用户可依据、时间、地点或者其他特定条件,筛选出符合的信息,给客户提供更符合实际的合理化建议,再为客户提供服务。本课题的意义在于,用户能通过使用智能菜谱推荐系统,提高用户的工作效率和服务质量,进而提高客户的体验感。1.3 国内外发展现状相比于国内,国外的线上管理系统建设比较早,在上世纪就已经很先进,但受七十年代的经济危机影响,导致部分国家发展缓慢,但也有些发达国家走群众路线,全面发展网络技术。在国内,线下管理系统已经特别完善,它基于计算机技术,让系统具有信息化、科学化、自动化等特性。在计算机的辅助下,国内该类系统可使管理者提高信息的复用率,对数据的处理、备份等方面也有了显著的效率提升,这种有效的工作可使管理者能更快的做好决定,也实现了“无纸化”的信息管理方式。由于其功能特别完善,也导致系统比较庞大,所以在了解该类系统的功能、操作后,决定开发一款智能菜谱推荐系统,它的功能小,但是操作简单、快速、准确的特点,也体现了设计它的意义。1.4 研究内容(1)调研:通过网络、图书馆等渠道调查该课题的参考资料。(2)系统需求分析:对参考资料分类整理,设想需求与功能,再研究实现功能所需的开发工具、技术、数据库等。(3)系统概要设计:设计功能模块、流程、数据库模型、表与字段间的关系等。(4)系统实现:对系统用户以文字加截图的形式进行精细化分解。(5)系统测试:测试的作用和好处,测试的具体操作步骤,分析需求与测试结果是否一致。1.5本文的结构本论文分为六个章节。第一章,绪论,其包含课题背景及意义,现国内外的发展现状,本课题要研究的内容,所使用开发工具的描述等信息。第二章,主要介绍了系统的开发技术。第三章,先讲述功能需求分析,再讲述系统可行性分析和流程图的设计。第四章,是系统设计原理,功能模块设计和数据库设计。第五章,详细讲述每个界面的正确操作步骤。第六章,该章讲述了测试的目的以及测试过程及用例。最后对论文进行总结,包括致谢和参考文献等内容。第二章开发工具及技术介绍此次管理系统的关键技术和架构由B/S结构、java技术和MySQ1.数据库,是本系统的关键开发技术,对系统的整体、数据库、功能模块、系统页面以及系统程序等设计进行了详细的研究与规划。2.1 Java编程语言Java语言的发展距今己有二十多年的历史,Java在众多编程开发语言中依然稳居排名前三,这离不开Java技术体系的众多开发优势,相对比于其他编程开发语言而言,Java语言Dso的入门使用非常简单,JaVa集成了丰富的类库和封装类,能够使开发者非常方便调用,拥有强大的技术基础作为支撑,非常适合大型软件的开发。由于JaVa语言是一门面向对象的编程语言,因此程序员只需要掌握基本的语法规则和清晰的编程思路便可以较好地开发应用程序。除此之外,由于JaVa语言具有跨平台和可移植性强的开发优点,因此可以在Android的应用程序开发中发挥其重要作用。在大型的软件项目开发中应用JaVa技术较为广泛,能够为企业项目需求提供成熟的解决方案。常用的计算机程序编程语言有JaVa语言、Python语言、C语言以及C+语言。由于JaVa语言具有成熟的技术架构以及较为广泛的应用范围,因此深得编程人员的喜爱。Java语言提供了try-catch异常处理、垃圾自动回收、内存动态分配等强大功能机制,JaVa语言具备简单性、健壮性、可移植性、多线程等优点,Java语言的强大特性能够降低软件后期的维护成本以及有效缩短软件研发周期,节省了企业的软件开发成本。本研究的智能菜谱推荐教学案例项目正是以成熟的JaVa编程语言为基础的智能菜谱推荐项目开发语言。2.2 MySQ1.数据库MySQ1.是OraCIe公司旗下的一个开源的关系型数据库管理系统(ReIatiOnalDatabaseManagementSystem,RDBMS)44oMySQ1.支持使用多线程,充分利用了CPU的计算资源,可以选择InnoDB,MylSAM和MEMORY等作为存储引擎,提供了丰富的数据库管理工具。在索引功能的加持下,其具有非常高的查询效率,并支持主从、多节点集群等高可用部署模式。MySQ1.凭借其低廉的成本、可靠的数据库服务和出色的性能,目前己经成为绝大多数企业在进行项目开发时的首选关系型数据库。MySQ1.的体系结构如图2.1所示,具体可分为网络连接层、服务层、存储引擎层和系统文件层,分别完成建立连接、SQ1.解析与执行、数据存储与提取和数据交互等功能。网络连接层客户涉连接支持的接口)标KtC的API、JDBC.ODBC.NET.PHP.Per1.Python、Ruby.Cobol连接池SQ1.lt11解析器代询优化器盘存和缓存池存储引擎层DM1.,DD1.、StoredProcedure.T11ggs.Vjews1.eacalSananticSynactic.C(JdeGenerationRcwntjng>OrderofScanning&IndexesGlobal&EngineSpecificCaches可fi孩式存储引擎管理MjrlSAMIxmoDBChsterMDBAcvtFdatedM<moxyM<rg<PaxfntxConmumtrCDnnectionionHanding&Authentication.Security(iiE授权、连接限制等)文件系统NTFS.ufs,ext23NFS1SANJ4AS系统文件层文件&II志Redo,Undo.Data.Index.BinaiyEno,QUaryandSl叫图2.1MySQ1.体系结构图2.3 SPRINGBOOT未匡架SpringBoot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。SPringBOOt的主要设计思想是约定大于配置,因此SpringBoot在设计时几乎达到零配置。SpringBoot集成了业界的开源框架。SpringBoot是一个非常强大的后台框架,因为SpringBoot的开发基本上不需要写配置文件,所以利用SPringBOOt来构建网站的后台环境,在SPringBOot的YM1.配置文件中写项目启动端口,项目就可以启动了。项目的JaVa和静态文件由SPringBoOt管理。2.4 B/S架构B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作。B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。第三章系统分析3.1 功能需求分析需求分析的首要任务是要分析用户的需求,知道用户存在的一些情况,并且要明确用户的使用状况,然后设计规划解决的问题。其中在使用定性的分析以及定量的分析,从这两个方面获取用户的需求。一方面定性的分析获得的应该是用户的基本需求,能够发现现在人们的习惯要求。所以定性的需要主要是为了多与用户交流,从而更为深刻的了解一些存在的需求问题;定量的分析则是发现一些潜在的用户,并且获得不一样的反馈内容。所以定量的需求要让用户来阐述一些情况,一定让使用者清晰的进行客观的描述,这样才能够比较全面的获得用户的需求所在。其中获得用户需求以后,就要可以将用户需求设计为系统的功能模块。在能及时的分析和发现有关需求的情况下,需要系统同时的跟进需求设计。在智能菜谱推荐管理过程中还需要创建需求工作的数据分析,以便于后面的分析做总结。写入一个需求的报告内容,其中需要包含完整的描述需求、以及功能需求、模型等后续开发过程中还需要用到的部分资料。需求的分析中用户需求就是比较的重要,而且可以通过各种的路径,以及各用户对于系统的功能需求,你需要对这些内容做出整理以及分类,然后分析这些需求的现实情况下的可能原因,还需要有认真的分析过程,结合现实的情况下最终做出一系列的需求资料。在有关用户的期望分析中能够明确一些可能实现的情况,智能菜谱推荐管理功能是许多个可以测试的功能相结合的,正是由于这些功可以使得用户能够更加积极的提供出需求,让系统功能可以变得更加的完善。这样就可以保证所有设计的功能模块都是可以用到的,而且也是可测试的,对于后续系统的开发能够有比较关键的作用,也能快速完成用户所提供的需求。3.2 系统可行性分析3.2.1 技术可行性该系统使用java技术开发,MySQ1.数据库同SPringbOOt框架联合开发并实现。对于以上描述的技术,在当代都是较为成熟的技术和平台,虽然它们都有自己的体系,但在程序员的眼里,它们的配合度是很高的,网上的相关博客中每个创建项目的帖子,它们都会出现,数据库负责管理数据,开发工具负责管理项目,技术负责代码的框架,既相互独立,又相互依赖。以上描述的工具、技术都已转化为自身的技能,所以从技术角色考虑是可行的,工作人员对于技术的关注度并不高,只要程序可用即可。3.2.2 经济可行性经济可行性,可分为两种,支出和收入,该系统属于研究型毕业设计,所以收入部分暂不考虑。支出可分为,设备、场地、开发环境、人力、时间等一切需考虑的因素,所有信息都是影响形成系统的一部分。设备:只需一台笔记本电脑,配套的输入设备;场地:暂定为图书馆与校内的自习室;开发环境:良好;人力:自身、指导老师、同学;时间:从选题到毕业为止,大约8个月。从以上描述可知,大部分条件已经满足,所以该系统不会存在经济方面的问题,所以是可行的。3.2.3 社会可行性社会可行性,广义而讲可涉及到道德方面、法律方面、社会方面,每个方面都会影响系统的形成。本系统的是独立且没有任何传播性质的信息,更涉及不到道德层面,法律层面;本系统也没有触发法律,没有赌博、黄色等类型信息,同时也是遵从国家法律,不会显示任何触发法律层面的信息;社会方面,该系统是为方便客户提供更好的服务,是轻量级的智能菜谱推荐,会为人们带来快速并有效查询的功能,也是具有贡献意义的。总体而言,该系统也是具有社会可行性的。3.3 系统用例分析智能菜谱推荐系统综合网络空间开发设计要求。目的是将传统管理方式转换为在网上管理,完成智能菜谱推荐管理的方便快捷、安全性高、交易规范做了保障,目标明确。智能菜谱推荐系统可以将功能划分为管理员功能和用户功能。(1) 管理员关键功能包含个人中心、用户管理、类型管理、菜谱信息管理、评分信息管理、留言信息、系统管理等进行管理。管理员用例如下:c赢管理员j言信图3-1管理员用例图(2)、用户登录进入系统可以实现对首页、菜谱信息、公告信息、留言信息、个人中心等进行管理。用户用例如下:z×言信r二用户、中匚图3-2用户用例图3.4系统流程分析流程图是用具体的图形符号和相应的线条来表示系统执行的整个过程。因为这种图可以很容易地描述系统的一系列过程,所以它的所有图形符号都是比较关键的,基本上一个图形符号可以表示一个过程的一个步骤。流程图不仅提供了一个比较完整、全面的实施过程,而且可以发现整个团队协同设计过程中可能存在的缺陷和不足,便于在后续过程中及时对系统进行修正和改进。通过流程图可以对系统的需求和相关流程进行分析,可以详细细分为各个部分的设计。对于设计人员来说在开发过程中要能够以流程图为基础,能够快速的提高自己的逻辑思维,并且也能够指导后续的操作在系统设计中最重要的部分就是程序的设计,然后具体的编写程序,流程图是设计过程中的重要工具,下面是流程图的部分设计。3.4.1 登录流程图登录流程是该系统的第一个流程,登录的第一步是输入账号、密码登录,系统会验证账号与密码是否正确,正确时系统会判断账号类型再进入不同的后台;不正确时,会返回到登录的第一步,输入用户重新执行登录流程。该流程如图33所示。图3-3登录流程图3.4.2 添加新用户流程图添加新用户的流程是先查询新用户名是否已存在,如已有该用户名,需重拟用户名并同时输入新用户的其它信息,添加新用户到数据库时会先验证数据是否完整,信息都正确且完整时,返回并刷新用户列表;信息不正确时,会返回输入信息的那一步。该流程如图3-4所×O图3-4添加新用户流程图第四章系统概要设计4.1 系统设计原理设计原理,是指一个系统的设计由来,其将需求合理拆解成功能,抽象的描述系统的模块,以模块下的功能。功能模块化后,变成可组合、可拆解的单元,在设计时,会将所有信息分解存储在各个表中,界面不会显示所有定义的字段。在设计时,会有几大要求,抽象、模块化、信息隐藏、耦合低、内聚等特性,本系统的设计也符合以上几大特性。制作和显示流程都属于程序员需要分析研究的一部分。每个模块都是相对独立的,系统前台不显示账号操作权限范围外的信息。4.2 功能模块设计该章节的功能模块设计,只是大概描述了系统的所有功能模块,将功能按权限来讲解。系统总体功能如图4-1所示。图4T系统总体结构图4.3 数据库设计4.3.1 数据库设计原则学习程序设计,如果想要了解数据库管理系统或者是按照系统接口的要求制作的,就必须创建一个数据库管理系统模型,用来存储数据,这样在进行应用程序编程的过程中,就不需要加载操作系统页面的信息,从而提高整个系统的工作效率。在数据库管理系统中承载着众多的数据,应该说,一个管理信息系统的建设中心和基地,也为建设管理信息系统和信息管理系统提出了新的查询、删除、修改和操作功能,使管理信息系统建设可以快速查询需要的数据,而不是直接从代码中查找。信息库管理系统由各个组成部分的信息表按照具体的方法进行准确的归并、排序和组成信息库管理系统。4.3.2 数据库E-R图设计E-R图即实体-联系图,主要作用是提供了解显示数据类型存在的联系的途径,是藐视现实世界的概念模型,其关键要素是实体型、属性、联系。以下是本系统主要的实体属性图如下所示。用户实体如图4-2所示。内容图片1图4-4关于我们实体属性图评分信息实体如图4-5所示。图4-5评分信息实体属性图4.3.3 数据库表结构设计该系统采用的数据库是MySQ1.,根据该系统的数据存储特点进行数据库关系表的设计。下面是该系统中关键部分关系表的详细信息。表4-1:菜谱信息评论表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTjnMESTAMPrefidbigint关联表iduseridbigint用户idavatarurlIongtext4294967295头像nicknamevarchar200用户名contentIongtext4294967295评论内容replyIongtext4294967295回复内容表4-2:配置文件字段名称类型长度字段说明主键默认值idbigint主键主键namevarchar100配置参数名称valuevarchar100配置参数值表4-3:菜式类型字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTjriMESTAMPCaishileixingvarchar200菜式类型表4-4:用户字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间ClJRRENTjmlESTAMPzhanghaovarchar200账号mimavarchar200密码xingmingvarchar200姓名xingbievarchar200性别youxiangvarchar200邮箱Shoujihaomavarchar200手机号码touxiangIongtext4294967295头像表4-5:菜谱信息字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTjnMESTAMPCaipumingchengvarchar200菜谱名称CaipufengmianIongtext4294967295菜谱封面Caishileixingvarchar200菜式类型Pengrenfangshivarchar200烹饪方式fenshuint分数cailiaoIongtext4294967295材料ZhizuoliuchengIongtext4294967295制作流程faburiqidate发布日期clicktimedatetime最近点击时间clicknumint点击次数0表4-6:用户表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar100用户名passwordvarchar100密码rolevarchar100角色管理员addtimetimestamp新增时间CURRENTjriMESTAMP表4-7:关于我们字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT-TIMESTAMPtitlevarchar200标题subtitlevarchar200副标题contentIongtext4294967295内容picturelIongtext4294967295图片1picture2Iongtext4294967295图片2picture3Iongtext4294967295图片3表4-8:token表字段名称类型长度字段说明主键默认值idbigint主键主键useridbigint用户idusernamevarchar100用户名tablenamevarchar100表名rolevarchar100角色tokenvarchar200密码addtimetimestamp新增时间CURRENTJTIMESTAMPexpiratedtimetimestamp过期时间CURRENTjmlESTAMP表4-9:收藏表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTjnMESTAMPuseridbigint用户idrefidbigint商品idtablenamevarchar200表名namevarchar200名称pictureIongtext4294967295图片typevarchar200类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)1inteltypevarchar200推荐类型remarkvarchar200备注表4T0:评分彳言息字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTJmlESTAMPCaipumingchengvarchar200菜谱名称Caishileixingvarchar200菜式类型fenshuint分数zhanghaovarchar200账号Xingmingvarchar200姓名Pingfenriqidate评分日期crossuseridbigint跨表用户idCrossrefidbigint跨表主键id表4-11:公告彳字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTjmlESTAMPtitlevarchar200标题introductionIongtext4294967295简介pictureIongtext4294967295图片contentIongtext4294967295内容表4T2:留言彳言息字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENTJmlESTAMPuseridbigint留言人idusernamevarchar200用户名avatarurlIongtext4294967295头像contentIongtext4294967295留言内容cpictureIongtext4294967295留言图片replyIongtext4294967295回复内容rpictureIongtext4294967295回复图片第五章系统功能实现5.1 系统功能实现当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:t9公传碘关于0图5T系统首页界面系统注册:在系统注册页面的输入栏中输入用户注册信息进行注册操作,系统注册页面如图5-2所示:图5-2系统注册页面USER/REGISTER菜谱信息:在菜谱信息页面的输入菜谱名称、口味、烹饪方式和选择类型进行查询菜谱详细信息;并根据需要对菜谱详细信息进行评分、评论或收藏操作;菜谱详细信息页面如图5-3所示:智能菜逡推萼系统图5-3菜谱信息详细页面留言板:在留言板页面通过输入留言内容,上传图片并立即提交进行在线留言,还可以对留言内容进行回复操作;留言板页面如图5-4所示:智能Sraf推荐系拄图5-4留言板详细页面个人中心;在个人中心页面可以输入个人详细信息进行信息更新操作,还可以对我的收藏进行详细操作;如图5-5所示:隹能菜青推荐系统图5-5个人中心界面5.2 管理员功能模块实现管理员登录,在登录页面正确输入用户名和密码后,点击登录进入操作系统进行操作;如图5-6所示。图5-6管理员登录界面管理员进入主页面,主要功能包括对个人中心、用户管理、类型管理、菜谱信息管理、评分信息管理、留言信息、系统管理等进行操作。管理员主页面如图5-7所示:wtM*auo4图5-7管理员主界面管理员点击用户管理。进入用户页面输入账号和姓名进行查询、新增和删除用户列表,并根据需要对用户详细信息进行详情,修改和删除操作;如图5-8所示:图5-8用户管理界面尾a会管理员点击菜谱信息管理。进入菜谱信息页面输入菜谱名称、口味、烹饪方式和选择类型进行查询、菜谱分类统计、菜谱评分统计、新增或删除菜谱信息列表,并根据需要对菜谱详细信息进行详情、评分、查看评论、修改或删除操作;如图5-9所示:图5-9菜谱信息管理界面管理员点击评分信息管理。进入评分信息页面输入菜谱名称和类型进行查询、每日评分人数统计或删除评分信息列表,并根据需要对评分详细信息进行详情或删除操作;如图5T0所示:图5-10评分信息管理界面HHH三三三三三三三H管理员点击留言信息管理。进入留言信息页面输入用户名进行查询和删除留言信息列表,并根据需要对留言详细信息进行详情、回复或删除操作;如图5T1所示:mtt>dmtnKtOl图5T1留言信息管理界面软记51管理员点击系统管理可以对关于我们、系统简介和轮播图管理进行查看详情或修改操作,在公告信息页面输入标题进行查询,新增或删除公告信息列表,并根据需要对公告详细信息进行详情,修改和删除操作;如图5T2所示:图5-12系统管理界面第六章系统测试6.1 系统测试的目的测试是为了发现问题,而不是证明程序没有问题。测试是可编写测试用例来描述测试的步骤、预想的界面或效果与实际的差距,来验证程序是否正确。测试的原则有几条,测试需要输入条件和输出结果,制定测试用例来规范测试的步骤,也会适当的推进测试的进度。正常的测试流程是从项目立项开始,就可按需求先写测试用例,与程序开发同步进行,等程序开发完成,测试用例也可同时完成,等程序开发交接到测试时,可直接展开测试工作。6.2 软件测试过程软件测试是软件设计的最后一个阶段,它贯穿于整个设计过程,是一项巨大的任务。软件测试需要测试程序的所有部分。每个部分的测试是不同的,在测试之前需要分为以下几个阶段:一、单元测试,即模块测试;这是检查软件程序代码的测试。用于软件的最小单位部分。单元测试分为手动测试和动态测试。为了保证程序算法的正确性,静态检测应标准化程序的逻辑、标准化和正确性。该步骤是检测尽可能多的错误。动态检测通过将实际结果与预期结果进行比较来检测错误。二、集成测试:该测试基于单元测试,用于测试系统的各个功能模块。任何软件设计都会有一个集成阶段,因此在软件测试过程中,集成测试是必不可少的一部分。在集成测试过程中,由于测试是在模块之间进行的,因此在测试过程中可能不会发现问题,但在整个测试过程中会暴露出来。同时,在集成测试过程中,注意模块连接过程中是否有数据丢失。还应注意的是,尽管单个模块的误差可能很少且没有影响,但拼接可能对系统产生很大影响。三、系统测试:系统测试遵循集成测试。系统测试将通过集成测试的部分作为整个系统的一部分。它与电子设备的所有软硬件一起,可以通过实际操作检测模拟的实际环境中是否存在错误。系统测试需要与计划中的理想情况进行比较,以找出与预期的差异。在分析设计器后确定如何修改。在软件的实际操作过程中,会出现许多意外错误,测试人员可能无法在第一时间解决问题。因此,系统测试应尽可能在实际运行情况下进行,以达到更好的测试目的。四、验收测试:验收测试是在设计完成和发布之前对系统的最终测试。它需要了解用户和合作伙伴的需求。我们将与他们一起完成测试,并根据他们的需求进行有针对性的修改,成为能够更好地同时满足两者需求的软件。6.3 系统测试用例性能测试是指通过自动化测试工具模拟系统在不同负载和压力情况下,观察平均响应时间、CPU占用率和内存占用率等性能评价指标的变化情况,以检验系统性能是否能达到预期目标,确保平台上线后稳定运行。本文采用开源的测试工具JMeter模拟用户对平台APl网关的并发请求行为,并发量从200开始逐渐递增,利用JMeter自带的监听器与插件记录平均响应时间、CPU占用率和内存占用率等性能评价指标,具体测试结果如表6.1所示。表6.1APl网关性能测试结果平均响应时间响应失畋率CPU占用率内存占用率并发量(ms)异常率200930.00%0.00%7%20%400179000%000%13%33%6003020.00%0.69%35%41%SOO7080.00%201%51%59%10001087000%295%64%72%120013110.00%3.43%78%89%14001754450%5.72%90%97%由测试结果可知,在系统并发量逐渐递增到1200的过程中,平均响应时间控制在1.5秒内,异常率保持为0%,响应失败率小于5%CPU占用率小于80%,内存占用率小于95%,达到了预期的性能目标。当并发量达到1400时,有一部分请求出现异常,各项性能指标也超出以上标准,说明目前系统在1400并发请求时达到了性能瓶颈。本系统