简易博客系统自动化测试

news2024/11/15 7:58:08

🍉作者@ Autumn60

🏄欢迎关注:👍点赞🙌收藏✍️留言

👲微语 :只有镜子和钱包,可以告诉你生活中,大部分的为什么和凭什么


文章目录

目录

文章目录

概述:

测试方法:

 简易博客测试用例:

 功能测试

登录页面

登录失败情况:

登录成功

查看全文功能

 博客列表页

 查看全文

编写博客功能

注销功能

 界面测试 

        登录页面 

        博客列表页     

        博客详情页

兼容性测试

PC

手机

浏览器

测试中出现的BUG


概述:

        本次测试旨在评估简易博客的核心的功能,包括登录界面、博客详情页、编写博客页面、注销等功能。测试环境为Windows 10操作系统,使用Google Chrome浏览器进行测试。


测试方法:

本次测试采用黑盒测试方法,即不考虑系统内部的实现细节,只关注用户在使用过程中是否能够顺利完成任务。测试人员通过模拟真实用户的操作,对聊天室的各项功能进行了测试。

 简易博客测试用例:

Xmind 下载地址 :点击跳转


 1.先创建一个用来初始化的类

 让测试用例来继承此接口

public class InitAndEnd {
    //用来被继承的接口
    static WebDriver webDriver;

    /**
     * BeforeAll第一个执行,用来初始化驱动
     */
    @BeforeAll
    static void SetUp() {
        webDriver = new ChromeDriver();
    }

    /**
     * 因为AfterAll是最后一个执行
     * 当所有测试用例跑完后,用它来执行关闭浏览器
     */
    @AfterAll
    static void TeraDown() {
        webDriver.quit();
    }
}

 功能测试

自动化测试用例:

登录页面

登录失败情况:
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)//设置优先级需要的
public class BlogCases extends InitAndEnd{
    @Order(1)
    @Test
    /**
     * 输入错误的账号和密码,进行登录
     */
    void LoginFailed() throws InterruptedException {
        //1.先打开页面
        webDriver.get("http://152.136.173.212:8080/java_blog_system/blog3.html");
        //2.通过css选择器获取账号和密码输入框并且输入,其次找到登录按钮
        webDriver.findElement(By.cssSelector("#username")).sendKeys("123");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("456");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //当输入错误的密码时会跳转且提示;校验是否跳转并且提示
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/login",cur_url);
        //查看提示是否正确
        String cur_Prompt= webDriver.findElement(By.cssSelector("body > h3")).getText();
        Assertions.assertEquals("登录失败,用户名或密码有误",cur_Prompt);
        sleep(2000);
    }
登录成功
    @Order(2)
    @Test
    /**
     * 输入正确的账号和密码,进行登录
     */
    void LoginSuccess() throws InterruptedException {
        //1.先打开页面,输入账号和密码:lisi,123
        webDriver.get("http://152.136.173.212:8080/java_blog_system/blog3.html");
        //2.通过css选择器获取账号和密码输入框并且输入,其次找到登录按钮
        webDriver.findElement(By.cssSelector("#username")).sendKeys("lisi");
        webDriver.findElement(By.cssSelector("#password")).sendKeys("123");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //3.校验用户信息是否与登录用户相等;
        String admin = webDriver.findElement(By.cssSelector("body > div.container > div.container-left > div > h3")).getText();
        Assertions.assertEquals("lisi",admin);
        sleep(2000);
    }

测试结果:在测试登录功能中 测试了多项指标 整体体验效果较好;

图:

查看全文功能

 博客列表页

/**
     * 博客列表页的验证
     */
    @Order(3)
    @Test
    void BLogList() throws InterruptedException {
        //  校验博客数量是否大于0
        int num = webDriver.findElements(By.cssSelector(".title")).size();
        Assertions.assertNotEquals(0,num);
        //  校验博客列表页url
        String cir_url = webDriver.getCurrentUrl();
        Assertions.assertNotEquals("http://152.136.173.212:8080/java_blog_system/blog1.html",cir_url);
        sleep(3000);
    }

 

 查看全文
 /**
     * 查看全文按钮的校验
     */
    @Order(4)
    @Test
    void BlogList2() throws InterruptedException {
        //  校验-查看全文-按钮,是否跳转
        webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(2) > a")).click();
        String blog_cur = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog2.html?blogId=2",blog_cur);
        //  校验第一篇博客标题是否正确
        String blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > h3")).getText();
        Assertions.assertEquals("我的第二篇博客",blog_title);
        sleep(2000);
    }

测试结果

编写博客功能

测试用例:

 /**
     * 编写博客功能的测试
     */
    @Order(5)
    @Test
    void EditBlog() {
        //1.找编写博客按钮
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(5)")).click();
        //  点击后校验跳转 url 是否正常
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog4.html",cur_url);
        webDriver.findElement(By.cssSelector("#title-input")).sendKeys("自动化-测试");
        webDriver.findElement(By.cssSelector("#editor > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll")).sendKeys("自动化测试");
        webDriver.findElement(By.cssSelector("#submit")).click();
        //  提交博客成功后是否跳转正确
        String url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog1.html",url);

    }

