【文心索引】搜索引擎测试报告

news2025/3/13 16:20:40

目录

一、项目背景

1、互联网信息爆炸的时代背景

2、搜索引擎的应运而生

3、搜索引擎的市场需求和竞争态势

4、搜索引擎项目的意义

二、项目功能

1、基础搜索功能

2、用户交互与体验功能

3、数据索引与爬取功能

三、测试报告

3.1.功能测试

3.1.1.输入测试:

有效等价类:

无效等价类:

3.1.2.测试解析网页title,content,url是否正确?

3.2.界面测试

3.4.自动化测试

3.4.1.工具类的实现:

3.4.2.主体测试代码的实现:

3.5.兼容测试

四、测试总结

一、项目背景

1、互联网信息爆炸的时代背景

随着互联网技术的飞速发展,全球范围内的信息量呈现出爆炸式增长。网络已成为人们获取信息的主要渠道,每天有海量的网页被创建和更新,涵盖了新闻、学术、商业、娱乐等各个领域。然而,面对如此庞大的信息海洋,用户如何高效、准确地找到所需信息成为了一个巨大的挑战。

2、搜索引擎的应运而生

为了应对这一挑战,搜索引擎应运而生。搜索引擎是一种能够根据用户输入的关键词,在海量信息中快速检索并返回相关结果的技术和系统。它的出现极大地提高了信息检索的效率,使得用户能够轻松找到所需信息,节省了大量的时间和精力。

3、搜索引擎的市场需求和竞争态势

在当今社会,搜索引擎已成为人们日常生活中不可或缺的一部分。无论是学术研究、商业决策还是日常信息获取,搜索引擎都发挥着至关重要的作用。随着移动互联网的普及和智能设备的广泛应用,用户对搜索引擎的需求也在不断变化和升级。同时,搜索引擎市场也呈现出激烈的竞争态势。各大搜索引擎公司纷纷加大研发投入,提升技术实力,以争夺更多的市场份额和用户资源。

4、搜索引擎项目的意义

在这样的背景下,开展搜索引擎项目具有重要意义。通过研发具有自主知识产权的搜索引擎技术,不仅可以满足用户日益增长的信息检索需求,提升用户体验,还可以推动相关产业的发展和进步。同时,搜索引擎项目也是一项具有创新性和挑战性的任务,能够锻炼和提升团队的技术研发能力和创新能力。

二、项目功能

1、基础搜索功能

  1. 关键词搜索:用户输入关键词或短语,搜索引擎能够快速在索引的数据库中查找与关键词相关的信息,并按一定顺序和格式展示给用户。
  2. 结果排序:根据网页的相关性、质量、权威性等因素,对搜索结果进行排序,优先展示最符合用户需求的网页。

2、用户交互与体验功能

  1. 用户界面友好:提供简洁明了的用户界面,方便用户输入查询、浏览结果和进行交互操作。
  2. 搜索建议与自动补全:在用户输入查询时,提供搜索建议和自动补全功能,提高搜索效率。
  3. 结果摘要与预览:为搜索结果提供摘要信息或预览图,帮助用户快速了解网页内容,决定是否点击查看。

3、数据索引与爬取功能

  1. 数据爬取:使用网络爬虫等自动化工具,从互联网上抓取网页数据,为搜索引擎提供数据支持。
  2. 数据索引:对抓取到的数据进行预处理和整理,构建倒排索引等数据结构,提高搜索效率。

三、测试报告

测试用例:

3.1.功能测试

3.1.1.输入测试:

下面是等价类的划分

  • 有效等价类:英文字符,数字字符,英文和数字混杂字符
  • 无效等价类:中文字符,停用词字符,其他特殊字符

测试输入数据:

测试用例        期望结果
arr(有效)能被查找到并正确显示
string(有效)能被查找到并正确显示
1234(有效)能被查找到并正确显示
ke123(有效)能被查找到并正确显示
你好(无效)               查找不到结果
,;X(无效)查找不到结果
3=**&&~(无效)查找不到结果
空格(无效)查找不到结果

测试截图:

有效等价类:

输入字母:

预期结果:搜索成功,显示与字母相关的结果.

实际结果:搜索成功,显示带有字母的结果.

输入数字:

预期结果:搜索成功,显示与数字相关的结果.

实际结果:搜索成功,显示带有数字的结果.

无效等价类:

输入汉字:

预期结果:搜索失败,查找不到结果

实际结果:搜索失败,查找不到结果

