Java|Java API 搜索引擎项目的测试
注:①此项目不支持模糊搜索的功能,所以如果要查找一个 API 必须准确的输入才能被查找到。②我看了一下官方文档,最短的 API 长度为 3 ,最长的 API 这里先不考虑。
一、功能测试 1.等价类和边界值划分:
有效等价类 |
无效等价类 |
三位及三位以上英文字符 |
三位以下英文字符; 数字字符; 中文字符; 别的特殊字符。 |
测试用例 |
期望结果 |
ArrayList |
能被查找到并正确的显示到页面上 |
(不输入任何字符) |
查找不到内容 |
a |
查找不到内容 |
,,,,,,, |
查找不到内容 |
a,,, |
查找不到内容 |
aaaaaaa |
查找不到内容 |
123 |
查找不到内容 |
链表 |
查找不到内容 |
1.测试 Parser 类:
public class ParserTest { @Test public void convertLine() throws IOException { Parser parser = new Parser(); File file = new File("D:\\javaSE8 Doc\\docs\\api\\java\\math\\BigInteger.html"); String res = parser.convertLine(file); System.out.println(res); } @Test public void convertContent() throws IOException { File file = new File("D:\\Test.txt"); Parser parser = new Parser(); String res = parser.convertContent(file); System.out.println(res); } @Test public void convertUrl() { File file = new File("D:\\javaSE8 Doc\\docs\\api\\EntityResolver.html"); Parser parser = new Parser(); String res = parser.convertUrl(file); System.out.println(res); } @Test public void convertTitle() { File file = new File("D:\\javaSE8 Doc\\docs\\api\\EntityResolver.html"); Parser parser = new Parser(); String res = parser.convertTitle(file); System.out.println(res); } }
2.测试 Index 类:
public class IndexTest {@Test public void getDocInfo() throws IOException { Index index = new Index(); index.build("D:\\data.txt"); Index.Weight weight = new Index.Weight(); DocInfo docInfo = index.getDocInfo(weight.docId); System.out.println(docInfo); }@Test public void getInverted() throws IOException { Index index = new Index(); index.build("D:\\data.txt"); Listweights = index.getInverted("arraylist"); for (Index.Weight weight : weights) { System.out.println(weight.docId); System.out.println(weight.word); System.out.println(weight.weight); System.out.println(); } } }
3.测试 Searcher 类:
public class SearcherTest {@Test public void search() throws IOException { Searcher searcher = new Searcher(); Listres = searcher.search("arraylist"); for (Result result : res) { System.out.println(); System.out.println("============================================="); System.out.println(); System.out.println(result); } } }
三、兼容性测试 我分别在 Chrome、Firefox、IE 浏览器和手机上进行测试的,测试结果如下:
1.Chrome 浏览器能正常显示 HTML 页面并能进行搜索。
文章图片
2.Firefox 浏览器也能正常显示 HTML 页面并能进行搜索。
文章图片
3. IE 浏览器页面显示异常,并且无法进行搜索。
文章图片
4.手机端使用的是 QQ 内置浏览器进行测试的,能正常显示页面并能进行搜索。
文章图片
四、自动化测试 【Java|Java API 搜索引擎项目的测试】自动化测试使用的是 unittest 框架写的脚本,并将运行结果生成 HTML 报告:
from selenium import webdriver import unittest import timeclass imageTest(unittest.TestCase):#定义的类 def setUp(self):#初始化 self.driver = webdriver.Chrome() self.driver.get("http://39.97.104.31:8080/docSearcher/") self.driver.maximize_window() time.sleep(3)def test_mytest(self):#测试的方法必须以 'test_' 开头 self.driver.find_element_by_xpath("//*[@id='app']/div[2]/input").send_keys("arraylist") time.sleep(3) self.driver.find_element_by_xpath("//*[@id='app']/div[2]/button").click() time.sleep(3) self.driver.find_element_by_xpath("//*[@id='app']/div[3]/div[1]/a").click() time.sleep(3)def tearDown(self):#清理测试环境 self.driver.quit()#close 也可以,但是 quit 可以清理掉缓存if __name__ == "__main__": unittest.main()
文章图片
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 2020-04-07vue中Axios的封装和API接口的管理
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用