当前位置: 首页 > news >正文

“闻声“自动化测试报告

"闻声"自动化测试

文章目录

    • "闻声"自动化测试
  • 一.web测试用例
  • 二.自动化测试脚本编写
    • 2.1 公共类AutoTestUtils
    • 2.2 "闻声"未登录测试——MPUnLoginTest
    • 2.4 "闻声"登录页测试——MPLoginTest
    • 2.5 "闻声"歌曲列表页测试——MPListTest
    • 2.6 "闻声"喜欢列表页测试——MPLikeListTest
    • 2.7 添加歌曲页测试——MPUploadMusicTest
    • 详细代码
  • 三.自动化测试脚本测试结果
  • 四.自动化测试脚本总结


一.web测试用例

根据页面分类书写对应页面的测试类,然后对主要功能进行测试。
在这里插入图片描述

二.自动化测试脚本编写

  1. 根据测试用例图进行测试用例脚本的编写:每个页面一个测试类,然后再对各个测试类中进行测试用例的编写。
  2. 公共属性单独放一个类(AutotestUtils),减少代码的冗余。
  3. 添加隐式等待,为了确保页面正确加载显示。
  4. 将浏览器设置为允许访问所有的链接(–remote-allow-origins=*)

需要的依赖:

          <dependency>
            <!-- junit5 新的编程和扩展模型 -->
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.8.2</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <!-- junit5 参数化依赖 -->
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <version>5.8.1</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>5.8.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.0.0</version>
        </dependency>
        <!--  File相关依赖   -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- SLF4J API -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.36</version>
        </dependency>
        <!-- Logback 实现 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.11</version>
        </dependency>

        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-suite</artifactId>
            <version>1.8.2</version>
            <scope>test</scope>
        </dependency>
        

文件结构:
在这里插入图片描述

2.1 公共类AutoTestUtils

  1. 创建驱动
  • 设置允许访问所有的连接
  • 设置浏览器加载策略为 PageLoadStrategy.EAGER
  • 设置⽆头模式
  • 创建隐式等待
  1. 获取屏幕截图

注意:

  • 保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试
    类的类名,方便出现问题时进行检查。
    例如: image 文件下的 " 2024-10-15/tests.ListPageTest-listPageRight-17-42-57-24.png "

2.2 "闻声"未登录测试——MPUnLoginTest

  1. 创建驱动并进入闻声登录页
  2. 检查未登录情况下进入闻声列表页的拦截是否工作正常
  3. 检查未登录情况下进入闻声喜欢的歌曲列表页的拦截是否工作正常
  4. 检查未登录情况下进入添加歌曲页的拦截是否工作正常

注意:

  • 注意执行顺序

2.4 "闻声"登录页测试——MPLoginTest

  1. 创建驱动并进入"闻声"登录页
  2. 检查"闻声"登录页面是否加载成功
  3. 检查登录正常:使用两个存在的用户名进行登录
  4. 检查登录异常:用户名不存在、用户名格式错误、密码格式错误、密码不存在和密码错误的情况

注意:

  • 登录正常输入内容时需要先刷新页面来清空文本框的内容,注册异常每个用例测试完后都需要刷新登录界面,以便后续测试能够成功进行
  • 注意执行顺序

2.5 "闻声"歌曲列表页测试——MPListTest

  1. 创建驱动并登录成功后进入"闻声"列表页
  2. 检查博客列表页面是否加载成功
  3. 检查喜欢模块是否工作正常
    • 点击喜欢将歌曲(未添加过)添加到喜欢列表中是否成功
    • 点击"喜欢"添加喜欢列表中有的歌曲是否有提示
  4. 检查删除模块是否工作正常
    • 选择单个歌曲点击"删除"是否正常
    • 选择多个歌曲点击"删除选中"是否正常
    • 将喜欢列表的存在歌在歌曲列表中删除是否正常(喜欢列表的歌同时被删除)
  5. 检查添加歌曲模块是否页面正常
  6. 检查搜索歌曲模块是否工作正常
    • 正常搜索 :搜索歌曲列表中第一个歌名中存在的词
    • 搜索异常:搜索歌曲列表中所有歌名中不存在的词

注意:

  • 测试开始登录的用户为“lisi”以便后续测试
  • 搜索模块测试完后都需要重新刷新歌曲列表页面,以便后续测试能够成功进行
  • 搜索歌曲模块中执行搜索成功测试用例时搜索结束后检查判断搜索结果是否正确时需要判断搜索的内容是中文还是英文(英文需要进行忽略大小写处理)
  • 注意执行顺序

