性能测试day02_预习知识
Posted leixiaobai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能测试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框架即可做到。
以上是关于性能测试day02_预习知识的主要内容,如果未能解决你的问题,请参考以下文章