【项目】论坛自动化测试


简述

这是对一个论坛系统进行了部分功能的自动化测试。

进行自动化测试的一般步骤:
1.明确自动化测试目标和范围:
2.选择正确的自动化工具
3.制定详细的测试计划
4.设置测试环境
5.执行自动化测试脚本并收集结果
6.分析测试结果并生成报告
7.问题追踪与修复
8.重复和持续测试

这是个人,对尚未出现明显不符合需求的论坛系统,进行的自动化测试项目,所以第7点和第8点并未在项目博客中展示。

一.目标和范围

当前仅对论坛系统对论坛进行了web自动化测试。主要测试登录页面注册页面论坛列表页展示页面以及论坛帖子发布页面

二.选择工具

这里主要使用了selenium自动化测试工具和Junit单元测试框架结合;

1. selenium具有很多优点,包括但不限于开源免费,支持多浏览器,支持多系统,支持多语言编程,以及提供了丰富的web自动化测试API,这对新手学习并实践自动化测试,十分具有友好性。
2.Junit提供了强大的注解功能和断言类,对测试人员编写测试代码十分方便。

三.测试计划(脑图)

在这里插入图片描述

四.设置环境

添加相关依赖pom.xml

<dependencies>
<!--        添加selenium依赖-->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.141.59</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>

五.执行自动化测试脚本并收集结果

1.测试代码的内容:

以下创建了两个包,分别为common包和Tests包;

common包中存放一些公共的属性和方法;
Tests包中存放测试不同页面的类;

Tests包中含有ForumLoginTest,ForumRegisterTest,ForumListTest,ForumEditTest,DriverQuitTest,runSuite六个类
在这里插入图片描述

1.公共类AutoTestsUtils

  • 创建公共的驱动对象,方便代码复用。减少内存消耗;
  • 设置了无头模式,使自动化测试更高效、更易于管理,并且更多地集中于测试本身;
  • 创建了截图功能,保留了具体的测试场景,利于测试回顾;
  • 利用时间戳建立了日期文件夹,存放当日截图照片,方便测试管理;
  • 利用时间戳和类名,为不同图片设置了不同名字,方便在测试遇到问题时,寻根溯源

2.登陆页面测试ForumLoginTest

  • 创建了谷歌的驱动对象,并访问了论坛系统登陆系统界面;
  • 测试论坛登录登录界面是否能正常显示;
  • 测试正常登录情况,选择了三个正确的账号和密码进行测试;
  • 测试异常登录情况,选择了三组账号和密码进行测试,分别是正确的账号和错误的密码,错误的账号和正确的密码,错误的账号和错误的密码;
  • 注意测试正常登录情况,每次进行测试的时候,需要将上次输入的账号密码清空;
  • 注意测试异常登录情况,每次进行测试的时候,需要将上次弹出来的警告刷新,防止造成代码测试判断异常;

3.注册页面测试ForumRegisterTest

  • 论坛注册页面是否可以正常显示;
  • 测试注册功能正常情况,注册成功会返回登录页面;
  • 测试注册功能异常情况,用户名重复和两次密码不一致,报出警告,停留在注册页面;
  • 注意执行用例之间的逻辑顺序关系。这里先进行注册成功测试用例的执行,再进行注册失败用例的执行。

4论坛列表页面测试ForumListTest

  • 登录状态下,列表页面是否可以正常显示;
  • 未登录状态,列表页面是否可以正常显示;
  • 注意用例之间前后顺序,在未登录状态下,进入列表页面会弹出警告,多次进入会重回登录页面。在单独进行该案例测试的时候,可以检测是否弹出了警告或者回到了登陆页面,用来判断未登录状态下的,列表页面功能是否正常

5.论坛帖子编辑测试ForumEditTest

  • 未登录状态,编辑页面是否可以正常显示,是否弹出警告或者多次进入而回到了登陆页面;
  • 登录状态下,编辑页面是否可以正常显示,是否可以显示出编辑页面独有的元素;
  • 登陆状态下,论坛帖子编辑功能是否正常
  • 测试帖子分类模块,输入标题和内容,进行正常编辑功能测试;
  • 只输入标题不输入内容,只输入内容不输入标题,以及标题和内容全都不输入的这三种情况,来进行异常编辑功能测试;
  • 注意执行用例的前后逻辑关系,是否处于登录状态,这些逻辑对于整个论坛的整套测试来说,非常重要

6.驱动释放DriverQuiteTest

  • 为了方便一整套测试流程的进行,也是为了节省资源,避免在每个类之后都进行驱动释放,这里我们新建了一个驱动释放类。可以放在测试套件中的最后一个,用来释放驱动

7.测试套件runSuite

  • 可以在套件中按照计划的测试流程,来有序的添加测试类
2.测试过程收集的结果:

各个均测试通过,如下:
在这里插入图片描述

每个用例均有现场截图,放在下面代码中的文件夹中
在这里插入图片描述

3.测试的完整代码

ForumTest测试代码

六.分析测试结果并生成报告

1. 测试环境
  • 测试工具: selenium,Junit
  • 语言: Java
  • 依赖:selenium-java,commons-io, junit-jupiter, and junit-platform-suite
  • 操作系统:windows10
  • 浏览器: Chrome
2. 测试过程

我们测试了论坛的主要功能页,包括登录页面,注册页面,论坛列表页,以及论坛帖子发布页面。我们创建了一系列的测试类并以适当的顺序执行,确保测试结果的可靠性和准确性。具体的测试类与用例如下:

  • ForumLoginTest: 检查登录页面的正常显示以及用户的正确和错误登录情况。
  • ForumRegisterTest: 检查注册页面可以正常显示,测试用户注册账号的正常和异常情况。
  • ForumListTest: 验证已注册和未注册用户可正常查看论坛列表。
  • ForumEditTest: 验证已登录和未登录用户的帖子编辑页面的正常显示,测试已登录用户的帖子编辑功能。
  • DriverQuitTest: 释放驱动以释放资源。
  • 由于selenium具有截图功能,我们把每个测试的结果截图保存,以便后续的问题回溯。
3. 测试结果

所有用例均测试通过,如下:
在这里插入图片描述

4. 结论

我们的测试覆盖了主要的功能页面,包括注册,登录,查看列表以及编辑帖子。通过selenium和JUnit的使用,我们能够自动化地和有效地执行这些测试。通过截图,我们可以回溯和了解每个测试的具体情况。所有的测试用例都顺利通过,论坛系统表现正常且稳定。不过,我将继续监控系统,并在必要时进行更多的测试。

七.项目的亮点

1.使用Junit5中提供的注解:避免产生了过多的对象,造成资源和时间的的浪费,提高了自动化的执行效率;
2.只创建了一次驱动对象:避免每个用例重复创建对象而造成时间和资源上的浪费;
3.使用了参数化:保持用例的简洁,提高了代码的可读性;
4.测试套件:降低了测试人员的工作量,通过套件一次执行所有要运行的测试用例‘
5.使用了等待:提高了自动化运行的效率,避免自动化代码因为未及时渲染页面而导致出现的错误,提高了自动化的稳定性;
6.使用了截图功能:便于问题的追溯与解决。

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值