zoukankan      html  css  js  c++  java
  • jmeter 协议到脚本编写

    1.HTTP 类型的脚本:

      http 协议在我们工作中很常用,也是面试的重点之一,所以本手册也 会相对详细的讲解下;

    1.1http 协议的简介:

      HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的 缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。 HTTP 是一个基于 TCP/IP 通信协议来传递数据(HTML 文件, 图片文 件, 查询结果等)。 HTTP 是一个属于应用层的面向对象的协 议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。目前 在 WWW 中使用的是 HTTP/1.0 的第六版,目前已经普遍使用 HTTP1.1. 上面的解释是一般性的 http 介绍.

    1.2Http 请求过程:

      网址中输入域名,首先会经过 DNS 的域名解析拿到具体的 ip 地址。 随后客户端和服务端开始通过三次握手来开始建立连接,连接建立 成功之后,客户端将包装好的 http 请求传输到服务端,服务端处理 后再将数据返回给客户端。当客户端或者服务端不再有数据需要发 送给对方的时候,就会开始发起四次回收以断开连接。

    1.3Http 请求过程细节:

      DNS 解析:

          a.首先会搜索浏览器自身的 DNS 缓存(缓存时间比较短,大 概只有 1 分钟,且只能容纳 1000 条缓存)

          b.如果浏览器自身的缓存里面没有找到,那么浏览器会搜索 系统自身的 DNS 缓存

          c.如果还没有找到,那么尝试从 hosts 文件里面去找

          d.在前面三个过程都没获取到的情况下,就递归地去域名服 务器去查找

      TCP 连接建立(三次握手):

                拿到域名对应的 IP 地址之后,User-Agent(一般指浏览器) 会以一个随机端口(1024<端口<65535)向服务器的 WEB 程序 (常用的有 httpd,nginx)等            的 80 端口。这个连接请求(原 始的 http 请求经过 TCP/IP4 层模型的层层封包)到达服务器 端后(这中间有各种路由设备,局域网内除外),进入到网             卡,然后是进入到内核的 TCP/IP 协议栈(用于识别连接请 求,解封包,一层一层的剥开),还有可能要经过防火墙的过 滤,最终达到 WEB 程序,最终建            立了 TCP/IP 的连接

      发起 HTTP 请求:HTTP 请求报文由三部分组成:请求行,请求头、空格、请求

          请求行:用于描述客户端的请求方式(GET/POST 等),请求 的资源名称(URL)以及使用的 HTTP 协议的版本号

          请求头:用于描述客户端请求哪台主机及其端口,以及客户 端的一些环境信息等

          空行:空行就是 (POST 请求时候有)

          请求正文:当使用 POST 等方法时,通常需要客户端向服务器 传递数据。这些数据就储存在请求正文中(GET 方式是保存在 url 地址后面,不会放到这里)

      post和get区别:请求包含三个部分:请求行、请求头、空格、消息体,比之 前的 GET 请求多了一个请求消息,其中 请求头和消息体之 间用一个空行分割。POST 请求的参数不          在 URL中,而是在 消息体中,请求头中多了一项 Content-Length 用于表示消 息体的字节数,这样服务器才能知道请求是否发送结束。这 也就是 GET 请求和            POST 请求的主要区别

      那么起始行中的请求方法有哪些种呢?

        GET: 完整请求一个资源 (常用)

        HEAD: 仅请求响应首部

        POST:提交表单 (常用)

        PUT: 上传文件(但是浏览器不支持该方法)

        DELETE:删除

        OPTIONS:返回请求的资源所支持的方法的方法

        TRACE: 追求一个资源请求中间所经过的代理(该方法不能 由浏览器发出)

      服务器响应 http 请求,浏览器得到 html 代码:

        HTTP 响应也由三部分组成:状态行,响应头,空格,消息体 状态行包括:协议版本、状态码、状态码描述

          状态码:状态码用于表示服务器对请求的处理结果

            1xx:指示信息——表示请求已经接受,继续处理

            2xx:成功——表示请求已经被成功接收、理解、接受。

            3xx:重定向——要完成请求必须进行更进一步的操作

            4xx:客户端错误——请求有语法错误或请求无法实现

            5xx:服务器端错误——服务器未能实现合法的请求。

      服务器关闭 TCP 连接:

        一般情况下,一旦 Web 服务器向浏览器发送了请求数据它 就要关闭 TCP 连接,然后如果浏览器或者服务器在其头信息 加入了这行代码: Connection:keep-alive,TCP       连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

    1.4http 脚本编写:

      添加线程组:

        

       添加 http 信息头:

        

       添加 http sampler:

        

       填写 HTTP Sampler 中的信息:

        

       添加监听器:

        

       线程组参数中填写模拟线程数:

        

       运行脚本:

        

       查看运行:

        

       

          

  • 相关阅读:
    mybatis动态sql中的两个内置参数(_parameter和_databaseId)
    Vue.js项目部署在Tomcat服务器上
    Vue2.0 + ElementUI的+ PageHelper实现的表格分页
    mybatis中使用mysql的模糊查询字符串拼接(like)
    C++循环链表解决约瑟夫环问题
    Nginx源码分析-ngx_module_s结构体
    设计模式(一)工厂模式Factory(创建型)(转)
    网络编程--套接字选项(一)
    Linux阵列 RAID详解 (转)
    HDFS RAID实现方案(转)
  • 原文地址:https://www.cnblogs.com/anhao-world/p/13445175.html
Copyright © 2011-2022 走看看