输入特殊字符

预期结果:搜索失败,查找不到结果

实际结果:搜索失败,查找不到结果

3.1.2.测试解析网页title,content,url是否正确?

vim data/input/mpi/history.html

在自己下载的文件里面进行验证,发现正确,没问题!

在网站中验证,也没问题!

3.2.界面测试

搜索框和按钮正常显示。

标题、描述、URL是否正确显示

如图,可以看到三者正确显示。

3.3.性能测试

3.4.自动化测试

3.4.1.工具类的实现:

import os
import sys
import datetime

from selenium import webdriver
from selenium.webdriver.ie.service import Service
from webdriver_manager.chrome import ChromeDriverManager


#创建一个浏览器对象

class Driver:
    driver = ""
    def __init__(self):
        options = webdriver.ChromeOptions()
        self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)

    def getScreeShot(self):
        # 创建屏幕截图
        # 图片文件名称:./2024-05-08-173456.png
        dirname = datetime.datetime.now().strftime("%Y-%m-%d")

        # 判断dirname文件夹是否已经存在,若不存在则创建文件夹
        # ../images/2024-05-08
        if not os.path.exists("../images/" + dirname):
            os.mkdir("../images/" + dirname)
        # 2024-05-08-173456.png
        # 图片路径:../images/调用方法-2024-05-08/2024-05-08-173456.png
        # 图片路径:../images/LoginSucTest-2024-05-08/2024-05-08-173456.png
        # 图片路径:../images/LoginFailTest-2024-05-08/2024-05-08-173456.png
        filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.datetime.now().strftime(
            "%Y-%m-%d-%H%M%S") + ".png"
        self.driver.save_screenshot("../images/" + dirname + "/" + filename)

BlogDriver = Driver()

3.4.2.主体测试代码的实现:

#测试搜索引擎主页界面
import time

from selenium.webdriver.common.by import By

from common.Utils import BlogDriver


class SearchHomePage:
    url = ''
    driver = ''
    def __init__(self):
        self.url = 'http://123.249.125.60:8085/'
        self.driver = BlogDriver.driver
        self.driver.get(self.url)

    #搜索无效等价类
    def InvaildTest(self):
        #测试中文
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').send_keys('你好')
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > button').click()
        time.sleep(8)
        #清空搜索框内容
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').clear()

        #测试特殊字符
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').send_keys('****')
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > button').click()
        #清空搜索框内容
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').clear()


    #搜索有效等价类
    def VaildTest(self):
        #测试字符串类型
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').send_keys('string')
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > button').click()
        time.sleep(3)
        #每次搜索完毕之后,都要清空搜索框的内容,便于下次测试
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').clear()

        #测试数字类型
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > input[type=text]').send_keys('123')
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.search > button').click()
        time.sleep(3)

        #点击任意一条内容,看能否跳转
        self.driver.find_element(By.CSS_SELECTOR,'body > div > div.result > div:nth-child(1) > a').click()
        time.sleep(3)


_search = SearchHomePage()
_search.InvaildTest()
_search.VaildTest()

测试结果:

3.5.兼容测试

在Windows11环境下:
联想浏览器:正常运行

在Windows11环境下:
谷歌浏览器:正常运行

在Windows11环境下:
Edge浏览器:正常运行

oppo Android手机环境:
手机QQ浏览器:正常运行

四、测试总结

4.1.功能测试

在功能测试环节,我们主要对搜索引擎的输入功能进行了详细测试。通过等价类划分,我们设计了有效等价类和无效等价类测试用例,以确保搜索引擎能够正确处理各种输入情况。

  1. 有效等价类测试
    • 测试用例包括英文字符、数字字符、英文和数字混杂字符等,这些输入均能被搜索引擎正确查找并显示相关结果。
    • 实际测试结果与预期结果一致,搜索引擎能够准确返回与输入内容相关的搜索结果。
  2. 无效等价类测试
    • 测试用例包括中文字符、停用词字符、其他特殊字符以及空格等,这些输入均被搜索引擎判定为无效,无法查找到相关结果。
    • 实际测试结果同样与预期结果一致,搜索引擎能够正确识别并处理这些无效输入。

4.2.界面测试

在界面测试环节,我们主要对搜索引擎的搜索框、按钮以及搜索结果展示界面进行了测试。

  1. 搜索框和按钮测试
    • 搜索框和搜索按钮均能够正常显示,且点击按钮后能够触发搜索功能。
    • 搜索结果展示界面布局合理,能够清晰展示搜索到的相关内容。
  2. 标题、描述、URL显示测试
    • 搜索结果中的标题、描述和URL均能够正确显示,且与实际搜索结果相符。

