浅谈取样器之HTTP请求

浅谈取样器之HTTP请求

HTTP请求(HTTP Request) 是进行Web应用负载测试时最常用的取样器类型,允许用户模拟各种HTTP请求,如GET、POST等,以评估服务器在不同负载条件下的表现。

添加HTTP请求

  1. 线程组:在刚创建的线程组上右键 > “添加(Add)” > “取样器(Sampler)” > “HTTP请求(HTTP Request)”。
  2. 配置HTTP请求:
    ○ 名称(Name):为取样器提供一个有意义的名称,便于识别。
    ○ 注释(Comments):可选,用于记录测试目的或额外信息。
    ○ 协议(Protocol):选择HTTP或HTTPS。
    ○ 服务器名称或IP(Server Name or IP):输入目标服务器的域名或IP地址。
    ○ 端口(Port):默认情况下,HTTP为80,HTTPS为443,可根据实际情况调整。
    ○ 协议(Protocol):选择HTTP或HTTPS。
    ○ 方法(Method):请求方法,如GET、POST、PUT等。
    ○ 路径(Path):目标URL的路径部分,不包括服务器地址和端口。
    ○ 内容编码(Content Encoding):如UTF-8,根据服务器需求设置。
    ○ 自动重定向(Automatic Redirection):只针对Get和Head请求,自动重定向到最终目标页面,但Jmeter不记录重定向的中间过程,只记录最终返回结果。在察看结果树中,只能看到的服务器返回
    ○ 跟随重定向:当响应是3XX时,自动跳转到目标地址。Jmeter记录中间过程。在察看结果树中,可看到所有请求从服务器返回
    ○ 使用KeepAlive:使用保活
    ○ 对Post使用multipart/form-data:表单方式提交
    ○ 浏览器兼容:当勾选multipart/form-data时,勾选此项会截掉http请求头中的Content-Type和Content-Transfer-Encoding,而只发送Content-Disposition部分。
    ○ 参数(Parameter):在请求中发送带参数的URL ,JMeter提供了一个简单的对参数化的方法。用户可以将URL中所有参数设置在本表中,表中的每一行是一个参数值对(对应RUL中的 名称1=值1)。编码这个选项最好勾选,因为如果参数值内含有ASCII Control Chars或者Non-ASCII characters或者其他符号的话,如果不勾选会导致发送失败(乱码问题),勾选的话会自动将含有的这些特殊符号进行编码
    ○ 消息体数据(Body Data):通请求一起发送的数据消息,这里可以支持多种数据格式 json、xml等。
    ○ 文件上传(File Upload):在请求中发送文件。通常HTTP文件上传行为可以通过这种方式模拟,参数名称就是发送文件对应的参数,MINE Type为资源媒体类型。。

高级配置

该部分内容摘自,内容已经比较全面:
HTTP高级设置说明

客户端实现(Client implementation)

● 实现( Implementation):发送http请求的方式。可选项为Java和HttpClient4,默认为HttpClient4。
HttpClient4是Java工具包实现的请求方式,是基于.net工具包二次定制,效率高。
如果是上传文件的话一定要选择,否则请求发送成功了,其实文件并未上传成功。
● 超时(毫秒)<Timeouts(milliseconds)>:超时设置。
链接(Connect):连接超时时间,单位为毫秒;
响应(Response):响应等待超时时间,单位为毫秒;

从HTML文件嵌入资源(Embedded Resources from HTML Files)

● 从HTML文件获取所有内含的资源(Retrieve All Embedded Resources):
当该选项被选中时,JMeter在发出HTTP请求并获得响应的HTML文件内容后,还对该HTML进行解析,并获取HTML中包含的所有资源(图片、flash等),默认不选中。
如果用户只希望获取页面中的特定资源,可以在后边的URLs must match文本框中,填入需要下载的特定资源表达式,这样只有能匹配指定正则表达式的URL指向资源会被下载。
● 并行下载(Parallel downloads):是否使用自设资源池,勾选后可设置大小。
● 数量(Number):资源池大小,默认设置为6。
● 网址必须匹配(URLs must match):URL匹配过滤,填写此项则只会下载与此内容项匹配的url的资源。

源地址

只用于http协议且Implementation为HttpClient4的情况,此属性用于启用IP欺骗,会重写了这个http请求使用的默认本地IP地址。
用于JMeter主机具有多个IP地址的情况。该值可以是主机名、IP地址或网络接口设备,如“ey0”或“l0”或“wlan0”。
可以设置多个,防止IP地址被服务端拉黑。
IP/主机名(IP/Hostname):使用特定的IP地址或(本地)主机名。
设备(Device):选择该接口的第一个可用地址,该设备可以是IPv4或IPv6。
设备IPV4:选择名称设备的IPv4地址。
设备IPV6:选择名称设备的IPv6地址。

代理服务器

不想用本机的地址来发送Http请求,而想使用代理服务器时则填写。
服务器名称或IP:代理服务器的名称或者IP地址。
端口号:该代理的端口号。
用户名:使用该代理的用户名。
密码:用户密码。

保存响应为MD5哈希

选中该项,在执行时仅记录服务端响应数据的MD5值,而不记录完整的响应数据。在需要进行数据量非常大的测试时,建议选中该选项,以减少取样器记录响应数据的开销。
到这里“HTTP请求”这个取样器介绍完了,每个取样器的页面和用法都不用,这里不能一一进行说明,以后再用到哪种取样器(Samplers)会单独讲解。

应用实例

情况1:自动重定向和跟随重定向

使用SpingBoot框架编写如下测试脚本

 @GetMapping(value = "/welcome")
    public String welcome(
### 关于ArcGIS License Server无法启动的解决方案 当遇到ArcGIS License Server无法启动的情况,可以从以下几个方面排查并解决问题: #### 1. **检查网络配置** 确保License Server所在的计算机能够被其他客户端正常访问。如果是在局域网环境中部署了ArcGIS Server Local,则需要确认该环境下的网络设置是否允许远程连接AO组件[^1]。 #### 2. **验证服务状态** 检查ArcGIS Server Object Manager (SOM) 的运行情况。通常情况下,在Host SOM机器上需将此服务更改为由本地系统账户登录,并重启相关服务来恢复其正常工作流程[^2]。 #### 3. **审查日志文件** 查看ArcGIS License Manager的日志记录,寻找任何可能指示错误原因的信息。这些日志可以帮助识别具体是什么阻止了许可服务器的成功初始化。 #### 4. **权限问题** 确认用于启动ArcGIS License Server的服务账号具有足够的权限执行所需操作。这包括但不限于读取/写入特定目录的权利以及与其他必要进程通信的能力。 #### 5. **软件版本兼容性** 保证所使用的ArcGIS产品及其依赖项之间存在良好的版本匹配度。不一致可能会导致意外行为完全失败激活license server的功能。 #### 示例代码片段:修改服务登录身份 以下是更改Windows服务登录凭据的一个简单PowerShell脚本例子: ```powershell $serviceName = "ArcGISServerObjectManager" $newUsername = ".\LocalSystemUser" # 替换为实际用户名 $newPassword = ConvertTo-SecureString "" -AsPlainText -Force Set-Service -Name $serviceName -StartupType Automatic New-ServiceCredential -ServiceName $serviceName -Account $newUsername -Password $newPassword Restart-Service -Name $serviceName ``` 上述脚本仅作为示范用途,请依据实际情况调整参数值后再实施。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔波儿灞爱霸波尔奔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值