jmeter基本用法

JMeter最基本的操作有三个步骤:

jmeter中的快捷键:

ctrl + s  保存

ctrl + e 清除

ctrl + r 运行

ctrl + t 禁用  启用

jmeeter是用JAVA写的所以使用前一定要安装JDK

  • 先添加一个线程组。
  • 添加HTTP请求。
  • 添加查看结果树。

1.添加线程组

在测试计划下新建一个线程组

 

 

 

2.添加HTTP请求

在线程组下添加HTTP请求

 3.添加察看结果树

 

 

 添加完这三样组件,就可以发送Http的请求了,想要编写接口脚本,需要先熟悉HTTP协议的基础知识。

JMeter常见的请求方式

http请求方式有get、post、put、delete等多种,最常用的就是get和post

get请求和post请求的区别:1、GET请求一般用去请求获取数据,

        POST一般作为发送数据到后台时使用

2、GET请求也可传参到后台,但是其参数在浏览器的地址栏的url中可见,所以隐私性安全性较差,且参数长度也是有限制的

        POST请求传递参数放在Request body中,不会在url中显示,比GET要安全,且参数长度无限制

3、GET请求刷新浏览器或回退时没有影响

        POST回退时会重新提交数据请求

4、GET 请求可被缓存

        POST 请求不会被缓存

5、GET 请求保留在浏览器历史记录中

       POST 请求不会保留在浏览器历史记录中

6、GET 请求可被收藏为书签

        POST 不能被收藏为书签

7、GET请求只能进行url编码(application/x-www-form-urlencoded)

        POST支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。)

8、GET请求比较常见的方式是通过url地址栏请求

        POST最常见是通过form表单发送数据请求

 



1.发送Get请求

利用抓包工具查看数据

 

 

 

 

 

 把数据填写到jmeter中然后点运行(注意填写的过程中不要有多余的空格)(get请求的参数可以放在路径后面)

 

 

 

 

 

 2.发送Post请求

post 请求的数据类型 :1application/x-www-form-urlencoded

                                     2application/json

所以如果是post 请求,首先要看 Content-Type 是什么样的数据类型,

1.如果是 /x-www-form-urlencoded 类型的,把数据直接填写在 “参数”中,可以不用加信息头管理器,因为 jmeter 工具默认发送的数据类型就是x-www-form-urlencoded。
2.如果是 json 类型的,那么要加上信息头管理器,把数据填写在 “消息体数据中”

其中请求头中 比较重要的有两个

Content-Type : 发送 post 请求的时候,数据类型的声明 

User-Agent : 声明客户端类型 

利用抓包工具查看数据

可以看到类型为json,所以需要1.加上信息头管理器。2.把body数据填写在 “消息体数据中”

 

 

 

 

 

 怎么判断 接口有没有成功

查看结果树 - 绿色 

本质 - 是否实现了接口的业务功能

 配置元中的数据是优先运行的。

注意要加HTTP Cookie管理器,这个是全局的,只要是一个线程组就可以。(添加后Jmeter就相当于于浏览器,自动保持登录。)

 

函数的添加

 

 

 信息头管理器(信息头管理器放在上面是下面所有的HTTP都用的是这个)

 

 我们学过HTTP协议的基础知识,HTTP有请求行,请求头,空一行以及body组成。请求头中比较重要的值是user-agent、content-type以及sign签名等。User-agent声明是通过客户端进行访问。
HTTP协议发送请求给服务器的时候,会发送请求行、请求头以及请求体等信息。请求中的参数正确,请求不一定执行成功,还要看请求头是否正确。请求头也正确了,这样才能告诉服务器,我们的请求是合法的。

JMeter发送的请求,content-type默认的格式是www-form-urlencode格式,如果要发送json格式的请求,那么就要定义信息头管理器。
看一下禁用学校的请求:

 

再对比抓包(有接口文档就不用抓包了)

 

请求行和请求体都没有错,但是查看结果树报错了。在这里也总结一下:接口报错要怎么办?

1.查看结果树

先看一下“取样器结果”,在里面可以看到大概的信息,然后重点是看请求,一个个对比,看看请求行,请求体,请求头是否都正确了。

信息头中content-type类型不对,因为禁用的接口,content-type数据类型是json类型,所以要在请求头中加上Content-Type: application/json

2.最后看一下“响应数据”

看看响应有什么有用的提示。

 

加上信息头管理器后,请求就发送成功了。
要注意加信息头管理器的位置,如果只想对单个请求起作用,那么信息头管理器就加在请求里面。
如果信息头管理器放在测试计划下,看图

 

这样的话信息头管理器中定义的信息头,线程组中的所以请求都会继承。登录、新建学校、禁用学校的信息头都会继承刚才定义的信息头。
存在的问题是,登录和新建学校的接口的请求方式是Content-Type: application/x-www-form-urlencoded格式的,这种情况怎么办呢?

跟请求HTTP请求默认值一样的思路:

如果接口的请求格式是application/json类型的多,那么信息头管理器就放在测试计划上面,线程组中的请求如果有的请求是application/x-www-form-urlencoded格式的,那么在该请求里面加一个信息头管理器,名称和值填上Content-Type: application/x-www-form-urlencoded即可

 

 

请求默认值

 

 

添加单个HTTP请求默认值元素,并在其中填写“服务器名称或IP ”字段。 ,添加25个HTTP请求控制器时,请将“服务器名称或IP ”字段保留为空。控制器将从HTTP Request Defaults元素继承此字段值。



举个实际工作的例子:

一个项目一般会有超过一百个的接口,接口的协议、域名、端口号一般都是一样的,只是请求路径,请求方式、参数等不一样。那么我们在请求默认值中设置好协议、域名以及端口号,后面的请求就会继承这三个元素,不需要再写了。
还有一个好处就是,当服务器名称改变了,我们只需要更改默认请求中的值即可,比如从测试环境的接口切换到正式环境。



1、HTTP请求默认值

在请求默认值中填写好协议、服务器名称以及端口号。



去看登录以及新建学校的请求,登录请求中,协议、服务器名称、端口号就不需要再写了。同理,新建学校的请求也是一样,不需要再写了。



2、HTTP请求默认值

还有一种常用的用法:比如项目中有些接口调了另外一个项目的接口,那么服务器名称以及端口号就不一样了。那么在sampler请求中填写了服务器名称、端口号,就是以sampler中填写的为主。

比如:新建学校的请求中服务器名称改为www.baidu.com



看一下结果:新建学校的请求,端口号是继承了请求默认值的,因为新建学校的请求中没写端口号。服务器名称就变为了www.baidu.com了。

以上就是HTTP默认请求值得常规用法。

 

posted @ 2021-11-23 16:30  一颗大汤圆  阅读(1943)  评论(0编辑  收藏  举报