比如我在百度输入框中输入 testerhome,那么当出现被查询的内容的时候,这段时间如何记录呢?更通用一点,如何测百度的查询速度呢? 我自己的想法是用爬虫,然后记录一下爬的时间,还有没有其他一些好的方法
你随便输个东西就会发现,你搜 10 次,10 次的时间都不同,你取啥?
查询前获取当前时间,查询后获取当前时间,获取两者时间差。
不过首先要明确这个问题是否有必要,因为百度的查询速度受服务器以及网络影响,不过如果是想要测试一个网站的性能,不如试试压力测试。
从技术角度,在百度上输入关键字 - 点击搜索,到界面见到搜索结果,大概有几个步骤:
1、前端把输入框的值封装到接口数据里,发起接口请求。 2、接口请求经过漫长的链路(各种网关、路由),到达百度的机房并到达搜索服务 3、搜索服务内部进行搜索处理(里面还有各种内部流程) 4、搜索服务返回结果 5、经过漫长的链路,浏览器收到搜索处理结果(纯数据格式) 6、前端把数据变为界面元素,展示到浏览器
在公网,2、5 的耗时是不稳定的,而整体来说最大的耗时一般在 4、6 两步。那你这里的测试百度查询服务,是从 1-6 么?如果是,最好的是高速录像机录像 + 多次测试,从用户角度来看,更准确。 如果只需要 1-5,那直接 Jmeter 模拟请求即可。
爬虫的方法不大建议,因为爬虫是在 6 的基础上再增加了一个步骤的,耗时会比 1-6 要高一些,稍微不那么准确