编程技术文章分享与教程

网站首页 > 技术文章 正文

JMeter系列(四)--HTTP请求组件详解

hmc789 2024-11-08 19:43:52 技术文章 1 ℃

http协议是接口测试、性能测试中使用最多的协议,那么在JMeter中和http协议的请求实现有关的组件有哪些呢?

一般来说,比较常用的有:

http请求

http信息头管理器

http请求默认值

HTTP cookie管理器

HTTP请求

首先我们来看看http请求的相关选项

基本:

名称:由用户自定义,用于在监听器组件中作为名称进行数据的分组统计用。

注释:由用户自定义,可以为空。

协议:http请求的协议,一般可填写的为http或者https,默认为http协议。

服务器名称或IP:填写的是URL中的域名部分。

比如:

www.baidu.com

192.168.1.100

端口号:填写是URL中的端口部分。如果服务器使用的端口为http默认对应的80或者https协议默认对应的443,则可以留空。

请求方法:根据实际的接口所使用的方法进行选择即可。

路径:URL中的路径部分。

对于get方法的请求,URL地址参数可以选择填写在路径中,也可以选择填写在下方的参数页中。

对于post方法的请求,URL地址参数部分只能填写在路径中。

内容编码:用来指定post方法时,request body的内容的编码。这表示JMeter在发送数据时会按照指定编码对内容进行编码之后再发送。

自动重定向:表示JMeter会自动根据响应头等信息进行重定向操作,且在结果中不会记录重定向的中间过程,只会记录最后一次请求的结果。

跟随重定向:表示JMeter会自动根据响应头等信息进行重定向操作,且在结果中会会记录重定向的中间过程。

使用KeepAlive:表示支持长连接。

对 POST 使用 multipart/form-data:该选项用于需要做文件上传类的请求时。一旦勾选了该选项,则JMeter会自动将参数和文件页的内容组装为混合表单格式的数据,且会自动生成Content-Type请求头(在勾选该选项的时候,切记不要手动添加Content-Type请求头)。

不勾选该选项,则参数部分将使用application/x-www-form-urlencoded格式组装并且发送。

与浏览器兼容的头:当使用multipart/form-data时,会隐藏Content-Type和 Content-Transfer-Encoding标头;仅发送Content-Disposition标头。


参数:一般分为两种情况。

当使用get方法时,可以在此处实现URL地址参数的设置,然后JMeter会自动进行URLencode处理进行发送。

当使用post方法时,仅当发送的请求为application/x-www-form-urlencoded或者 multipart/form-data时,才能使用参数进行请求主体的处理。

消息体数据:这个选项和参数选项不能同时使用。该选项表示用户自己指定需要发送的请求主体,相当于是raw数据,仅适用于post方法。使用该选项来发送数据时,一定要手动指定请求头Content-Type。

PS:

一般来说,像json、xml这样格式的请求数据是必须使用消息体数据选项的。

消息体数据也适用于所有类型的请求数据的发送,包括application/x-www-form-urlencoded和 multipart/form-data

文件上传:该选项仅适用于勾选了对 POST 使用 multipart/form-data选项时。

文件名称:文件路径

参数名称:接口中用来传递文件的参数名称,一般就叫"file",具体以实际接口为准。

MIME类型:即要上传的文件类型,比如image/jpeg之类,具体以实际情况为准。


高级:

客户端实现:可选的有java和httpclient4,默认为httpclient4.

超时:分连接超时和响应超时。注意单位是毫秒。

从HTML文件嵌入资源

一旦勾选从HTML文件获取所有内含的资源,则表示Jmeter将从http模式转换为HTML模式。

http模式:表示请求仅仅是一个http的请求,拿到http响应即结束。

html模式:表示会自动获取一个html页面中相关的静态资源。

并行下载:不勾选则是串行,勾选则是模拟浏览器的资源下载行为,并行请求静态资源,可以根据实际情况指定并行的数量。

PS:一般来说,接口测试是不需要获取html静态资源的。

性能测试角度,静态资源也主要是受到服务器的连接数和带宽的制约,一般也不建议进行测试。

网址必须匹配:URLs must match,这是用来限制静态资源的下载的,通过正则表达式的方式来进行限制。表示符合正则表达式的资源请求才会被下载。

URLs must not match:网址不匹配,这也是用来限制静态资源的下载的,通过正则表达式的方式来进行限制。表示符合正则表达式的资源请求不会被下载。

Source IP:源地址,该选项是用来实现IP欺骗的。该选项仅适用于HTTPclient4的实现,不适用于java的实现类型。

代理服务器:如果希望JMeter通过代理服务器去访问被测服务器,则可以在此处指定相关的代理服务器设置选项。

保存响应为MD5哈希:这表示不将响应直接保存到sampler result中,而是保存响应为对应32bit的MD5加密数据,该选项主要用于有大量响应数据的性能测试。

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

标签列表
最新留言