Java API 搜索引擎测试报告

news2024/12/22 20:03:52

一、测试项目介绍

基于SpringBoot开发的 Java API 文档搜索引擎,输入具体的类名或包名就能找到对应相关的搜索结果,点击标题即可跳转到对应官方网页。

二、测试

测试环境:Windows11,Google chrome浏览器 128.0.6613.138 (正式版本) (64 位)

1.编写测试用例

在这里插入图片描述

2.功能测试
2.1 输入测试

因为该项目不支持模糊匹配,查找结果是根据查询词是否包含在文档内容中来筛选的,因此等价类的划分如下:

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

测试输入数据:

测试用例期望结果
String(有效)能被查找到并正确显示
ArrayList(有效)能被查找到并正确显示
12(有效)能被查找到并正确显示
12(有效)能被查找到并正确显示
a123b(有效)能被查找到并正确显示
数组(无效)查找不到结果
,Ar,p,(无效)查找不到结果
1=1,&&&%$23(无效)查找不到结果
空格(无效)查找不到结果

附上部分测试截图:
有效等价类:在这里插入图片描述

无效等价类:
在这里插入图片描述


2.2 页面展示结果测试
2.2.1 显示搜索结果总数是否和实际展示保持一致

这里搜索一个条目比较少的方便展示:如图可以看到确实保持一致在这里插入图片描述

数量大之后就需要定位页面元素编写代码来统计具体实际展示出的结果总数,这里贴上部分代码:

			// 定位包含结果统计信息的元素
            WebElement resultStats = webDriver.findElement(By.xpath("/html/body/div/div[2]/div[1]"));
            // 提取该元素文本信息
            String resultText = resultStats.getText();
            // 使用正则表达式提取数字
            String resultCount = resultText.replaceAll("\\D+", "");
            System.out.println("提取的搜索结果数为: " + resultCount);

            // 获取实质展示的搜索结果
            List<WebElement> results = webDriver.findElements(By.className("item"));
            System.out.println(results.size());
            // 使用断言判断两者是否一致
            assertEquals("展示搜索结果数和实际展示应保持一致", results.size(), Integer.parseInt(resultCount));

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

如图,可以看到三者正确显示:在这里插入图片描述

自动化测试代码:

			// 获取标题属性
            WebElement linkElement = result.findElement(By.tagName("a"));
            String href = linkElement.getAttribute("href"); // 获取 href 属性
            String title = linkElement.getText(); // 获取标题文本

            // 检查标题是否正确显示
            assertNotNull("标题不应为空", title);

            // 检查描述是否包含查询词(包含的查询词已标红)
            WebElement desc = result.findElement(By.tagName("i"));
            assertNotNull("应包含查询词", desc.getText());

            // 检查URL是否正常显示
            WebElement url = result.findElement(By.className("url"));
            assertNotNull("URL不应为空", url.getText());

2.2.3 点击标题是否能够正确跳转

经过测试是可以正确跳转,代码如下:

			// 点击标题是否能够正确跳转
            String expectedUrl = url.getText(); // 获取预取的跳转URL
            linkElement.click(); // 点击标题

            // 获取所有标签页的句柄
            ArrayList<String> tabs = new ArrayList<>(webDriver.getWindowHandles());

            // 切换到新标签页(新标签页一般在索引1的位置)
            webDriver.switchTo().window(tabs.get(1));

            // 等待新页面加载
            WebDriverWait waitUrl = new WebDriverWait(webDriver, Duration.ofSeconds(10));
            waitUrl.until(ExpectedConditions.urlToBe(expectedUrl));

            // 获取当前页面url
            System.out.println(webDriver.getCurrentUrl());

            // 断言跳转页面URL和期望URL是否一致
            assertEquals("应该跳转到正确的URL", expectedUrl, webDriver.getCurrentUrl());

            // 关闭新标签页
            webDriver.close();

            // 切换回原标签页
            webDriver.switchTo().window(tabs.get(0));

3.兼容性测试

在Windows11环境下:
Edge浏览器:正常运行在这里插入图片描述

谷歌浏览器:正常运行在这里插入图片描述


vivo IQOO 手机环境:
手机QQ浏览器:正常运行在这里插入图片描述

vivo自带浏览器:正常运行请添加图片描述


测试代码链接

链接: 项目测试链接

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

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

相关文章

jmeter 录制APP脚本

一、手机 1、修改网络 代理选择手动→填写服务器主机名&#xff08;电脑IP&#xff0c;如&#xff1a;192.1xx.x.xx&#xff09;→服务器端口&#xff08;任意未被占用端口&#xff0c;如&#xff1a;8888&#xff09; 2、安装证书 手机浏览器访问服务器主机名:服务器端口&a…

通过mqtt通信远程控制大疆无人机

一、控制大疆无人机通信链路如上图所示 二、大疆无人机pilot指令飞行通信交互逻辑如上图所示 三、实现远程控制步骤 3.1前端单独实现&#xff1a;只通过后端获取控制权&#xff0c;然后前端单独发送mqtt指令&#xff0c;延时较低。 3.2前后端一起实现&#xff1a;前端发送ht…

Leetcode - 周赛414

目录 一&#xff0c;3280. 将日期转换为二进制表示 二&#xff0c;3281. 范围内整数的最大得分 三&#xff0c;3282. 到达数组末尾的最大得分 四&#xff0c;3283. 吃掉所有兵需要的最多移动次数 一&#xff0c;3280. 将日期转换为二进制表示 本题就是简单的字符串和整数之…

产品密封防水设计技术、工艺标准及实施方案解培训