4.3.自动化测试

在自动化测试环节,我们利用Selenium自动化测试工具编写了测试代码,对搜索引擎的搜索功能进行了自动化测试。

  1. 工具类实现
    • 我们创建了一个Driver类,用于初始化Selenium WebDriver并实现截图功能。
    • 通过ChromeDriverManager自动管理ChromeDriver的安装和更新。
  2. 主体测试代码实现
    • 我们编写了SearchHomePage类,用于测试搜索引擎主页的搜索功能。
    • 通过CSS选择器定位搜索框和搜索按钮,并模拟用户输入和点击操作。
    • 对有效等价类和无效等价类分别进行了测试,并验证了搜索结果和页面跳转功能。
  3. 测试结果
    • 自动化测试代码运行顺利,测试结果与预期一致,搜索引擎能够正确处理各种输入并返回相关搜索结果。

4.4.兼容测试

在兼容测试环节,我们测试了搜索引擎在不同操作系统和浏览器环境下的运行情况。

  1. Windows11环境测试
    • 在联想浏览器、谷歌浏览器和Edge浏览器下,搜索引擎均能正常运行,搜索结果准确且页面布局合理。
  2. Android手机环境测试
    • 在oppo Android手机的QQ浏览器下,搜索引擎同样能够正常运行,搜索结果准确且页面适应手机屏幕大小。

总结

通过本次测试,我们验证了搜索引擎项目的功能完整性、界面合理性、自动化测试可行性以及跨平台兼容性。测试结果表明,搜索引擎能够正确处理各种输入情况,界面布局合理且易于使用,自动化测试代码运行稳定且准确,同时在不同操作系统和浏览器环境下均能正常运行。因此,我们可以认为该搜索引擎项目已经具备了上线运行的基本条件。

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

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

相关文章

ReAct论文阅读笔记总结

ReAct:Synergizing Reasoning and Acting in Language Models 背景 最近的研究结果暗示了在自主系统中结合语言推理与交互决策的可能性。 一方面,经过适当Prompt的大型语言模型(LLMs)已经展示了在算术、常识和符号推理任务中通…

InternalError: too much recursion

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

在WSL2-Ubuntu中安装CUDA12.8、cuDNN、Anaconda、Pytorch并验证安装

#记录工作 提示:整个过程最好先开启系统代理,也可以用镜像源,确保有官方发布的最新特性和官方库的完整和兼容性支持。 期间下载会特别慢,需要在系统上先开启代理,然后WSL设置里打开网络模式“Mirrored”,以设置WSL自动…

LLM论文笔记 19: On Limitations of the Transformer Architecture

Arxiv日期:2024.2.26机构:Columbia University / Google 关键词 Transformer架构幻觉问题数学谜题 核心结论 1. Transformer 无法可靠地计算函数组合问题 2. Transformer 的计算能力受限于信息瓶颈 3. CoT 可以减少 Transformer 计算错误的概率&#x…

基于51单片机的智能水箱控制系统proteus仿真

地址:https://pan.baidu.com/s/1zgG90VB5TEA05O2ZkKC3CA 提取码:1234 仿真图: 芯片/模块的特点: AT89C52/AT89C51简介: AT89C52/AT89C51是一款经典的8位单片机,是意法半导体(STMicroelectroni…

虚拟系统实验

实验拓扑 启动虚拟系统 [FW]vsys enable 配置资源类 先查看 配置 创建虚拟系统 [USG6000V1]vsys name vsysa 绑定资源类 [USG6000V1-vsys-vsysa]assign resource-class r1 将接口划入虚拟系统 [USG6000V1-vsys-vsysa]assign interface GigabitEthernet 1/0/1 公共接口 --- 勾…

V90伺服电机初调试

分配设备IP地址 打开博途,将IP地址分配给对应伺服 打开V-ASSISTANT软件,刷新后读取硬件。VASSISTANT软件选择指定伺服,点击设备调试, 在控制模式选项中选择基本定位器控制(EPOS) 在设置PROFINET-选择报文页…

Air780EPM:SIM 卡接口设计指导来啦~

在数字化浪潮中,SIM卡作为通信设备的“身份证”,早已成为人们生活中不可或缺的存在。 以下详细阐述了SIM卡接口如何通过读取卡片信息完成4G网络鉴权,并支持双卡切换功能,使设备能够灵活选择最优网络。这种看似简单的机制&#xf…

