搜索引擎模块划分:
- 索引模块:扫描本地 API 文档,分析内容并构建正排+倒排索引(使用 Ansj 分词技术);
- 搜索模块:根据输入查询词,基于倒排索引进行检索,合并文档,设置分词权值,返回检索结果;
- 前端模块:编写简单页面,展示搜索结果,点击搜索结果跳转对应 API 文档;
搜索结果展示:
测试
一.简单搜索输入框测试用例
1:不输入任何字符,点击搜索按钮;
测试结果:无任何显示,保持原有界面;
2:输入全角/半角中文字符(一个字符、超长字符)
测试结果:输入中文字符串,显示空白页面;点击上一页,无明显反应;点击下一页,出现空白异常;
3:输入全角/半角英文字符(一个字符、超长字符)
测试结果:输入Java语言中非专有字符串,无查询结果;
#不好区分字符串拼接形成的专业字符和非专业字符;
例如:可以查询str(string),到那时无法查询ch(char);
4:输入全角/半角特殊字符~!@#$%^&*()_+|{}:"<>?.,;'[]\=-等;
测试结果:英文特殊字符均可得到查询结果,中文符合无查询结果;
5:输入全角/半角中英文空格
测试结果:中英文空格均无查询结果;
6:输入特殊字符串NULL、null、 空格的转义字 符;<scrīpt></scrīpt>;<br>;<tr>;<td>;< /tr>;</td>;</html>;</body>;</table>
测试结果:均有查询结果,结果并不准确;
7:回车键搜索
测试结果:不支持回车键搜索;
class JavaSearch(unittest.TestCase):
# 测试固件
def setUp(self):
self.driver = webdriver.Firefox()
self.url = "http://127.0.0.1:8080/index.html"
self.driver.maximize_window()
time.sleep(3)
def tearDown(self):
print("------tearDown------")
self.driver.quit()
# 简单搜索框输入测试用例
# 输入正确的搜索内容
def test_simple0(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_id("ssk").send_keys("String")
time.sleep(3)
driver.find_element_by_id("ss").click()
time.sleep(3)
# 输入空格
def test_simple1(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_id("ssk").send_keys(" ")
time.sleep(3)
driver.find_element_by_id("ss").click()
time.sleep(3)
# 输入中文字符串
def test_simple2(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_id("ssk").send_keys("通信工程")
time.sleep(3)
driver.find_element_by_id("ss").click()
time.sleep(3)
# 输入无效长字符串
def test_simple3(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_id("ssk").send_keys("abcdefgh")
time.sleep(3)
driver.find_element_by_id("ss").click()
time.sleep(3)
# 输入特殊字符
def test_simple4(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_id("ssk").send_keys("@#")
time.sleep(3)
driver.find_element_by_id("ss").click()
time.sleep(3)
if __name__ == "__main__":
unittest.main()
二.性能测试
1:在网络情况良好的前提下,页面的跳转需要多少时间;
2:在网络状况不好的情况下,页面的跳转需要多少时间;
a. 从输入完成到敲击回车到页面正常返回所花费的时间,是否符合用户的预期(在一定的时间内返回)
b. 从输入开始是否用数据返回(AJAX)异步返回数据(在一定的时间内返回)
c. 在不同的网络条件下能否正常的使用(在一定的时间内是否有数据返回)
i. 有线网络:
- 从拨号上网到1000M带宽,服务器响应速度如何,对于信号不好的地方是否有优化
ii. 无线网络(有强到弱,对应用的影响以实际接收数据为准)
- 信号1格到满格对搜索的影响
三.兼容性测试
1:不同的平台:windows系统,mac系统
2:不同的浏览器:Firefox浏览器、Chrome浏览器、IE
3:不同的移动平台:android、ios
四.界面测试
1:查看UI是否显示正确,布局是否美观
2:页面上是否有错别字
3:查看错误提示信息的位置是否合理、是否有错别字
4:搜索结果的页面是否美观
5:搜索结果数量庞大的时候,是否分页处理,分页是否和需求说明书的要求保持一致
6:光标的定焦是否准确