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

  可以说基于服务器的性能一般都是基于协议的,所以我们就需要懂协议,以下会以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_预习知识的更多相关文章

  1. JMeter性能测试的基础知识和个人理解

    JMeter性能测试的基础知识和个人理解 1. JMeter的简介   JMeter是Apache组织开发的开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常 ...

  2. 性能测试day02_后端网络协议架构

    接着第一天的尾,继续来学习性能测试,上一次说到性能要大致经历哪些阶段,那么我们也来看下行业的做法: 行业有两种做法,一个是TPC,另一个是SPEC: TPC:指定业务类型,获得该指定业务的性能指标,也 ...

  3. 性能测试的基础知识--QPS和TPS

    基本概念: QPS:Queries Per Second意思是“每秒查询率” ,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准. TPS:Transa ...

  4. 性能测试必备知识(2)- 查看 Linux 的 CPU 相关信息

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 查看系统 CPU 信息 cat /proc/ ...

  5. 性能测试必备知识(4)- 使用 stress 和 sysstat

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html stress 介绍 Linux 系统压力测试 ...

  6. 性能测试必备知识(5)- 深入理解“CPU 上下文切换”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 前言 上一篇文章中,举例了大量进程等待 CP ...

  7. 性能测试必备知识(6)- 如何查看“CPU 上下文切换”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 课前准备,安装 sysbench 下载 sy ...

  8. 性能测试必备知识(7)- 深入理解“CPU 使用率”

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 回顾 CPU 使用率是单位时间内 CPU 使 ...

  9. 性能测试必备知识(10)- Linux 是怎么管理内存的?

    做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 内存映射 日常生活常说的内存是什么 比方说, ...

随机推荐

  1. Request.QueryString()和Request()和Request.Form();

    一. querystring的用法及原理 当页面上的 FORM以 GET方式向页面发送请求数据 (如数据含有不安全字符,则浏览器先将其转换成 16进制的字符再传送,如空格被转成 %20)时, WEB ...

  2. hanlp源码解析之中文分词算法详解

    词图 词图指的是句子中所有词可能构成的图.如果一个词A的下一个词可能是B的话,那么A和B之间具有一条路径E(A,B).一个词可能有多个后续,同时也可能有多个前驱,它们构成的图我称作词图. 需要稀疏2维 ...

  3. mysql 备份与还原恢复

    一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldump命令的工作原理很简单.它先 ...

  4. 开源截图工具cutycapt的安装及使用

    之前在安装过程中碰到很多问题,也找了不少资料.现总结了下,给有需要的朋友.centos下安装cutycapt比较麻烦,需要先安装qt47,再下载cutycapt源码编译;而在ubuntu下安装cuty ...

  5. 使用 Kafka 在生产环境构建大规模机器学习

    智能实时应用为所有行业带来了革命性变化.机器学习及其分支深度学习正蓬勃发展,因为机器学习让计算机能够在无人指引的情况下挖掘深藏的洞见.这种能力正是多种领域所需要的,如非结构化数据分析.图像识别.语音识 ...

  6. python doc

    http://blog.51cto.com/lizhenliang/category16.html

  7. mycat 1.6 配置【仅学习测试配置使用】

    jdk 自行配置 mycat 1.6 点击下载 配置文件 schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:sch ...

  8. 关于Zookeeper选举机制

    zookeeper集群 配置多个实例共同构成一个集群对外提供服务以达到水平扩展的目的,每个服务器上的数据是相同的,每一个服务器均可以对外提供读和写的服务,这点和redis是相同的,即对客户端来讲每个服 ...

  9. [Java]JGit用法总结

    clone public static void gitClone(String remoteUrl, File repoDir) { try { Git git = Git.cloneReposit ...

  10. QQ在开发中的应用

    1 截图 2 快捷回复 1svn更新 2美术资源替换 3后端服务器模块确认 4开会吧 5策划更新