个人博客自动化测试

news2024/12/24 8:55:36

BlogWebAutoTest

  • 前言
  • 一、脑图
  • 二、编写代码
  • 三、代码测试结果

前言

1.针对个人博客进行测试,个人博客主要有四个页面构成:登录页、列表页、详情页和编辑页,主要功能包括:登录、写博客、删除博客、修改博客、查看详情以及注销等功能。对于个人博客主要是针对功能进行测试。
2.个人博客地址:个人博客注册页面
3.自动化测试一般步骤:
1)使用脑图编写Web自动测试用例
2)创建自动化项目,根据用例来实现脚本

一、脑图

在这里插入图片描述

二、编写代码

  • 根据脑图进行测试用例的编写:每个页面一个测试类,然后在各个测试类中进行代码测试用例的编写。
  • 注意代码复用,避免代码冗余
  • 使用测试套件便于运行和修改
  • 创建启动以及现场截图保存测试结果
  • 隐式添加等待,确保页面能正常加载显示

1.添加相关依赖pom.xml

<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>
            <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>5.9.1</version>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>5.9.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-params -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>5.9.1</version>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-suite</artifactId>
                <version>1.9.1</version>
                <scope>test</scope>
            </dependency>

            <!-- https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite -->
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-suite</artifactId>
                <version>1.9.1</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-engine -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>5.9.1</version>
                <scope>test</scope>
            </dependency>
        </dependencies>

2.以下为测试类及公共类
在这里插入图片描述
1)公共类AutoTestUtils
创建驱动、保存现场截图

注意:在保存现场截图的时候命名是按时间来进行文件夹的划分,然后图片的名称要体现出测试类的类名,方便进行问题的追溯。
注意文件名的动态获取,注意时间格式的设置。
注意:可以在创建驱动的时候修改默认的有头模式or无头模式

2)登录页面测试BlogLoginTest
① 创建驱动,并打开页面
② 测试页面是否正常打开
③ 测试正常登录:多参数测试
④ 测试异常登录:用户名/密码错误的情况(此处不测null)
⑤ 注意测试的顺序,使用Order注解指定,否则可能会因为执行顺序不对导致测试失败
⑥ 注意清空内容后才能再次输入用户名以及密码

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

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

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

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

3.代码参考
个人博客自动化测试代码参考

三、代码测试结果

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java面向对象——继承以及super关键字

继承的概念 1. 被继承的类称为父类&#xff08;超类&#xff09;&#xff0c;继承父类的类都称为子类&#xff08;派生类&#xff09; 2. 继承是指一个对象直接使用另一个对象的属性和方法&#xff0c;但是能继承非私有的属性和方法&#xff1b;(1) 构造方法不能被继承。(2) 但…

关于查看处理端口号和进程[linux]

查看端口号 lsof -i:端口号如果-bash: lsof: 未找到命令那我们可以执行yum install lsof 删除端口号进程 一般我们都会使用kill命令 kill -l#列出所有可用信号1 (HUP)&#xff1a;重新加载进程。9 (KILL)&#xff1a;杀死一个进程。15 (TERM)&#xff1a;正常停止一个进程。 …

代码随想录算法训练营day31 | 贪心问题:455. 分发饼干,53. 最大子数组和

目录 455. 分发饼干 ​​​​​​376. 摆动序列 53. 最大子数组和 455. 分发饼干 类型&#xff1a;贪心 难度&#xff1a;medium 思路&#xff1a; 记得先排序&#xff0c;用饼干去满足小孩。 代码&#xff1a; class Solution {public int findContentChildren(int[] g…

从零开始 Spring Cloud 12:Sentinel

从零开始 Spring Cloud 12&#xff1a;Sentinel 1.初识 Sentinel 1.1雪崩问题 1.1.1什么是雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。 如图&#xff0c;如果服务提供者I发生了故障&#xff0c;当前的应用的部分…

YOLOv5改进系列(22)——替换主干网络之MobileViTv1(一种轻量级的、通用的移动设备 ViT)

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

Linux 一个简单的多线程程序

一个简单的多线程程序 编写一个简单的多线程程序 代码如下&#xff1a; 运行结果&#xff1a; 出现这样的运行结果是因为主函数直接就运行完了&#xff0c;直接5次循环就结束了&#xff0c;线程函数还没有来得及执行&#xff0c;整个进程就已经结束了。因为主函数退出之后系统…

MySQL卸载-Linux版

