搜索引擎测试报告

news2025/2/26 0:37:01

文章目录

    • 一、项目背景
    • 二、项目功能
    • 三、测试目的
    • 四、测试环境
    • 五、测试计划
      • 1、功能测试
      • 2、自动化测试
    • 六、测试结果

一、项目背景

java官方文档是我们在学习java语言中不可或缺的权威资料。相比于各种网站的Java资料,官方文档无论是语言表达还是组织方式都要更加全面和准确。因为没有人比作者更加了解自己的作品,官方文档一定是最了解自己的作品的。通过查阅java文档,我们可以准确而全面地了解到自己需要了解的知识点。但目前Java官方文档只能通过滚动条寻找关键字进行点击的方式来查询,自然就存在着查询低效的问题。为了解决这一问题,也为了能够加深对java知识的应用,尝试构建了一个针对java文档的站内搜索引擎,可以有效提高查询效率。

二、项目功能

基于java文档实现站内搜索,用户在输入框输入查询词,点击搜索按钮即显示与用户查询词相关的java文档结果。每条结果包括标题、描述、展示URL三部分,通过点击标题即可跳转到java文档的在线页面。

三、测试目的

尽可能地发现程序中存在的错误,以便可以针对错误进行修正,提高程序的可靠性,满足用户的使用需求,提高用户的使用体验。

四、测试环境

  • Web端
    谷歌浏览器,Windows操作系统,edge浏览器;

  • 移动端
    安卓系统;

五、测试计划

首先对程序进行基本测试用例的编写:
在这里插入图片描述

1、功能测试

针对程序实现的功能进行测试,确保程序功能满足需求并正常运行;
在这里插入图片描述
执行测试的操作步骤及测试结果:

  1. 打开edge浏览器,在地址栏输入Java文档搜索的地址,回车;
  2. 在Java文档搜索页面的输入框输入不同内容;
  • 输入空格;
    在这里插入图片描述
    预期结果:无任何结果返回;
    实际结果:无任何结果返回;

  • 输入中文
    在这里插入图片描述
    预期结果:搜索成功,但无结果返回,提示搜索结果为0;
    实际结果:无结果返回,提示搜索结果为0;

  • 输入英文
    在这里插入图片描述
    预期结果:搜索成功,返回与查询词相关的结果;
    实际结果:搜索成功,并返回了与查询词相关的结果;

  • 输入数字

在这里插入图片描述
预期结果:搜索成功,返回包含数字的搜索结果;
实际结果:搜索成功,返回了包含数字的搜索结果;

  • 输入多个关键词,使用空格或逗号分隔;
    在这里插入图片描述

预期结果:搜索成功,返回与任一关键词相关的结果;
实际结果:搜索成功,返回了与任一关键词相关的结果;

  • 输入数字和英文混合的查询词;

在这里插入图片描述

预期结果:搜索成功,返回与数字或英文相关的结果;
实际结果:搜索成功,返回了与数字或英文相关的结果;

  • 输入查询词后点击搜索结果的标题查看是否正常跳转;

预期结果:跳转成功,跳转到在线文档的页面;
实际结果:跳转成功,跳转到了在线文档的页面;

  • 搜索结果页是否有搜索结果条数的显示;
    在这里插入图片描述

预期结果:显示搜索结果条数;
实际结果:显示搜索结果条数;

  • 搜索结果中用户的查询词是否高亮显示;

预期结果:高亮显示;
实际结果:高亮显示;

2、自动化测试

对程序编写自动化测试用例,编写自动化测试脚本,使用selenium进行Web自动化测试;
在这里插入图片描述

  • 测试页面是否可以正常打开