一、课程背景&#xff1a; 当前智能产品密封防水能力成为电子产品营销的重要卖点&#xff0c;虽然我们不需长期带着某种电子设备在水下工作和生活&#xff0c;意外却会令价值不菲的电子产品瞬间报废。时下智能手表和耳机成了慢跑伴侣&#xff0c;汗水或雨水长期的侵润腐蚀&…

查谷歌流量什么最准确,服务商提供的工具为什么不能用?

查网站的SEO流量&#xff0c;Google Search Console是最准确的工具&#xff0c;因为这就是谷歌官方提供的工具&#xff0c;谷歌这方面没必要造假&#xff0c;GSC能直接展示你的网站在谷歌搜索中的表现&#xff0c;包括点击次数、展示次数、点击率和平均排名。因为这些数据直接来…

项目需求 | MySQL增量备份与恢复的完整操作指南

目录 一、MySql数据库增量备份的工作原理 1、全量备份与增量备份 2、增量备份原理 二、进行增量备份 步骤1&#xff1a;启用二进制日志 使用 SHOW VARIABLES 命令查看二进制日志状态 步骤2&#xff1a;执行增量备份脚本 三、使用增量备份恢复损坏的数据库 步骤1&#…

[数据集][目标检测]男女性别检测数据集VOC+YOLO格式9769张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;9769 标注数量(xml文件个数)&#xff1a;9769 标注数量(txt文件个数)&#xff1a;9769 标注…

《程序猿之设计模式实战 · 池化思想》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

春意盎然:SpringBoot在线教育平台设计

第五章 系统实现 5.1用户功能模块 用户点击进入到系统操作界面&#xff0c;可以对首页、个人中心、课程信息管理、我的收藏管理、订单管理等功能模块&#xff0c;个人信息&#xff1a;通过列表可以获取账号、密码、姓名、性别、手机、邮箱、照片、备注并进行修改操作&#xff…

网络药理学:15、草稿暂存区(autodock vina)

TCMSP 韦恩图在线网站 https://bioinfogp.cnb.csic.es/tools/venny/index.html String数据库参数详解&#xff1a;https://www.bilibili.com/video/BV1q64y1k7Zf?p16&vd_sourceaed4c634975918b14b7354ec93ce5389 David数据库可以用基因ID或者基因名。 KEGG数据库使用&am…

大雪纷飞的视频素材去哪里找啊?雪景素材库分享

当冬季的银装素裹覆盖大地&#xff0c;无数抖音创作者便开始寻找那些可以捕捉到大雪纷飞的壮观画面。无论是为了制作节日主题的视频、记录下雪天的活动&#xff0c;还是单纯展示雪的清新美&#xff0c;优质的大雪视频素材都显得尤为重要。如果你正为寻找这类素材而苦恼&#xf…

软件测试面试题,精选100 道,内附答案

精挑细选&#xff0c;整理了100道软件测试面试题&#xff0c;都是非常常见的面试题&#xff0c;篇幅较长&#xff0c;所以只放出了题目&#xff0c;答案在评论区&#xff01; 测试技术面试题 1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 2、我现在有…

设计模式篇--抽象工厂模式

/*** 主要思路&#xff1a;先构建一个总工厂&#xff0c;包含许多分工厂&#xff0c;再从分工厂中&#xff0c;取出自己想要的类型的物品*/ public class main {public static void main(String[] args) {FactoryProducer factoryProducer new FactoryProducer();//获取手机工…

计算机网络(六) —— http协议详解

目录 一&#xff0c;预备知识 1.1 关于域名 1.2 关于URL 1.3 urlencode和urldecode 二&#xff0c;关于http 2.1 什么是http 2.2 http协议格式 2.2.1 网络协议栈 2.2.2 http请求协议格式* 2.2.3 http响应协议格式* 三&#xff0c;http细节字段 3.1 http方法 3.2 …

《A++ 敏捷开发》- 26 根与翼

中国社会一直非常强调家庭价值观&#xff0c;希望实现家族的持续传承&#xff0c;家族有族谱&#xff0c;代代相传的关系对每个家庭成员的成长产生深远影响。我们每个人都只是人类进化过程中的短暂过渡。父母普遍希望把最好的东西传承给下一代。然而我们需要问自己&#xff0c;…

【Go】Go语言中延迟函数、函数数据的类型、匿名函数、闭包等高阶函数用法与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

每日处理250亿个事件,Canva如何应对数据洪流

在这个数据被称为“新石油”的时代&#xff0c;如何有效地处理海量信息流显得尤为重要。作为广受欢迎的设计平台&#xff0c;Canva不仅因其用户友好的界面而备受关注&#xff0c;还因其高效利用Amazon Kinesis管理每日高达250亿个事件而成为热议焦点。让我们深入探讨Canva是如何…

【案例70】invalid secrity token(null)

问题现象 系统登录时提示invalid secrity token(null) 问题分析 排查发现令牌种子没有配置或被人为修改 解决方案 1、登录环境。代码路径下bin下有个sysconfig.bat。左侧选“系统配置”。右侧点“安全”。读取保存一下。 2、或者找一个好用的环境。把ierp/bin下的prop.xml文…

Redis简介、常用命令及优化

文章目录 一、关系数据库​​与非关系型数据库概述1. 关系型数据库2. 非关系型数据库3.关系数据库与非关系型数据库区别 二、Redis简介1.Redis的单线程模式2.Redis 优点3.Redis 缺点 三、安装redis四、Redis 命令工具五、Redis 数据库常用命令六、Redis 多数据库常用命令七、Re…

【算法专题--回文】最长回文子串 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、预备知识 &#x1f95d; 什么回文串 &#xff1f; 四、题目解析 五、总结与提炼 六、共勉 一、前言 最长回文子串 这道题&#xff0c;可以说是--回文专题 --&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高…