【来点小剧场--项目测试报告】个人博客项目自动化测试

前述

  1. 针对个人博客项目进行测试,个人博客主要由七个页面构成:注册页、登录页、个人博客列表页、博客发布页、博客修改页、博客列表页、博客详情页,主要功能包括:注册、登录、编辑并发布博客、修改已发布的博客、查看详情、删除博客以及注销等功能。对于个人博客的测试主要就是针对主要功能进行测试,在这里,由于注册功能比较特殊和麻烦,所以暂且不测。
  2. 个人博客地址:登录页面
  3. 自动化测试一般步骤:1)使用脑图编写web自动化测试用例
    2)创建自动化项目,根据用例来实现脚本

一、思维导图

二、代码编写

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

1.添加相关依赖pom.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>blog_sm_Test</artifactId>
    <version>1.0-SNAPSHOT</version>

<!--    <build>-->
<!--        <plugins>-->
<!--            <plugin>-->
<!--                <artifactId>maven-surefire-plugin</artifactId>-->
<!--                <version>2.22.2</version>-->
<!--            </plugin>-->

<!--        </plugins>-->
<!--    </build>-->

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>

        <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>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

2.新建包并在包下创建测试类以及公共类

所建类和包图示

1)公共类InitAndEnd

  1. 公共类实现的功能有两个即创建驱动进行相关初始化,和保存截图
  2. 注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
  3. 文件名进行动态获取。

2)登录页面测试blogLogin_Test

  1. 创建驱动打开页面。
  2. 测试页面是否正常打开。
  3. 异常登陆测试------用户名和密码都为null。
  4. 异常登陆测试------用户名或密码错误。
  5. 正常登录测试。

3)个人博客列表页测试myblogList_Test

  1. 测试页面是否可以正常打开。
  2. 测试按钮是否有效,即点击按钮会不会执行相关的功能。
  3. 测试未登录状态下会不会到达这一个页面。

4)博客发布页测试blogAdd_Test

  1. 检查元素是否被加载出来。
  2. 错误发表一篇博客------不输入标题,然后对相关url进行比对,观察是否发布成功。
  3. 正确发表一篇博客。
  4. 跳转到博客详情页,观察博客是否发布成功。

5)博客修改页测试blogChange_Test

  1. 点击编辑按钮并查找元素。
  2. 将博客的标题进行修改。
  3. 观察博客修改是否成功。

6)博客删除测试blogDelete_Test

  1. 点击删除按钮并进行删除操作。
  2. 观察博客是否被删除。

7)博客详情页测试blogList_Test

  1. 检查元素是否完成加载。
  2. 检查未登录的状态下能否直接访问该页面。
  3. 验证完后进行登录,方便后续测试。

8)注销测试

  1. 执行注销操作。
  2. 进行弹出的提示框的选择。
  3. 测试取消注销和确定注销后结果。
  4. 比对url观察结果。

9)测试套件SuiteTest

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

3.代码参考

blog_sm_Test测试代码

三、代码测试

所有用例均通过,并且有保留截图:

四、亮点

  1. 使用了JUnit5中提供的注解:避免生成过多的对象,造成资源和时间的浪费,提高了自动化的执行效率
  2. 只创建一次驱动对象,避免每个用例重复创建驱动对象造成时间和资源的浪费。
  3. 使用参数化:保持用例的简洁 ,提高代码的可读性。
  4. 使用测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例。
  5. 使用了等待:提高了自动化的运行效率 ,提高了自动化的稳定性,减小误报的可能性。
  6. 使用了屏幕截图:方便问题的追溯以及问题的解决。
相关推荐
sanjiaomao3332 小时前
从论文公式到Python实现:用单元测试校验滑动平均算法
python·算法·单元测试
前端精髓6 小时前
NestJS 是什么(对着 Spring Boot 一起学习)
spring boot·后端·学习
2601_962298276 小时前
Python与Selenium结合的Web自动化测试全流程实践教程
自动化测试·python·selenium·web测试·pageobjectmodel
武哥聊编程8 小时前
【AI实战项目】基于SpringAI+Springboot+Vue的AI面试刷题训练平台
vue.js·人工智能·spring boot·springai
vipxieliang8 小时前
固定电话验证详解:区号、号码、分机号的完整验证
java·spring boot
步行cgn8 小时前
Spring Boot 主入口类上的 @Enable 和 @Scan 注解详解
java·spring boot·后端
xixingzhe29 小时前
SpringBoot DDD 实战入门文档
spring boot·spring·ddd
杨运交11 小时前
[069][公共模块]Spring Boot 全局异常处理与参数校验实战(下):校验异常精细化处理与 WebFlux 适配
java·spring boot·后端
行者-全栈开发11 小时前
Spring Boot + FFmpeg 视频批量处理实战:压缩、HLS切片与异步任务引擎
spring boot·ffmpeg·异步处理·视频压缩·hls切片·批量任务·redis队列
Andya_net11 小时前
Spring Boot | 条件注解完全指南:从 @Conditional 到 @ConditionalOnExpression 的原理、实践与避坑
spring boot·后端·python