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

前述

  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. 使用了屏幕截图:方便问题的追溯以及问题的解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/160940.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解惑Android Scoped Storage

原文链接 Android Scoped Storage Puzzles 安卓对于文件存储这块&#xff0c;其实是相当混乱的&#xff0c;在早期的版本中对存储甚至是没有所谓的管理的&#xff0c;有多种方法可以操作文件存储&#xff0c;比如通过Java原生的方式(File/InputStream/OutputStream)&#xff0…

【微服务 SpringCloudAlibaba】实用篇 · Nacos注册中心

微服务&#xff08;5&#xff09; 文章目录 微服务&#xff08;5&#xff09;1. 认识和安装Nacos2. 服务注册到nacos和拉取服务1&#xff09;引入依赖2&#xff09;配置nacos地址3&#xff09;重启 3. 服务分级存储模型3.1 给user-service配置集群3.2 同集群优先的负载均衡 4. …

php74 安装sodium

下载编译安装libsodium wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz tar -zxf libsodium-1.0.18-stable.tar.gz cd libsodium-stable ./configure --without-libsodium make && make check sudo make install下载编译安装…

【Python搜索算法】广度优先搜索(BFS)算法原理详解与应用,示例+代码

目录 1 广度优先搜索 2 应用示例 2.1 迷宫路径搜索 2.2 社交网络中的关系度排序 2.3 查找连通区域 1 广度优先搜索 广度优先搜索&#xff08;Breadth-First Search&#xff0c;BFS&#xff09;是一种图遍历算法&#xff0c;用于系统地遍历或搜索图&#xff08;或树…

Linux Zabbix企业级监控平台+cpolar实现远程访问

文章目录 前言1. Linux 局域网访问Zabbix2. Linux 安装cpolar3. 配置Zabbix公网访问地址4. 公网远程访问Zabbix5. 固定Zabbix公网地址 前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数&#xff0c;保证服务器系…

HTML三叉戟,标签、元素、属性各个的意义是什么?

&#x1f31f;&#x1f31f;&#x1f31f; 专栏详解 &#x1f389; &#x1f389; &#x1f389; 欢迎来到前端开发之旅专栏&#xff01; 不管你是完全小白&#xff0c;还是有一点经验的开发者&#xff0c;在这里你会了解到最简单易懂的语言&#xff0c;与你分享有关前端技术和…

【Java基础面试十二】、说一说你对面向对象的理解

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a; 说一说你对面向对象的理…

thinkphp5.1 获取缓存cache(‘cache_name‘)特别慢,php 7.0 unserialize 特别慢

thinkphp5.1 获取缓存cache(‘cache_name’)特别慢&#xff0c;php 7.0 unserialize 特别慢 场景&#xff1a; 项目中大量使用了缓存&#xff0c;本地运行非常快&#xff0c;二三百毫秒&#xff0c;部署到服务器后 一个表格请求就七八秒&#xff0c;最初猜想是数据库查询慢&am…

消息队列学习分享

消息队列学习 消息队列来解决问题 &#xff08;1&#xff09;异步处理 消息通知、日志管理、更新统计数据等步骤 &#xff08;2&#xff09;流量控制 如何避免过多的请求压垮我们的系统&#xff1f; 比如一个秒杀系统&#xff0c;网关在收到请求后&#xff0c;将请求放入…

Kotlin中的数值类型

在Kotlin中&#xff0c;Byte、Short、Int、Long、Float和Double是基本数据类型&#xff0c;用于表示不同范围和精度的数值。 Byte&#xff08;字节&#xff09;&#xff1a;Byte类型是8位有符号整数类型&#xff0c;取值范围为-128到127。在Kotlin中&#xff0c;可以使用字面值…

vscode工程屏蔽不使用的文件夹或文件的方法