public static EdgeDriver driver=createDriver();
    //进行后续测试的基础:1.有驱动对象 2.访问页面的URL
    @BeforeAll
    static void baseControl(){

        driver.get("http://101.43.252.120:8080/doc_search/index.html");
    }
    //1.检查搜索页面打开是否正常,必要的页面元素是否存在
    @Test
    void searchPageRight(){
        //检查搜索框是否存在
        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]"));
        //检查搜索按钮是否存在
        driver.findElement(By.xpath("//*[@id=\"search-btn\"]"));
    }

    //用来释放驱动
    @Test
    @AfterAll
    static void driverQuit(){
        driver.quit();
    }

程序可以正常通过:
在这里插入图片描述

  • 测试正常输入的情况
    1.输入英文关键字
@Test
    void normalInput(){
        //找到搜索框,输入英文array
        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]")).sendKeys("array");
        //找到搜索按钮并点击
        driver.findElement(By.cssSelector("#search-btn")).click();
        //进行强制等待,防止由于页面渲染较慢引起程序误报
        Thread.sleep(3000);
        //校验是否搜索成功
        driver.findElement(By.xpath("/html/body/div/div[2]/div[1]"));
    }

执行通过:
在这里插入图片描述
2.输入中文关键字

//2.测试正常输入的情况
    @Test
    void normalInput(){
        //找到搜索框,输入中文关键字“数组”
        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]")).sendKeys("数组");

        //找到搜索按钮并点击
        driver.findElement(By.cssSelector("#search-btn")).click();
        //进行强制等待,防止由于页面渲染较慢引起程序误报
        Thread.sleep(3000);
        //校验是否搜索成功
        driver.findElement(By.xpath("/html/body/div/div[2]/div[1]"));

    }

执行通过;

3.输入多个关键字

//2.测试正常输入的情况
    @Test
    void normalInput(){
        //找到搜索框,输入多个关键字:static,12

        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]")).sendKeys("static,12");

        //找到搜索按钮并点击
        driver.findElement(By.cssSelector("#search-btn")).click();
		//进行强制等待,防止由于页面渲染较慢引起程序误报
        Thread.sleep(3000);
        //校验是否搜索成功
        driver.findElement(By.xpath("/html/body/div/div[2]/div[1]"));

    }

执行通过;

  • 搜索结果测试

1.点击标题可以进行跳转到在线文档的页面

 @Test
    void searchResult() throws InterruptedException {
        
        //找到搜索框,输入查询词
        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]")).sendKeys("static");
        //点击搜索按钮
        driver.findElement(By.cssSelector("#search-btn")).click();
        Thread.sleep(3000);
        //找到搜索结果的标题并进行点击
        driver.findElement(By.cssSelector("body > div > div.result > div:nth-child(2) > a")).click();

        //获取当前页面的句柄
        String curHandle=driver.getWindowHandle();
        Set<String> handles=driver.getWindowHandles();
        for (String handle:handles){
            if (handle!=curHandle){
                driver.switchTo().window(handle);
            }
        }
        Thread.sleep(3000);
        //查找在线文档页面的元素验证跳转成功
        driver.findElement(By.cssSelector("#allclasses_navbar_top > li > a"));
    }

执行成功:
在这里插入图片描述
2.搜索结果页的描述和URL展示正常;

@Test
    void resultDescUrl() throws InterruptedException {
        //找到搜索框,输入查询词
        driver.findElement(By.cssSelector("body > div > div.header > input[type=text]")).sendKeys("static");
        //点击搜索按钮
        driver.findElement(By.cssSelector("#search-btn")).click();
        Thread.sleep(3000);
        //查找描述相关的元素
        driver.findElement(By.cssSelector("body > div > div.result > div:nth-child(2) > div.desc"));
        Thread.sleep(3000);

        driver.findElement(By.cssSelector("body > div > div.result > div:nth-child(2) > div.url"));
    }

执行成功:
在这里插入图片描述

六、测试结果

