Java API 搜索引擎测试报告

news/2024/12/23 1:14:56/

一、测试项目介绍

基于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 显示搜索结果总数是否和实际展示保持一致

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

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

java">			// 定位包含结果统计信息的元素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是否正确显示

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

自动化测试代码:

java">			// 获取标题属性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 点击标题是否能够正确跳转

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

java">			// 点击标题是否能够正确跳转String expectedUrl = url.getText(); // 获取预取的跳转URLlinkElement.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));// 获取当前页面urlSystem.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.ppmy.cn/news/1526521.html

相关文章

自动驾驶自动泊车场景应用总结

自动泊车技术是当前智能驾驶技术的一个重要分支,其目标是通过车辆自身的感知、决策和控制系统,实现车辆在有限空间内的自主泊车操作。目前自动泊车可分为半自动泊车、全自动泊车、记忆泊车、自主代客泊车四种产品形态,其中, 根据搭载传感器和使用场景的不同,全自动泊车又可…

《C++位域:在复杂数据结构中的精准驾驭与风险规避》

在 C的广阔编程世界中&#xff0c;位域作为一种强大的工具&#xff0c;可以在复杂数据结构中实现高效的内存利用和特定的数据表示。然而&#xff0c;若使用不当&#xff0c;位域也可能带来未定义行为&#xff0c;成为程序中的潜在隐患。本文将深入探讨 C位域在复杂数据结构中的…

数据清洗-缺失值填充-随机森林填充

目录 一、安装所需的python包二、采用随机森林算法进行缺失值填充2.1可直接运行代码2.2以某个缺失值数据进行实战代码运行过程截屏&#xff1a;填充后的数据截屏&#xff1a; 三、随机森林算法 (Random Forest) 介绍3.1随机森林的定义3.2随机森林的基本思想3.3随机森林的工作原…

嵌入式硬件基础知识

嵌入式硬件基础知识涵盖了嵌入式系统中的硬件组成及其工作原理&#xff0c;涉及处理器、存储器、外设接口、电源管理等多个方面。这些硬件共同构成了一个完整的嵌入式系统&#xff0c;用于执行特定任务。下面我们来详细介绍嵌入式硬件的基础知识。 1. 嵌入式系统的组成 嵌入式…

Thinkphp5 + Swoole实现邮箱异步通知

在 ThinkPHP 中实现邮箱异步通知的常见做法是通过队列系统来处理异步任务&#xff0c;结合 Swoole 来处理异步发送邮件的请求。这样可以避免同步处理邮件发送导致的阻塞&#xff0c;提高响应速度。 以下是基于 ThinkPHP5 框架和 Swoole 的异步邮件通知实现步骤&#xff1a; 一…

数据结构(2):LinkedList和链表[2]

我们在上一篇文章中着重讨论了单链表的实现。其中我们要注意单链表进行遍历时一步一步走的思想。那么这篇文章我们将继续讨论链表的更多内容&#xff0c;那就让我们开始吧。 1.经典单链表算法题 我们将通过几个经典的题对单链表进行进一步的认识。 (1)反转链表 206. 反转链…

安全区域边界等保测评

1.边界防护 应保证跨越边界的访问和数据流通过边界设备提供的受控接口进行通信。 [测评方法] 1)应核查在网络边界处是否部署访问控制设备;网闸和防火墙2)应核查设备配置信息是否指定端口进行跨越边界的网络通信,指定端口是否配置并启用了安全策略acl 3)应采用其他技术手…

解锁全球机遇:澳大利亚服务器租用市场的独特魅力

在浩瀚的全球数字版图中&#xff0c;澳大利亚以其独特的地理位置、丰富的资源禀赋、以及日益增长的数字经济活力&#xff0c;成为了众多互联网企业竞相布局的重要市场。特别是当谈及服务器租用这一关键环节时&#xff0c;澳大利亚以其稳定的网络环境、先进的基础设施和开放的市…