一. 简介 vscode是一款 微软提供的免费的代码编辑软件。 对于 IMX6ULL-ALPHA开发板而言&#xff0c;NXP官方uboot一定会支持不止 IMX6ULL芯片的代码&#xff0c;也不止支持 一种架构&#xff0c;还支持其他芯片或架构的源码文件。 为了方便阅读代码&#xff0c;vscode软件可…

腾讯云我的世界mc服务器多少钱一年?

腾讯云我的世界mc服务器多少钱&#xff1f;95元一年2核2G3M轻量应用服务器、2核4G5M带宽优惠价218元一年、4核8G12M带宽轻量服务器446元一年&#xff0c;云服务器CVM标准型S5实例2核2G优惠价280元一年、2核4G配置服务器748元一年&#xff0c;腾讯云百科txybk.com分享腾讯云我的…

[LeetCode周赛复盘] 第 115 场双周赛20231014

[LeetCode周赛复盘] 第 115 场双周赛20231014 一、本周周赛总结100095. 上一个遍历的整数1. 题目描述2. 思路分析3. 代码实现 100078. 最长相邻不相等子序列 I1. 题目描述2. 思路分析3. 代码实现 100077. 最长相邻不相等子序列 II1. 题目描述2. 思路分析3. 代码实现 100029. 和…

【数据结构】排序--选择排序(堆排序)

目录 一 堆排序 二 直接选择排序 一 堆排序 堆排序(Heapsort)是指利用堆积树&#xff08;堆&#xff09;这种数据结构所设计的一种排序算法&#xff0c;它是选择排序的一种。它是 通过堆来进行选择数据。 需要注意的是排升序要建大堆&#xff0c;排降序建小堆。 直接选择排…

HEIC转jpg

下载imagemagick,安装 https://imagemagick.org/archive/binaries/ImageMagick-7.1.1-20-Q16-HDRI-x64-dll.exe cmd D:\soft\ImageMagick-7.1.1-Q16-HDRI\magick.exe "C:\Users\Gamer\Downloads\iCloud 照片1\iCloud 照片\IMG_3889.HEIC" IMG_3889.jpg

WebSocket: 实时通信的新维度

介绍&#xff1a; 在现代Web应用程序中&#xff0c;实时通信对于提供即时更新和交互性至关重要。传统的HTTP协议虽然适合请求-响应模式&#xff0c;但对于需要频繁数据交换的场景并不理想。而WebSocket技术的出现填补了这个空白&#xff0c;为Web开发者们带来了一种高效、实时的…

Elucidating the Design Space of Diffusion-Based Generative Models 阅读笔记

文章用一种新的设计框架统一diffusion-based model&#xff0c;并使用模块化&#xff08;modular&#xff09;的思想&#xff0c;分别从采样、训练、score network设计三个方面分析和改进diffusion-based model。 之前的工作1已经把diffusion-based model统一到SDE或者ODE框架…

10-k8s-身份认证与鉴权

文章目录 一、ServiceAccount介绍二、ServiceAccount相关的资源对象三、dashboard空间示例 一、ServiceAccount介绍 ServiceAccount&#xff08;服务账户&#xff09;概念介绍 1&#xff09;ServiceAccount是Kubernetes集群中的一种资源对象&#xff0c;用于为Pod或其他资源提供…

JavaScript基础知识14——运算符:逻辑运算符,运算符优先级

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 一、逻辑运算符 1、概念&#xff1a;在程序中用来连接多个比较条件时候使用的符号。 2、应用场景&#xff1a;在程序中用来连接多个比较条件时候使用。 3、逻辑运算符符号&#xff1a; 4、代码演示逻辑运算符的使用…

手机流量卡经营商城小程序的作用是什么

流量卡成为很多用户的选择&#xff0c;同时市场中也出现了不少流量卡卖家&#xff0c;基于多种形式开展生意。然而虽然市场需求度高&#xff0c;但流量卡经营难题也不少。 流量卡客户具有高忠诚度&#xff0c;然而入驻线上第三方平台&#xff0c;客户属于平台&#xff0c;无法…