2.6 "闻声"喜欢列表页测试——MPLikeListTest

  1. 创建驱动并登录成功后点击“喜欢列表”进入喜欢列表页
  2. 检查喜欢列表页面是否加载成功
  3. 检查回到首页模块是否工作正常
  4. 检查移除喜欢的歌曲模块是否工作正常
  5. 检查搜索喜欢的歌曲模块是否工作正常
    • 正常搜索 :搜索喜欢歌曲列表中第一个歌名中存在的词
    • 搜索异常:搜索喜欢歌曲列表中所有歌名中不存在的词

注意:

  • 搜索喜欢的歌曲模块中执行搜索成功测试用例时搜索结束后检查判断搜索结果是否正确时需要判断搜索的内容是中文还是英文(英文需要进行忽略大小写处理)
  • 回到首页测试结束后需要返回喜欢列表页以进行后续测试
  • 注意执行顺序

2.7 添加歌曲页测试——MPUploadMusicTest

  1. 创建驱动并登录成功后点击“添加歌曲”进入喜欢列表页
  2. 检查添加歌曲页面是否加载成功
  3. 检查添加歌曲成功是否能够正常显示
  4. 检查添加已存在歌曲是否有提示信息
  5. 检查添加歌曲时缺失信息测试
    • 缺少歌手名信息时提示是否正确
    • 缺少mp3文件时是否提示正确

注意:

  • 添加歌曲成功和添加歌曲失败测试结束后都回到添加歌曲页面
  • 添加歌曲成功中的歌手名使用的是"upLoadTests:" + 生成随机的字符
  • 使用sendKeys()传递文件在本机的地址实现上传文件
  • 注意执行顺序
  • 最后需要关闭驱动

详细代码

自动化测试代码

三.自动化测试脚本测试结果

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

四.自动化测试脚本总结

  1. junit5框架编写测试用例类时注意类名需要以Test结尾(或者使用使用 surefire 插件自定义命名规则)
  2. 测试用例的执行顺序问题很关键,如果顺序不正确就会导致测试出错。
  3. 使用@TestMethodOrder注解实现指定排序时需要配合@Order注解使用
  4. 注意屏幕截图保存的方式:动态时间戳并进行时间格式化。
    以文件夹的方式进行保存。
  5. 在检查页面是否成功加载时,对于页面的检查一定要到位。如检查元素是否存在确保页面的正确性以及某些关键功能是否能够正常工作。
  6. 驱动关闭的位置要注意,只有当最后一个用例结束之后才能关闭驱动。
  7. 为了避免遗忘驱动释放的位置(某一个测试结束后释放),可以单独写一个类来存放驱动释放,然后直接放到套件测试类(使用 JUnit Platform Suite实现)的最后就行。
  8. 可以采用无头模式来创建驱动。
  9. 当多用户同时在同一设备的相同浏览器登录时,会出现用户数据异常的情况,该情况需要关注,后期处理。
  10. 可以适当关注用例执行时间,如果时间过长就需要考虑是否是测试用例的问题还是程序存在有性能问题。(需要使用JMeter进行进一步验证)
  11. 注意:一定要关注执行顺序!否则可能会出现错误。

相关文章:

  • Linux 网络与常用操作(适合开发/运维/网络工程师)
  • java 如何批量从文件中读取50w数据批量插入数据库,需要用多线程,并且防止jvm内存溢出
  • 八、敏捷开发工具:自动化测试工具
  • gitee SSH 公钥设置教程
  • Jenkins 调用 Shell 脚本,在Shell脚本中调用 Unity 类方法,传递参数给Unity
  • SQLMesh 系列教程5- 详解SQL模型
  • spring security认证和授权流程
  • 对比机器学习揭示了跨物种共享与特异性的脑功能结构|文献速递-医学影像人工智能进展
  • 自动化测试平台ATECLOUD全面解析
  • “文化平权”不再遥远?昆仑万维开源首个面向 AI 短剧创作视频生成模型SkyReels-V1
  • vlanif接口转发vlan
  • 直流稳压电源工作原理_带反馈
  • JAVA过滤器(学习自用)
  • [算法学习笔记]1. 枚举与暴力
  • DeepSeek V3和R1
  • ComfyUI创建自定义节点
  • 分析算法时间复杂度基本方法和步骤
  • 网络安全的态势如何以及如何解决?
  • 【Spring详解一】Spring整体架构和环境搭建
  • 防御保护选路练习
  • 夜读丨最美的风景,在亲人的目光里
  • 杨国荣︱《老子智慧八十一讲》及其他
  • “五一”假期国内出游3.14亿人次,同比增长6.4%
  • 视觉周刊|劳动开创未来
  • 超越关税陷阱,不遗余力塑造产业的长期竞争力
  • 国铁集团:5月4日全国铁路预计发送旅客2040万人次