1.项目背景与核心功能
在线抽奖系统是一个基于Java语言开发的web应用,它在于为各类多人参加的活动提供一个便捷公正的在线抽奖的娱乐活动。
核心功能如下:
用户注册和登录功能
登录后的用户进行奖项的增删改查功能
登录的用户对抽奖人员名单的增删改查功能
对设置奖项进行抽奖功能
对中奖人员进行查看和删除
对奖项进行清空重置
2.项目测试
2.1测试用例设计
2.2测试环境
笔记本电脑,windows11操作系统,谷歌浏览器
2.3实际执行测试用例部分操作
2.3.1注册测试
正常注册:注册页面输入未注册过的用户名、3~20个字符的密码和确认密码(邮箱、昵称、年龄和头像设置为选填,此处测试不作填写),点击提交
预期结果:页面上方弹出注册成功提示的弹窗
实际结果:
测试结果:与预期结果一致,测试成功
异常注册(以输入已注册过的用户名为例):注册页面输入用户名,密码和确认密码,点击提交
预期结果:页面上方弹出用户名已存在的弹窗
实际结果:
测试结果:与预期结果一致,测试成功
2.3.2登录测试
正常登录:登录页面输入正确的用户名和密码,点击提交
预期结果:页面提示登录成功,并跳转到奖项设置页,右上方用户信息与注册昵称一致
实际结果:
测试结果:与预期结果一致,测试成功
2.3.3奖品名称修改测试
点击奖项设置操作中的修改,修改奖品名称后保存
预期结果:奖品名称更改,页面上方提示修改成功
实际结果:
测试结果:与预期结果一致,测试成功
2.3.4抽奖测试
在抽奖页面点击开始进行抽奖
预期结果:点击开始随机选取中奖人员名字,点击停止页面中央展示中奖人员名单
实际结果:
测试结果:与预期结果一致,测试成功
2.3.5注销测试
在奖项设置页点击注销按钮
预期结果:页面跳转到登录页面,且页面上方提示注销成功
实际结果:
3.自动化测试
3.1添加pom.xml依赖
<dependencies>
<!-- 添加selenium依赖-->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<!-- 保存屏幕截图需要用到的包-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<!-- 添加junit5依赖-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>1.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
3.2.新建包并在包下创建测试类以及公共类
以下是所建立的是common公共包和Tests测试包:
3.2.1公共类DuoXo
创建驱动、保存现场截图
注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
注意文件名的动态获取,注意时间格式的设置。
3.2.2登录页面测试
创建驱动,并打开页面
测试页面是否正常打开
测试正常登录:多参数测试
测试用户注册:多参数测试
测试选择头像,看是否可以选择图片
注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
3.2.3奖项页测试
测试奖项页是否可以正常打开
测试奖项页的修改按钮是否可以正常修改
测试未登录的直顺便测试了“注销”按钮
测试奖项页的删除按钮是否可以正常删除,
3.2.4抽奖页测试
测试抽奖页是否可以正常打开
测试抽奖页的开始按钮是否可以正常使用
测试抽奖页的停止按钮是否可以正常使用
测试抽奖页的清空按钮是否可以正常使用
3.3测试结果展示
脚本测试结果:
设置并发数量进行性能测试,并导出测试报告以及图表
1)设置2个虚拟用户,防止电脑崩溃
2)在Controller中设置场景
3)开始进行运行,性能测试开始(运行中+结束截图)
4)在Analysis中查看性能报告以及报表
报告
点击率
吞吐量
系统资源
5)分析系统资源
① 剩余的物理内存近50%,即使用了近30%的内存,对于简单的登录功能来说还是较高的内存使用,还有内存优化的空间。
② 当点击率较大时CPU使用也是达到了一个较高的点,CPU利用率较高。