    /**
     * 校验发布的博客标题和时间是否正确
     */
    @Order(6)
    @Test
    void BlogChess() throws InterruptedException {
        webDriver.get("http://152.136.173.212:8080/java_blog_system/blog1.html");
        //  获取博客发布标题    是否正确
        String first_blog_title = webDriver.findElement(By.cssSelector("body > div.container > div.container-right > div:nth-child(1) > div.title")).getText();
        //  获取博客发布时间    是否正确
        String first_blog_time = webDriver.findElement(By.xpath("/html/body/div[2]/div[2]/div[1]/div[2]")).getText();
        Assertions.assertEquals("自动化-测试",first_blog_title);
        if(first_blog_time.contains("2023-7-31")) {
            System.out.println("测试通过");
        } else {
            System.out.println("测试不通过");
        }
        sleep(7000);
    }

测试结果:        此功能正常 

注销功能

测试用例:

  

@Order(7)
    @Test
    void Logout(){
        //  1.编写测试用例
        //  第一步先找元素,找到之后,点击
        webDriver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)")).click();
        //  2.点击之后退出到登录页面,验证登录页面是否相等;
        //  既然是要验证,那么就先要获取
        String cur_url = webDriver.getCurrentUrl();
        Assertions.assertEquals("http://152.136.173.212:8080/java_blog_system/blog3.html",cur_url);
    }

 界面测试 

        登录页面 

测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确 


        博客列表页     

测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确


        博客详情页

 测试结果:简易博客的用户登录界面设计简洁明了,易于操作,位置合理,目的明确


        编写博客页

测试结果 :风格与其他几个页面统一 整体风格较为简洁,布局合理明确,内嵌MD编辑器,编辑器简单,容易上手


兼容性测试

PC

测试结果:在windows,Mac系统中使用网页访问效果一致 功能使用正常 兼容测试通过

手机

        测试结果:在安卓、IOS系统中对于页面布局无法正常展示 无法进行正常的使用 兼容测试不通过

浏览器

测试结果:在Chrom、EDGE内核中的浏览器使用正常 页面布局显示正确 功能使用正常 兼容性测试通过


测试中出现的BUG

       

上述的BUG,后续会修BUG,没有删除博客功能,后续也会更加完善此简易博客系统

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

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

相关文章

自动化测试和手动测试相比,哪个更具优势?

在软件测试行业中,争议最大的话题是“更好的是手动测试还是自动化测试”。尽管自动化测试最常谈论流行语,并且正在慢慢主导测试领域,手动测试的必要性不可忽视。 在本文中,将探讨手动测试和自动化测试之间的更深差异。 什么是手动…

javascript实现几何粒子星空连线背景效果

javascript实现几何粒子星空连线背景效果 <html><head><meta charset"UTF-8"><title>几何星空连线背景</title><script src"./ParticleBackground.js"></script> </head><body><canvas id"…

【计算机视觉】BLIP:统一理解和生成的自举多模态模型

文章目录 一、导读二、背景和动机三、方法3.1 模型架构3.2 预训练目标3.3 BLIP 高效率利用噪声网络数据的方法&#xff1a;CapFilt 四、实验4.1 实验结果4.2 各个下游任务 BLIP 与其他 VLP 模型的对比 一、导读 BLIP 是一种多模态 Transformer 模型&#xff0c;主要针对以往的…

如何选择微信客户管理系统?

为何要给客户打上标签&#xff1f; 主要为企业搭建一个完善的客户体系&#xff0c;将客户资源整合&#xff0c;分层管理并进行针对性营销推广&#xff0c;以实现精准获客转化&#xff0c;简单来说就是更好的分类管理。 客户标签不应该只是作为的客户登记资料&#xff0c;后续每…

一起来探索用ai绘画二次元描述词绘制出来图画吧

在二次元的世界中&#xff0c;画笔是创作的灵魂&#xff0c;绘画作品是艺术家灵魂的抒发。而如今&#xff0c;随着科技的不断进步&#xff0c;我们迎来了一款令人兴奋的技术——ai绘画。这项软件可以帮助我们创造出色彩斑斓、令人惊叹的二次元作品。让你无需具备专业绘画技巧&a…

为什么说国内数字孪生平台gis架构采用Cesium是不错的选择?

Gis作为数字孪生平台开发中重要的一环对数字孪生平台是否好用是一个重要的判定方式&#xff0c;国内数字孪生软件在融合GIS系统方面采取了多种方式&#xff0c;例如Unity或Unreal Engine等游戏引擎&#xff0c;以增强数字孪生的空间感知和空间分析能力&#xff0c;提供更全面、…

银河麒麟V10系统忘记密码解决

1、正常开机等待系统进入GRUB界面&#xff0c;按下e键&#xff0c;如下图&#xff1a; 2、进入编辑文件&#xff1a; 3、 修改ro为rw 然后再行尾添加空格输入&#xff1a;consoletty init/bin/bash (或 single init/bin/bash) 输入完成按&#xff1a;ctrlx或F10进入修改密码阶段…

