大众博客系统测试报告【项目】

目录

一、项目背景

二、项目功能

一功能介绍

二相关源码

三、测试计划操作

一功能测试

二 自动化测试

三 性能测试



一、项目背景


大众博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。前端主要有四个页面构成:登录页、列表页、详情页以及编辑页,以上模拟实现了最简单的大众博客系统。其结合后端实现了以下的主要功能:登录、编辑博客、注销、删除博客、以及强制登录等功能。
但是该项目没有设计用户注册功能,只能提前在数据库中存储用户信息后经过校验登录;并且用户头像不能自己设定,在进行前端页面的书写过程中已经将头像的图片写为静态了;而用户信息中的文章数以及分类数也没有在后端中具体实现,直接在前端页面中写为了静态的。
该个人博客系统可以实现个人用户简单的博客记录,时间、标题、内容以及发布者等都可以进行详细地查看。


二、项目功能

一功能介绍


该大众博客系统主要实现了以下几个功能:登录,写博客以及用户管理等功能。

登录功能:用户名以及密码已经在后端写入了数据库,没有实现账户注册功能,即:用户名以及密码是已经存在的。登录成功后就会跳转到列表页面。在右上角存在主页和写博客两个按钮,但是在未登录情况下按下均只会跳转到登录页面。
列表页面:可以在列表页查看有限数量的博客简介,其包括博客标题、发布时间以及内容概要。在左侧可以看到登录的用户以及文章数、分类数等的模块。在右上角有主页、写博客和注销三个功能:主页即列表页,写博客即博客编辑页,注销即注销用户,回到登录页面。
详情页面:在列表页面点击“查看全文”按钮就会跳转到详情页,此时就可以看到该篇博客的完整内容。在右上角同样有主页、写博客、删除和注销四个功能:删除即删除该篇博客,删除之后就会跳转到列表页面,该篇博客就被成功删除。
写博客:在登录之后的任意界面点击“写博客”之后就会进入博客编辑页面,此时就可以进行博客的编写,点击“发布文章”后就可以成功发布文章,此时就会跳转到列表页。

二相关源码

 @Order(3)
    @Test
    void EditBlog() throws InterruptedException {
        EdgeOptions options = new EdgeOptions();
        options.addArguments("--remote-allow-origins=*");
        EdgeDriver driver = new EdgeDriver(options);
        driver.get("http://62.234.43.231:7551/blog_add.html");
        driver.manage().timeouts().implicitlyWait(3,TimeUnit.SECONDS);
        driver.findElement(By.xpath(" body > div.nav > a:nth-child(5)")).click();
        //输入框输入标题
        ((JavascriptExecutor)driver).executeScript("document.getElementById(\"title\").value=\"自动化测试\"");
            sleep(3000);
            driver.findElement(By.cssSelector("body > div.blog-edit-container > div.title > button")).click();
        sleep(3000);//获取url
        String cur_url = driver.getCurrentUrl();
        Assertions.assertEquals("http://62.234.43.231:7551/blog_list.html",cur_url);


三、测试计划操作


一功能测试


1测试用例:

实际执行测试的部分操作步骤/截图
1正常登录:

2写博客测试

3发布成功并查看详情页

4博客用户管理进行查询

5博客用户管理进行添加

6博客用户管理进行删除

6博客用户管理进行修改

 自动化测试

代码编写
根据脑图进行测试用例的编写:每个页面一个测试类,然后再各个测试类中进行测试用例的编写。
注意公共属性需要单独放一个类,方便进行代码复用。
使用测试套件便于运行以及修改。
创建启动以及现场截图就是会频繁进行复用,所以单独创建一个类进行存储。
注意添加隐式等待,为了确保页面正确加载显示。
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>

29


2. 新建包并在包下创建测试类以及公共类
以下是所建立的是common公共包和Tests测试包:


1)公共类AutoTestUtils
创建驱动、保存现场截图
注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
注意文件名的动态获取,注意时间格式的设置。
注意:可以在创建驱动的时候修改默认的有头模式or无头模式
2)登录页面测试BlogLoginTest
① 创建驱动,并打开页面
② 测试页面是否正常打开
③ 测试正常登录:多参数测试
④ 测试异常登录:用户名/密码错误的情况(此处不测null)
⑤ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码

3)列表页测试BlogListTest
① 测试博客列表页是否可以正常打开
② 测试列表页的“查看全文”按钮是否可以正常跳转
③ 测试未登录的直接链接是否会跳转到登录页面,顺便测试了“注销”按钮
④ 同样注意执行顺序

4)编辑页测试BlogEditTest
① 测试编辑页是否可以正确打开
② 测试博客是否可以正常发布:元素齐全 or 部分元素
③ 测试“写博客”按钮是否可以正常使用
④ 执行顺序

5)详情页测试BlogDetailTest
① 测试详情页的正确打开:有blogId和没有blogId两种情况
② 测试“删除”按钮是否可用,注意比较的是时间,因为标题可能会存在为空的情况
③ 执行顺序
④ 一定要注意导航回到列表页的操作

6)驱动释放DriverQuiteTest
因为驱动的测试是要在最后一个测试类完成之后进行释放的,如果是使用@AfterAll注解,那么每次修改测试类的时候都会需要挪动驱动释放的位置,所以直接新建一个类作为驱动释放,此时只需要在测试套件中放到最后就行。

7)测试套件runSuite
测试套件的运行,使用的是以测试类作为执行顺序的方式

三 性能测试

使用loadrunner进行简单性能测试:针对登录、编写并发布博客以及删除博客、注销等功能进行简单的性能测试。
然后在实现的过程中,插入集合点以及事务等,并通过设置来实现用户的并发操作。

对登录进行性能测试

1脚本测试通过

2开始进行运行,性能测试开始

3在Analysis中查看性能报告以及报表

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值