程序的功能性角度的的测试全部通过,达到了该项目的基本需求。搜索模块功能完整,没有严重缺陷。易用性测试基本满足用户需求,新手使用友好,页面简洁明了;兼容性测试中,PC端使用谷歌浏览器、edge浏览器进行了测试,无明显缺陷;移动端使用安卓系统进行了测试,发现存在界面显示不完全,背景覆盖不完全的问题。

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

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

相关文章

ThingsBoard开源物联网平台智慧农业实例快速部署教程(Ubuntu、CentOS适用)

ThingsBoard部署教程文档 文章目录ThingsBoard部署教程文档1. JDK环境安装2. 安装thingsBoard2.1 ThingsBoard软件包安装2.2 PostgreSQL安装2.3 PostgreSQL初始化配置3. 修改ThingsBord的配置4. 运行安装脚本测试5. 访问测试6. 导入一个仪表盘库6.1 导出仪表盘并导入自己的项目…

Spring —— Spring Boot 配置文件

JavaEE传送门JavaEE Spring —— Bean 作用域和生命周期 Spring —— Spring Boot 创建和使用 目录Spring Boot 配置文件Spring Boot 配置文件格式properties配置文件properties 基本语法properties 缺点yml 配置文件yml 基本语法yml 配置不同类型数据及 nullyml 配置对象yml…

【SQL Server】数据库开发指南(一)数据库设计

文章目录一、数据库设计的必要性二、什么是数据库设计三、数据库设计的重要性五、数据模型5.1 实体-关系&#xff08;E-R&#xff09;数据模型5.2 实体&#xff08;Entity&#xff09;5.3 属性&#xff08;Attribute&#xff09;5.5 关系&#xff08;Relationship&#xff09;六…

windows搭建ftp及原理(小白向)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录环境一、实验步骤1.1安装ftp二、ftp实验引发的思考1.简单阐述ftp的原理2.ftp建立的流程总结环境 windwos任意环境不需要server windows10 提示&#xff1a;以下是本…

〖Python网络爬虫实战⑤〗- Session和Cookie介绍

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付费…

Linux的诞生过程

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…

走近阿里Apsara Clouder云计算的蓝图

文章目录一&#xff1a;"什么是Apsara Clouder 云计算"二&#xff1a;"Apsara Clouder 云计算"厉害在哪里&#xff1f;三&#xff1a;"Apsara Clouder 云计算"认证一&#xff1a;“什么是Apsara Clouder 云计算” &#x1f496;&#x1f496; A…

【云原生Docker】09-Docker网络详解

【云原生|Docker】09-Docker网络详解 文章目录【云原生|Docker】09-Docker网络详解前言网络详解bridge网络基于bridge网络的容器访问外部网络外部网络访问基于bridge网络的容器host网络none网络container网络自定义网络自定义bridge网络容器的互通两个相同的bridge网络容器互通…

多层多输入的CNN-LSTM时间序列回归预测(卷积神经网络-长短期记忆网络)——附代码

目录 摘要&#xff1a; 卷积神经网络(CNN)的介绍&#xff1a; 长短期记忆网络&#xff08;LSTM&#xff09;的介绍&#xff1a; CNN-LSTM&#xff1a; Matlab代码运行结果&#xff1a; 本文Matlab代码数据分享&#xff1a; 摘要&#xff1a; 本文使用CNN-LSTM混合神经网…

spring快速连接mybatis

spring快速连接mybatisspring整合mybatis1.maven依赖配置2.数据库sql设计3.数据库连接配置4.实体类设计5.Dao层开发6.SqlMapConfig.xml7.运行程序进行crudspring整合mybatis 1.maven依赖配置 配置pom.xml如下 <?xml version"1.0" encoding"UTF-8"?…

【机器学习】P6 逻辑回归的 损失函数 以及 梯度下降

逻辑回归的损失函数 以及 梯度下降逻辑回归的损失函数逻辑回归的 Loss逻辑回归的 Cost逻辑回归的梯度下降总公式推导公式梯度下降动画效果展示Reference逻辑回归的损失函数 逻辑回归的 Loss 逻辑回归是一种用于二分类问题的监督学习算法&#xff0c;其损失函数采用交叉熵&…

