目录
一.报告概要
测试对象: 基于servlet编写的博客系统
测试目的: 检测博客项目是否符合预期,并且对测试知识进行练习和加固
测试点: 主要针对常用的功能进行测试比如:博客项目的登录页,博客列表页,博客编辑页,博客详情页,导航栏等进行测试
测试结果及结论: 测试的常用功能全部正常,但是发现该博客系统没有删除功能
二.测试环境
硬件:HUAWEI 23H2
软件:Windows,Google Chrome,IDEA
测试工具:自动化测试工具Selenium
浏览器版本:Google Chrome 127.0.6533.100
三.项目背景
1.个人博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上,前端主要由四个页面构成:博客登录页(login.html),博客列表页(blog_list.html),博客编辑页(blog_edit.html),博客详情页(blog_detail.html)。以上模拟实现了简单的个人博客系统,结合后端后主要有以下功能:登录,博客编辑页编写博客,发布后跳转到博客列表页,博客列表页查看所有博客,博客详情页查看博客全文,以及注销后回到登录页。
2.该项目并没有实现注册功能,只能提前在数据库中存储用户信息后经过校验登录;并且用户头像也不能自己设定,在写前端页面的时候已经将头像的图片写为静态了;而用户信息中的文章数以及分类数也没有在后端进行实现,直接在前端页面中写为了静态的。
3.此博客系统实现个了人用户简单的博客记录,时间,,标题,内容以及发布者等都可以进行详细查看
四.项目功能
1.登录功能:用户名以及密码已经在后端写入了数据库,没有实现账户注册功能,所以用户名以及密码是已经存在的。登录成功后就会跳转到列表页面。在右上角存在注销按钮,点击会跳转到登录页,如果直接访问的是列表页,详情页,编辑页也会直接跳转到登录页。
2.列表页面:可以在列表页查看有效数量的博客简介,包括博客标题,发布时间以及内容概要。在左侧可以看到登录的用户。在右上角有主页,写博客,和注销三个功能:主页就是列表页,写博客则是博客编辑页,注销则是注销用户,回到登录页面。
3.详情页面:在列表页面点击“查看全文”按钮则会跳转到详情页,此时就可以看到这篇博客的完整内容。在右上角同样有主页,写博客,和注销三个功能。
4.博客编辑页:在登录之后的任意界面点击“写博客”之后就会进入博客编辑页面,此时就可以进行博客的编写,写好标题和正文之后点击“提交”就可以成功发布文章,此时就会跳转到列表页。
五.测试计划
Ⅰ.功能测试
1.测试用例:
2.实际执行测试的部分操作步骤&截图
❶正常登录
❷写博客测试
❸ 发布成功并查看详情页
❹点击 “注销” 回到登录页
Ⅱ.自动化测试
1.博客系统自动化测试【部分测试用例】
2.代码编写
❶ 添加相关依赖pom.xml
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.14.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.0.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
</dependency>
</dependencies>
❷ 新建包并在包下创建测试类
❸输入正确账号密码登录成功(自动化测试主要代码)
❹登录失败
❺博客列表博客数量,发布的博客数量不为0
❻博客列表页的"查看全文"按钮以及博客详情页的校验
❼写博客测试
❽校验已发布博客标题和时间
❾注销,点击注销,用户退出成功,页面跳转到登录页,账号密码为空
❿代码参考https://gitee.com/ma-mingzheng/kongkong/tree/master/test_2024_8_10
Ⅲ.性能测试
一.对登录界面进行性能测试
1.VUG录制脚本
Action()
{
web_url("login.html",
"URL=http://49.233.171.29:8080/java107_blog_system/login.html",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t54.inf",
"Mode=HTTP",
LAST);
web_concurrent_start(NULL);
web_url("common.css",
"URL=http://49.233.171.29:8080/java107_blog_system/css/common.css",
"Resource=1",
"RecContentType=text/css",
"Referer=http://49.233.171.29:8080/java107_blog_system/login.html",
"Snapshot=t55.inf",
LAST);
web_url("login.css",
"URL=http://49.233.171.29:8080/java107_blog_system/css/login.css",
"Resource=1",
"RecContentType=text/css",
"Referer=http://49.233.171.29:8080/java107_blog_system/login.html",
"Snapshot=t56.inf",
LAST);
web_url("log5.png",
"URL=http://49.233.171.29:8080/java107_blog_system/image/log5.png",
"Resource=1",
"RecContentType=image/png",
"Referer=http://49.233.171.29:8080/java107_blog_system/login.html",
"Snapshot=t57.inf",
LAST);
web_concurrent_end(NULL);
web_concurrent_start(NULL);
web_url("flower1.jpg",
"URL=http://49.233.171.29:8080/java107_blog_system/image/flower1.jpg",
"Resource=1",
"RecContentType=image/jpeg",
"Referer=http://49.233.171.29:8080/java107_blog_system/css/common.css",
"Snapshot=t58.inf",
LAST);
web_url("favicon.ico",
"URL=http://49.233.171.29:8080/favicon.ico",
"Resource=1",
"RecContentType=image/x-icon",
"Referer=",
"Snapshot=t59.inf",
LAST);
web_concurrent_end(NULL);
lr_think_time(8);
web_submit_data("login",
"Action=http://49.233.171.29:8080/java107_blog_system/login",
"Method=POST",
"RecContentType=text/html",
"Referer=http://49.233.171.29:8080/java107_blog_system/login.html",
"Snapshot=t60.inf",
"Mode=HTTP",
ITEMDATA,
"Name=username", "Value=zhangsan", ENDITEM,
"Name=password", "Value=123", ENDITEM,
LAST);
web_concurrent_start(NULL);
web_url("blog_list.css",
"URL=http://49.233.171.29:8080/java107_blog_system/css/blog_list.css",
"Resource=1",
"RecContentType=text/css",
"Referer=http://49.233.171.29:8080/java107_blog_system/blog_list.html",
"Snapshot=t61.inf",
LAST);
web_url("cat1.jpg",
"URL=http://49.233.171.29:8080/java107_blog_system/image/cat1.jpg",
"Resource=1",
"RecContentType=image/jpeg",
"Referer=http://49.233.171.29:8080/java107_blog_system/blog_list.html",
"Snapshot=t62.inf",
LAST);
web_concurrent_end(NULL);
web_set_sockets_option("SSL_VERSION", "TLS1.1");
return 0;
}
脚本测试通过~~
2.设置并发数量进行性能测试,并导出测试报告以及图表
①设置10个虚拟用户,防止电脑崩溃
②在controller中设置场景
③性能测试开始
④在Analysis中查看性能报告以及报表
❶报告
❷ 点击率
❸ 吞吐量
❹平均传输-响应时间
六.发现问题
1,该博客系统没有删除功能~