上面说了这么多废话,我们现在言归正传,那就是搜索引擎我们怎么测试呢?
搜索引擎的测试也分为功能与性能测试,我在下面依次来分享:
首先,我们把整个测试计划分为线下测试与线上测试。线下与线上测试都要分功能测试与性能测试,先说现线下的测试。
一、线下功能测试分为两个部分,一部分为搜索引擎本身的功能测试,一部分为嵌套在前台应用中的功能测试:
1、搜索引擎本身的功能测试,主要就是按照用例,通过不同的搜索关键字、属性的组合(按照搜索引擎的规则)来直接访问搜索引擎,查看返回的数据、参数是不是符合原先预计的结果。可以编写脚本来批量执行,判断每一个搜索的返回结果数与内容,相对应的参数是否一致。也可以手工执行,使用浏览器或者命令行(如 curl)来做,用肉眼来观察结果。
2、嵌套前台应用的功能测试,只要就是按照用例通过前台的操作,来测试搜索引擎的相关的功能,测试搜索引擎与前台的接口是否正确应用,至于如何测试,这个地球人都知道了,我就不在这里多说了。
二、线下性能测试也分为两个部分,一部分为直接对搜索引擎进行加压的性能测试,另一部分为通过前台应用进行加压的性能测试:
1、直接对搜索引擎进行加压,可以测试出搜索引擎本身最真实的性能状况。可以把搜索引擎的有效负荷,最大承受的压力测试出来。具体的方法是,使用工具如 loadrunner使用一个web_url直接加压,加压的内容其实就是你在功能测试中,直接测试搜索引擎时使用的那些搜索关键字、属性的组合(按照搜索引擎的规则),具体的规则可以通过log来查看,也可以询问开发人员。需要注意的是,数据准备一定要海量,至少10万条以上的搜索数据(注意,就是你访问搜索引擎的那些关键字组合,至于被搜索的数据,越大越好,最少多大,看你实际需要了)。当一切都准备完毕后,就可以启动工具来进行加压了。
2、通过前台应用进行加压,主要的压力都集中在前台应用上面,对于搜索引擎本身的压力并不会很大,但是这种测试也是必须的,因为你的搜索引擎是离不开前台应用的,这种测试可以模拟最真实的终端用户使用。所以不要怕麻烦,这个才是最后真正有意义的测试结果。
三、线上的功能测试,其实就是功能回归了,使用预发布环境(一套独立的缩小的线上的架构)来跑回归,手工或者自动化随便,这是不能缺少的。
四、线上的性能测试,这个也是使用预发布环境(记得一定要和线上一样哦,只不过是缩小的),分流线上的一部分压力到这里,观察线上与预发布环境中的各服务器的情况,如果是第一次发布,线上没有流量,那么就自己来模拟,或者靠运营来宣传了(有点想网络游戏的公测)。记录下服务器的各性能指标,如 load,cpu,队列,最大并发连接数,log等等。
特别需要注意的是,不同层次服务器之间的数据传输方式,正确率以及配置,多试试不同的配置,寻找性能最优点。