千元内合板和单板吉他怎么选?SAGA萨伽SF600和VEAZEN费森CLR300怎么样?哪一款更适合初学者入门使用!【吉他评测】

对于预算不多的朋友&#xff0c;在选购前翻阅查询很多资料&#xff0c;吉他材质、桶型和尺寸等等疑问&#xff0c;不知道怎么选&#xff0c;无从下手&#xff0c;还容易遇到烧火棍&#xff0c;在这里介绍这两款VEAZEN费森CLR300&#xff08;单板&#xff09;和SAGA萨伽SF600&am…

<Doc>Windows常见的doc命令

一&#xff1a;管理员身份运行cmd命令&#xff1a; 方式一&#xff1a;搜索框输入cmd&#xff0c;回车&#xff0c;点击&#xff1a;以管理员身份运行 出现如图所示&#xff1a; 方式二&#xff1a;快捷键运行方式&#xff1a; 1.按winr&#xff0c;在运行窗口中输入cmd。 …

视频过大如何压缩变小?文件压缩技巧分享

如何压缩视频是许多视频编辑者、视频上传者经常遇到的问题&#xff0c;如果你也遇到了这个问题&#xff0c;不用担心&#xff0c;下面将就给大家分享几个视频压缩方法&#xff0c;可以帮助大家轻松地压缩视频&#xff0c;同时保持视频的高清晰度和音频质量。 一、嗨格式压缩大师…

HTML+CSS前端 动态响应用户登录界面

day2 知道了动态响应设计的概念&#xff0c;在原先登录界面的基础上进行升级 动态响应 由于前端页面需要在不同大小和分辨率的屏幕上显示&#xff0c;所以需要它具有动态适应的特性。 常用的方式是在 css 文件中用 media 动态查询&#xff0c;同时使用 flex 弹性布局。 例如&a…

C++深度探索

1.变量的实现机制 在声明一个变量时&#xff0c;需要指定它的数据类型和变量名&#xff0c;在源代码中它们都用文字来表示&#xff0c;这种文字形式便于人们阅读&#xff0c;计算机CPU无法直接识别。在C源程序中&#xff0c;之所以要使用变量名&#xff0c;是为了把不同的变量…

电子文件管理系统的核心功能与优势解析

电子文件管理系统是一种通过数字化技术来管理、存储和检索文件的系统。它的核心功能主要包括文件存储、文件检索、权限管理和版本控制等&#xff0c;这些功能给用户带来了许多优势。 文件存储是电子文件管理系统的基础功能之一。该系统可以将各种类型的文件以电子形式进行存储…

unity摄像机跟随玩家

1.下载摄像机包 2.创建摄像机 3.拖拽玩家

虹科案例|如何分析设备故障时间和次数,打破生产瓶颈?

虹科设备绩效管理系统 保障生产设备的稳定性和可靠性 生产设备的稳定性和可靠性是保证企业正常生产的重要条件之一&#xff0c;设备故障的频发严重影响企业的正常生产&#xff0c;那么如何分析设备故障时间和次数&#xff0c;查找设备故障原因&#xff0c;协助企业打破生产瓶…

亚马逊、wish如何构建稳定、高效的自养号测评环境?

我们都知道的跨境几个平台速卖通、shopee、Lazada、亚马逊、wish、煤炉、拼多多Temu、敦煌、eBay、Etsy、Newegg、美客多、Allegro、阿里国际、沃尔玛、OZON、Cdiscount等等如何测评而不会轻易被检测风控呢&#xff1f;需要用到什么样的网络环境&#xff1f;准备哪些资源呢&…

将Android10的SystemUI移到AS

准备工作 写在最前面&#xff0c;迁移过程中必然会出现很多的问题&#xff0c;整个过程可能会花费比较长的时间&#xff0c;所以要做好心理准备&#xff0c;有问题可留言&#xff0c;一起探讨。 需要先在虚拟机上源码整编通过&#xff0c;因为迁移会用到一些编译生成的jar包之类…

Android水波纹按压效果(不按时透明)

按压后的效果&#xff08;左边"Cancle"是不按压的效果&#xff09; button_water_ripple_bg.xml <?xml version"1.0" encoding"utf-8"?> <ripple xmlns:android"http://schemas.android.com/apk/res/android"android:colo…

别再分库分表了,来试试它吧

什么是NewSQL传统SQL的问题 升级服务器硬件数据分片NoSQL 的问题 优点缺点NewSQL 特性NewSQL 的主要特性三种SQL的对比TiDB怎么来的TiDB社区版和企业版TIDB核心特性 水平弹性扩展分布式事务支持金融级高可用实时 HTAP云原生的分布式数据库高度兼容 MySQLOLTP&OLAP&#xff…

nginx入门 - 学习笔记(ing)

一、初识 1、相关概念 1&#xff09;正向代理 一个位于客户端和原始服务器之间的服务器&#xff0c;为了从原始服务器取得内容&#xff0c;客户端向代理发送一个请求并指定目标&#xff0c;然后代理向原始服务器转交请求并将获得内容返回给客户端。 2&#xff09;反向代理…