ChatGPT研究报告:AIGC带来新一轮范式转移

本文约4000字&#xff0c;目标是快速建立AIGC知识体系&#xff0c;含有大量的计算专业名词&#xff0c;建议阅读同时扩展搜索。 一、行业现状 1、概念界定 区别于PGC与UGC不同的&#xff0c;AIGC是利用人工智能技术自动生成内容的新型生产方式。 2、数据模态 按照模态区分&a…

【计算机网络-网络层】路由选择协议

文章目录1 路由器与路由选择1.1 路由器1.2 路由表&#xff08;RIB 表&#xff09;1.2.1 路由表项1.2.2 动态路由1.2.3 静态路由1.2.4 直连路由1.3 转发表&#xff08;FIB 表&#xff09;1.4 自治系统 AS2 内部网关协议 IGP——路由信息协议 RIP2.1 RIP 规定2.2 RIP 的工作原理2…

GPT系列论文

目录 GPT 无监督预训练 有监督微调 如何将模型应用于下游任务&#xff1f; 试验结果 GPT-2 摘要 Introduction Approach 数据集&模型 试验结果 GPT-3 核心点 名词解释 few-shot做法图示 数据集 GPT 由无监督预训练有监督微调组成 无监督预训练 有监督微调 …

ICLR 2023 | 达摩院开源轻量人脸检测DamoFD

团队模型、论文、博文、直播合集&#xff0c;点击此处浏览 一、论文 本文介绍我们被机器学习顶级国际会议ICLR 2023接收的论文 “DamoFD: Digging into Backbone Design on Face Detection" 论文链接&#xff1a;https://openreview.net/pdf?idNkJOhtNKX91 开源代码&a…

云原生_kubernetes(k8s)介绍

目录 一、应用部署方式演变 二、k8s介绍 三、k8s的组件 四、k8s中的概念 五、k8s资源管理方式 1、命令式对象管理 2、命令式对象配置 3、声明式对象配置 一、应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 1、物理机部署&#…

Vue 核心(一)

文章目录Vue 核心&#xff08;一&#xff09;一、 Vue 简介1、 概述2、 学前准备3、 第一个程序二、 模板语法三、 数据绑定四、 MVVM 模型五、 数据代理1、 defineProperty2、 理解数据代理3、 Vue中的数据代理六、 事件处理1、 事件的基本使用2、 键盘事件七、 计算属性与监视…

难以置信,已经有人用 ChatGPT 做 Excel 报表了?

要问2023年初科技领域什么最火&#xff0c;那自然是 ChatGPT。 ChatGPT 由人工智能研究实验室 OpenAI 于2022年11月30日推出。上线短短5天&#xff0c;用户数量已突破100万&#xff0c;在今年2月份&#xff0c;用户数量已经突破1亿。 ChatGPT 是一个超级智能聊天机器人&#…

GitLab CI/CD 新书发布,助企业降本增效

前言 大家好&#xff0c;我是CSDN的拿我格子衫来&#xff0c; 昨天我的第一本书《GitLab CI/CD 从入门到实战》上架啦&#xff0c;这是业内第一本详细讲解GitLab CI/CD的书籍。 历经无数个日夜&#xff0c;最终开花结果。感触良多&#xff0c;今天就借这篇文章来谈一谈这本书的…

贯穿设计模式第一话--单一职责原则

&#x1f973;&#x1f973;&#x1f973; 茫茫人海千千万万&#xff0c;感谢这一刻你看到了我的文章&#xff0c;感谢观赏&#xff0c;大家好呀&#xff0c;我是最爱吃鱼罐头&#xff0c;大家可以叫鱼罐头呦~&#x1f973;&#x1f973;&#x1f973; 从今天开始&#xff0c;将…