310
社区成员




这个作业属于哪个课程 | 软件工程实践-2023 学年-W 班 |
---|---|
这个作业要求在哪里 | 软工实践——GitCode团队实战总结 |
这个作业的目标 | 实现世界游泳锦标赛的注册、登录、个人信息、投票、排名、后台等功能 |
其他参考文献 | 无 |
成员 | 前端次数 | 后端次数 | 总次数 |
---|---|---|---|
蓝有润 | 2 | 8 | 10 |
谢凌云 | 4 | 0 | 4 |
熊桂根 | 0 | 5 | 5 |
戴聪 | 7 | 0 | 7 |
陈智翔 | 4 | 0 | 4 |
陈卓杨 | 0 | 0 | 0 |
运行环境为腾讯云服务器。运用docker容器装载Springboot jar文件和编译后的Vue文件。
前台地址为http://114.132.55.221/
后台地址为http://114.132.55.221/Admin
建议用已经注册好的账号进行登录,因为后端会检测IP,同一个IP地址不能重复注册。
用户名 | 密码 |
---|---|
Alice Lee | nmTRgtPlLe |
Charlie Smith | XADQxB8prA |
Alexander Morales | 3ETM*h37Bb |
竞争对手:
我们的优势:
我们的改进点:
导航栏选择投票,可查看剩余票数,选择选手输入票数并且点击投票按钮后可以完成投票。投票完成后可以看到给哪些运动员投了多少票。
使用已注册的账号,在登陆页面正确输入(可点击显示或隐藏密码)后,并且勾选用户协议,方可登录
在登陆页面点击右下角注册进入,必须要输入所有内容(邮箱等需要符合规范)且点击同意用户协议后方可点击确认注册并成功。
投票完成后,会把用户的投票结果告知给用户,同时结果是实时生成的,当投票完毕后,用户可以立刻进入排名界面查看用户的投票内容。
为了让用户快速参与到投票中,我们设置了登陆后的初始界面即为投票界面。
如下图,10.132.101.159在之前测试时注册了一个账号,第二次注册账号时,因为数据库中含有对应的ip地址,所以注册失败。
完成登陆页面和注册页面的页面设计与制作,完成用户界面的导航栏、投票页面的部份表格和排名页面的数据读取和导入以及分页设计制作。完成管理员页面的导航栏和排名页面的设计制作、数据的读取导入和分页设计制作。
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 30 | 35 |
• Estimate | • 估计这个任务需要多少时间 | 30 | 35 |
Development | 开发 | 550 | 807 |
• Analysis | • 需求分析 | 30 | 32 |
• Design | • 具体设计 | 90 | 120 |
• Coding | • 具体编码 | 400 | 510 |
• Code Review | • 代码复审 | 60 | 80 |
• Test | • 测试 | 60 | 65 |
Reporting | 报告 | 50 | 50 |
• Size Measurement | • 计算工作量 | 20 | 25 |
• Postmortem & Process Improvement Plan | • 事后总结 | 30 | 25 |
合计 | 630 | 892 |
配置axios,负责登陆、注册和个人信息的前后台通信部分。实现登陆和退出的session功能,登陆和未登录的权限访问限制。配置云服务器。
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 10 |
• Estimate | • 估计这个任务需要多少时间 | 10 | 10 |
Development | 开发 | 500 | 1060 |
• Analysis | • 需求分析 | 40 | 40 |
• Design | • 具体设计 | 60 | 100 |
• Coding | • 具体编码 | 400 | 800 |
• Code Review | • 代码复审 | 60 | 60 |
• Test | • 测试 | 60 | 60 |
Reporting | 报告 | 40 | 40 |
• Size Measurement | • 计算工作量 | 20 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结 | 20 | 20 |
合计 | 550 | 1110 |
和戴聪同学一起进行投票界面和排名界面的开发,我主要负责其中的表格部分,还有投票界面对票数的验证及数据在页面的保存。
设计接口完成接口设计图,我主要负责编写后端代码,完成了后台管理员模块的接口代码编写。使用JMeter模拟大量用户进行投票的压力测试。
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 10 | 20 |
• Estimate | • 估计这个任务需要多少时间 | 10 | 20 |
Development | 开发 | 500 | 745 |
• Analysis | • 需求分析 | 40 | 50 |
• Design | • 具体设计 | 60 | 70 |
• Coding | • 具体编码 | 400 | 500 |
• Code Review | • 代码复审 | 60 | 60 |
• Test | • 测试 | 60 | 65 |
Reporting | 报告 | 50 | 45 |
• Size Measurement | • 计算工作量 | 20 | 20 |
• Postmortem & Process Improvement Plan | • 事后总结 | 30 | 25 |
合计 | 630 | 810 |
完成系统结构图、ER图和数据库的设计。完成后端前台的所有接口,同时测试所有接口与前端的连接。编写前端的用户封禁和投票界面。参与博客的撰写。
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60 | 70 |
• Estimate | • 估计这个任务需要多少时间 | 60 | 70 |
Development | 开发 | 660 | 922 |
• Analysis | • 需求分析 | 30 | 32 |
• Design | • 具体设计 | 90 | 120 |
• Coding | • 具体编码 | 420 | 620 |
• Code Review | • 代码复审 | 60 | 80 |
• Test | • 测试 | 50 | 80 |
Reporting | 报告 | 45 | 65 |
• Size Measurement | • 计算工作量 | 15 | 25 |
• Postmortem & Process Improvement Plan | • 事后总结 | 30 | 40 |
合计 | 总计 | 765 | 1057 |
参与博客撰写。
成员 | 分工 | 贡献度 |
---|---|---|
蓝有润 | 完成系统结构图、ER图和数据库的设计。完成后端前台的所有接口,同时测试所有接口与前端的连接。编写前端的用户封禁和投票界面。参与博客的撰写。 | 25.5% |
谢凌云 | 配置axios,负责登陆、注册和个人信息的前后台通信部分。实现登陆和退出的session功能,登陆和未登录的权限访问限制。配置云服务器。 | 17.5% |
熊桂根 | 设计接口完成接口设计图,完成了后台管理员模块的接口代码编写。使用JMeter模拟大量用户进行投票的压力测试。 | 18.5% |
戴聪 | 完成登陆页面和注册页面的页面设计与制作,完成用户界面的导航栏、投票页面的部份表格和排名页面的数据读取和导入以及分页设计制作。完成管理员页面的导航栏和排名页面的设计制作、数据的读取导入和分页设计制作。 | 18.5% |
陈智翔 | 和戴聪同学一起进行投票界面和排名界面的开发,负责其中的表格部分,还有投票界面对票数的验证及数据在页面的保存。 | 12% |
陈卓杨 | 参与博客撰写 | 8% |
整合到了基础功能中。
进入管理员页面,导航栏选择用户管理,可以查看用户的基本信息,并对用户的账号进行封禁或者解封的操作。
进入管理员页面,导航栏选择排名,可以查看当前前十名的柱状图以及所有选手的详细排名。
使用Jmeter进行压力测试
配置完毕Jmeter,用CSV配置文件实现用户变量。通过线程组启动多条线程,模拟同时多用户进行投票操作的压力测试。
查看聚合报告分析性能。
样本数量:总共进行了952个HTTP请求样本。
平均值:所有样本的平均响应时间为2305毫秒。
中位数:中位数是样本响应时间的中间值,即有一半的样本响应时间小于等于中位数(2051毫秒),另一半大于等于中位数。
90% 百分位:90%的样本响应时间在4458毫秒以内。
95% 百分位:95%的样本响应时间在4548毫秒以内。
99% 百分位:99%的样本响应时间在4914毫秒以内。
最小值:最快的响应时间为6毫秒。
最大值:最慢的响应时间为21059毫秒。
异常 %:异常百分比为5.462%,表示有5.462%的请求响应时间超出了预期范围或发生了异常情况。
吞吐量:吞吐量指每秒钟处理的请求数量,这里是0.37848。
接收 KB/sec:接收的数据量,以KB/秒计算,为0.11 KB/秒。
发送 KB/sec:发送的数据量,以KB/秒计算,为0.13 KB/秒。
从这份报告可以看出,在1000个线程同时访问时,大部分HTTP请求的响应时间都在较短的范围内,但有5.462%请求响应时间较长或发生异常。经过进一步测试发现在800线程访问时,0.0%的请求响应时间异常,说明压力测试的瓶颈在800-1000之间,在800线程前都是无负担的。而本预计的百万级压力测试也仅在模拟千级用户时就卡住了。查询资料分析原因是线程启用过多,而笔记本内存资源稀缺。要想模拟达到百万级用户同时进行投票访问可能需要使用服务器或多台分布式测试。