性能测试day02_预习知识

  在进入第二天的学习之前,我想我们需要提前先了解一下基础的知识,所以这一篇主要讲解的就是预习课程,关于协议和抓包的讲解(原理和工具)。

  可以说基于服务器的性能一般都是基于协议的,所以我们就需要懂协议,以下会以http协议作为基础进行讲解下:

  一、首先是HTTP协议的特点:

  1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST、PUT、DELETE等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

  2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

  3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

  4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
  5、支持B/S及C/S模式。

  二、HTTP的报文结构(fiddler抓取的)

  下面是请求头的字段解释:

  下面是响应头的字段解释:

如果遇到其它的字段头不懂的可以自行百度,这里只是提及一些主要的字段供大家了解。

  三、抓包工具的初探

  这里会提及一些工具,当然不会特别深入,主要是让大家学会抓包发包的过程,如果特别感兴趣可以百度进行深入研究,下面的抓包都是以我请求http://www.runoob.com/?s=cai为例。

  1.Wireshark抓包

请求出去后可以看到源地址和目的地址,第一条就是刚刚请求的过程,第二条则是服务器的返回。

一般我们抓HTTP不用Wireshark,一般抓取TCP、UDP协议用的比较多。

  2.Chrome抓包

浏览器抓包是我用的比较多的,因为非常方便,而且也只能抓基于浏览器的HTTP协议,并且还能模拟手机或Ipad设备。

记得勾选Preserve log,不然再次请求会把之前的请求的信息替换掉,下面的图为基本的请求信息,除此之外第二张图还能看到每个请求的耗时。

  耗时查看:

图中request sent代表发送请求的时间,Wating时间代表着服务器处理时间,content download代表下载时间(跟下载内容和网络有关)

  3.Fiddler抓包

fiddler是基于代理模式抓包的,一般开启fiddler之后就会自动设置浏览器的代理,端口默认为8888,同时可以抓取手机的包。

 

  fiddler功能较多,在这里不一一详细描述,有问题可以私撩我或者百度,下图也是抓取请求后查看详细的信息,而且也多种形态查看。

  四、发包初探

  1.fiddler发包

废话不多说,直接看下图即可fiddler中的Composer可以实现该功能,下图是发包的参数填写,一般我们可以将抓取到的包直接拖拽进来后修改再次发送即可。

 

发包完后查看新发出去的请求,此过程与之前的抓包查看一样就不多累赘了。

  2.Postman发包

postman发包跟之前发包差不多,只不过这里还可以做断言,如果有返回json的话还可以对返回的数据进行判断。

 

  3.Python发包

  下面简单的写了个get请求,post请求稍微多一点内容,若要做断言可以用unittest或者pyunit框架即可做到。

猜你喜欢

转载自www.cnblogs.com/leixiaobai/p/9259994.html