MySQL卸载-Linux版 停止MySQL服务 systemctl stop mysqld 查询MySQL的安装文件 rpm -qa | grep -i mysql 卸载上述查询出来的所有的MySQL安装包 rpm -e mysql-community-client-plugins-8.0.26-1.el7.x86_64 --nodeps ​ rpm -e mysql-community-server-8.0.26-1.el7.x86_64 -…

磁盘满了怎么办?实用小技巧,做不做测试都非常好用!

♥ 前 言 工作了多年的测试&#xff0c;应该多少都会遇到磁盘空间不够的情况&#xff0c;比方你现在正在用的测试环境&#xff0c;因为要测试&#xff0c;所以&#xff0c;项目一直启动&#xff0c;那么就会一直在写日志&#xff0c;如果不定期清理日志&#xff0c;随着时间…

第一百三十三天学习记录:数据结构与算法基础:串、数组和广义表(串Ⅱ)(王卓教学视频)

注&#xff1a;在之前学习C语言的时候&#xff0c;了解过这一块。其中对KMP算法进行了自学&#xff0c;前面的学习记录也有提到过。这一次根据视频教学再系统性的学习学习一次。 串的模式匹配算法 KMP算法

漏洞指北-VulFocus靶场专栏-初级01

漏洞指北-VulFocus靶场专栏-初级 初级001 &#x1f338;海洋CMS代码执行&#xff08;CNVD-2020-22721&#x1f338;step1&#xff1a;进入后台页面 账号密码&#xff1a;admin amdinstep2&#xff1a;点击系统&#xff0c;点击后台IP安全设置,关闭step3 启动burpsuite&#xff…

Yolo算法与ChatGPT互通,这功能是真的强大!

点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID&#xff5c;计算机视觉研究院 学习群&#xff5c;扫码在主页获取加入方式 参考地址&#xff1a;https://github.com/ultralytics/ultralytics 计算机视觉研究院专栏 Column of Computer Vision Institute 现…

深入浅出解析Stable Diffusion XL完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文&#xff0c;并对具备划时代意义的模型&论文进行全方位系统的解析&#xff0c;比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

计网第三章(数据链路层)(三)

一、点对点协议PPP 在第一篇里有提到数据链路层的信道分为两种&#xff1a;点对点信道和广播信道。 PPP协议就属于点对点信道上的协议。 如果对前面数据链路层的三个基本问题了解的比较透彻&#xff0c;那么这一块很多东西都很好理解。 从考试的角度来讲&#xff0c;PPP协议…

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现BO-SVM贝叶斯优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序设计…

RabbitMq-2安装与配置

Rabbitmq的安装 1.上传资源 注意&#xff1a;rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…

OpenCV笔记之solvePnP函数和calibrateCamera函数对比

OpenCV笔记之solvePnP函数和calibrateCamera函数对比 文章目录 OpenCV笔记之solvePnP函数和calibrateCamera函数对比1.cv::solvePnP2.cv::solvePnP函数的用途和工作原理3.cv::solvePnP背后的数学方程式4.cv::SOLVEPNP_ITERATIVE、cv::SOLVEPNP_EPNP、cv::SOLVEPNP_P3P5.一个固定…

AI项目二:基于mediapipe的虚拟绘画

若该文为原创文章&#xff0c;转载请注明原文出处。 一、项目介绍 随着人工智能时代的到来&#xff0c;许多技术得到了空前的发展&#xff0c;让人们更加认识到了线上虚拟技术的强大。 通过mediapipe识别手的关键点&#xff0c;检测中指&#xff0c;实现隔空画画的操作。 通…

Linux/Ubuntu 的日常升级和安全更新,如何操作?

我安装的是Ubuntu 20.04.6 LTS的Windows上Linux子系统版本&#xff0c;启动完成后显示&#xff1a; Welcome to Ubuntu 20.04.6 LTS (GNU/Linux 5.15.90.4-microsoft-standard-WSL2 x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.c…

ros小车实现slam_gmapping建图

ros小车2d建图&#xff0c;如果有雷达&#xff0c;那么使用gmapping方式建图&#xff0c;其实就一个命令&#xff0c;启动建图程序&#xff0c;它默认会启动小车&#xff0c;之后&#xff0c;我们通过手柄或者键盘控制小车就可以有地图产生&#xff0c;然后就需要保存地图&…

【高级IO】- 五种 IO 模型 | 多路转接 - select

IO的基本概念 I/O&#xff08;Input / output&#xff09;就是输入和输出&#xff0c;在冯诺依曼体系中&#xff0c;将数据从输入设备拷贝到内存叫做输入&#xff0c;将数据从内存拷贝到输出设备叫做输出。 对文件进行的读写操作本质就是一种IO&#xff0c;文件IO对应的外设就…