DNS云解析有什么独特之处?

在数字化浪潮中,每一次网页点击、视频加载或在线交易背后,都依赖着域名系统(DNS)的高效运转。传统DNS架构的局限性(如单点故障、延迟高、安全脆弱)在云计算时代被彻底颠覆,DNS云解析作为新一代解…

VMware Workstation安装rocky9.5虚拟机

1、在镜像源网站中下载rocky镜像源,下载dvd版(图像,软件全部都有,其他版本还需下载图像),这里我使用的镜像源网站是ubuntu-releases安装包下载_开源镜像站-阿里云 2、找到isos: 3、找x86_64/ 4、…

概念|RabbitMQ 消息生命周期 待消费的消息和待应答的消息有什么区别

目录 消息生命周期 一、消息创建与发布阶段 二、消息路由与存储阶段 三、消息存活与过期阶段 四、消息投递与消费阶段 五、消息生命周期终止 关键配置建议 待消费的消息和待应答的消息 一、待消费的消息(Unconsumed Messages) 二、待应答的消息…

多模态知识图谱融合

1.Knowledge Graphs Meet Multi-Modal Learning: A Comprehensive Survey 1.1多模态实体对齐 1.2多模态实体链接 研究进展&#

多宠识别:基于计算机视觉的智能宠物管理系统架构解析

一、行业痛点与技术方案演进 在多宠家庭场景中,传统方案面临三大技术瓶颈: 1. 生物特征混淆:同品种/毛色宠物识别准确率低于65% 2. 动态场景适应:进食/奔跑状态下的误检率达30% 3. 数据孤岛问题:离线设备无法实现持续…

蓝桥杯-15届研究生组-A 劲舞团

思路和时间复杂度 思路&#xff1a;签到模拟题&#xff0c;但是思路也很重要&#xff0c;在K的重新赋值时&#xff0c;卡了一下&#xff0c;在不满足时间条件时&#xff0c;应该重置为1时间复杂度&#xff1a; 代码 #include <iostream> #include<cmath>…

最长重复子数组、最长公共子序列、判断子序列

20250307 题目区别dp数组含义的区别dp数组状态转移方程 代码随想录&#xff1a; 最长重复子数组 最长公共子序列 判断子序列 题目区别 最长重复子数组&#xff08;连续&#xff09;&#xff1a; 最长公共子序列&#xff08;不连续&#xff09;&#xff1a; 判断子序列 dp数…

【数据分析】转录组基因表达的KEGG通路富集分析教程

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍差异分析(limma)KEGG富集分析(enrichKEGG)可视化加载R包数据下载导入数据基因差异分析火山图KEGG通路富集分析可视化通路结果另一个案例总结系统信息参考介绍 KEGG富集分析,可…

SpringBoot - 用责任链模式实现业务编排

文章目录 前因责任链&#xff1a;像工作台一样组织代码CodeSEQ3.1 定义处理器规范3.2 实现具体处理器3.3 共享上下文3.4 组装责任链 适用场景优势 前因 2000多行的业务逻辑里&#xff0c;各种校验规则、促销计算、库存操作像意大利面条一样缠绕在一起。最要命的是这样的代码结…

ResNet 改进:轻量级的混合本地信道注意机制MLCA

目录 1. MLCA注意力机制 2. 改进位置 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. MLCA注意力机制 MLCA(Mixed Local Channel Attention)是一种轻量级的混合本地信道注意机制,旨在提升卷积神经网络(CNN)在图像处理…

【第22节】C++设计模式(行为模式)-Iterator(迭代器)模式

一、问题背景 Iterator 模式是设计模式中最为常见和实用的模式之一。它的核心思想是将对聚合对象的遍历操作封装到一个独立的类中&#xff0c;从而避免暴露聚合对象的内部表示。通过 Iterator 模式&#xff0c;我们可以实现对聚合对象的统一遍历接口&#xff0c;而不需要关心聚…

PyTorch基础语法万字解析

第一章&#xff1a;张量基础&#xff08;Tensor Fundamentals&#xff09; 1.1 张量创建 在PyTorch中&#xff0c;张量&#xff08;Tensor&#xff09;是用于表示数据的基本单元。它类似于NumPy中的数组&#xff0c;但额外支持GPU加速和自动微分功能。以下是几种创建张量的方…