JMeter发送get请求并分析返回结果

本文详细介绍了如何使用JMeter进行接口测试,从需求分析、接口文档理解到设计测试脚本,再到分析接口返回结果,提供了一个完整的GET请求测试案例,帮助读者掌握接口测试的核心技巧。
部署运行你感兴趣的模型镜像

在实际工作的过程中,我们通常需要模拟接口,来进行接口测试,我们可以通过JMeter、postman等多种工具来进行接口测试,但是工具的如何使用对于我们来说并不是最重要的部分,最重要的是设计接口测试用例的思路与分析结果的能力

以下通过几个方面来解析遇到接口测试我们应该如何设计测试用例并完成接口测试。

一、需求分析与接口文档分析

当你接手一个新的任务的时候,首先会有产品对测试、开发进行需求会议,在需求会议过后,你需要对需求里面提到的功能进行理解,整理,并明白需求实现的逻辑。

开发人员完成接口开发后,可将该接口进行提测,同时开发人员需要出具接口文档,接口文档的内容主要包括:接口地址、输入参数、输出参数、参数说明、请求方式,下面看一个真实的例子:

以下接口信息包括:接口名称、接口路径、请求参数名称、请求参数是否必填、请求参数示例、请求参数备注、返回数据名称、返回数据类型、返回数据是否必填、返回数据备注

 

开发人员提供的接口文档可能会多种多样,但是要查看主要内容是否缺失,如果主要内容缺失,需要让开发补齐缺失内容。

二、使用JMeter设计接口测试脚本

1、 配置好JMeter运行环境并启动JMeter

2、 新建线程组

测试计划右键à添加à线程(用户)à线程组

理解线程组:可以理解为一个线程为一个虚拟用户

 

3、 添加HTTP请求

在线程组右键——添加——取样器——HTTP请求

 

填写接口请求的内容

服务器名称或IP:指接口需要访问的项目目标地址(由开发提供),填写IP时不需要加“http://”, JMeter在运行这个接口的时候会自动拼接http

例如:wx.hx.com.cn  这个就算是我们的项目目标地址

端口号:如果开发提供的接口限定了固定的端口例如9090,那么这个地方就填写9090,如果没有限定固定的端口,就填写为空;

其中http的请求的端口默认为80,https的端口默认为443;http请求的端口可默认不填写,https请求的端口需要填写443

方法:根据接口协定进行选择,get或者post

路径:接口的具体路径,由接口路径+接口参数+接口参数值 组成

写法: servlet/json?funcNo=20970XX&i_channel_id=khlb-hcinvite

注意:参数与参数之间使用&,进行拼接;路径与参数之间使用?,进行拼接

Get请求的参数直接放到请求路径上面

 

4、 查看接口返回值

在线程组右键——添加——监听器——察看结果树

 

点击执行按钮,执行接口请求

 

请求结果:

请求成功:接口请求标题显示为绿色

请求失败:接口请求标题显示为红色

 

三、接口返回值分析

分析接口需要返回值

这个接口要求返回的目标值是:channel_id、bill_name、slogan、bill_path

分析接口返回值是否符合

{"error_info":"","dsName":["results"],"oldDsName":"DataSet","results":[{"bill_path":"http://192.168.11:8082/plat_files/upload/bill/20200511/202005111589166876961.png","bill_name":"邀请好友","slogan":"邀请好友","channel_id":"-1"}],"error_no":"0"}

比对两个值发现,我们的接口返回值里面有我们的目标值,那么这个接口就模拟成功了

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>嗯,用户正在询问如何使用JMeter发送WebService请求进行压力测试的方法。结合用户提供的多个引用内容,我需要整理出适合当前JMeter版本的解决方案。 用户引用的资料显示JMeter在3.2版本后移除了SOAP/XML-RPC Request取样器(引用[2]),而5.x版本则彻底移除了Custom SOAP Sampler(引用[3])。现在主流做法是通过HTTP Request模拟SOAP请求(引用[3]),这正好符合用户的需求。 从技术角度分析,SOAP协议本质上是XML格式的HTTP请求(引用[4]),因此完全可以用HTTP Request组件实现。关键点在于: - 必须正确设置SOAPAction请求头(引用[1]) - 消息体需严格遵循SOAP Envelope格式(引用[5]) - 需要使用POST方法(引用[4]) 用户可能遇到的主要难点是确定请求头和消息体的具体内容。引用[1]中的天气预报接口http://www.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl是个很好的示例,建议用户可以先用SoapUI测试该接口获取请求模板(引用[1][2])。 对于压力测试部分,需要强调线程组设置和监听器搭配使用。用户可能不了解如何查看压测结果,所以需要说明View Results Tree和Aggregate Report的区别:前者用于调试,后者用于性能分析(引用[3][4])。 考虑到用户是进行性能测试,要特别提醒SOAP接口压测时的注意事项: 1. 避免在压测时开启调试监听器 2. 通过BeanShell脚本解决可能的动态参数问题 3. 合理设置线程数避免阻塞目标服务器 用户可能还会关心如何验证请求正确性,所以准备在相关问题里补充调试技巧和结果验证方法。最后决定用天气预报接口作为示例,因为这个服务是公开可用的,用户能立即实践(引用[1])。 </think>根据最新JMeter版本(5.x)的实现方式,结合SOAP协议特性,以下是完整的操作指南: --- ### **一、JMeter发送WebService请求步骤** #### 1. **添加HTTP请求采样器** - 右键测试计划 → 添加 → 线程组 → 添加 → 采样器 → **HTTP请求** - 关键参数配置: ```yaml 协议: http/https 服务器名称: www.webxml.com.cn (示例) HTTP方法: POST 路径: /WebServices/WeatherWS.asmx ``` [^1][^3] #### 2. **设置SOAP请求头** - 添加HTTP信息头管理器: ```xml Content-Type: text/xml; charset=utf-8 SOAPAction: "http://WebXml.com.cn/getWeather" <!-- 具体方法名见WSDL --> ``` [^4][^5] #### 3. **构造SOAP消息体** - 在HTTP请求的**消息体数据**填入XML: ```xml <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getWeather xmlns="http://WebXml.com.cn/"> <cityCode>深圳</cityCode> <!-- 根据接口文档修改参数 --> </getWeather> </soap:Body> </soap:Envelope> ``` [^5] #### 4. **添加调试组件** - 查看请求树:添加 → 监听器 → **查看结果树** - 验证响应:检查返回的XML数据是否包含`<getWeatherResult>`等预期标签 --- ### **二、压力测试关键配置** ```mermaid graph LR A[线程组] --> B[HTTP请求] B --> C[HTTP信息头管理器] B --> D[响应断言] A --> E[聚合报告] A --> F[TPS监听器] ``` #### 1. **线程组设置** - 线程数:发用户数(如100) - 循环次数:持续请求次数 - 启动时间:控制压力上升速率(如30秒内启动100线程) #### 2. **添加性能监听器** - **聚合报告**:查看平均响应时间、吞吐量 - **响应时间图**:定位性能瓶颈 - **TPS**:监控每秒事务数 #### 3. **断言验证** - 添加XML断言:检查`//getWeatherResult/city`等关键节点是否存在 - 响应代码断言:验证HTTP状态码为200 --- ### **三、常见问题解决** 1. **请求失败404** - 检查WSDL地址是否正确(通过浏览器直接访问`.asmx?wsdl`验证)[^1] 2. **SOAPAction报错** - 从WSDL文件中搜索`<soap:operation soapAction="...">`获取正确值[^4] 3. **参数动态化** - 使用CSV文件存储参数:`${__CSVRead(city.csv,0)}` --- ### **压测优化建议** - 启用**Keep-Alive**降低连接开销 - 使用**HTTP缓存管理器**减少重复数据传输 - 分布式测试:通过`jmeter-server`跨多机施压[^3] > 示例:天气预报接口压测时,若吞吐量低于50TPS,需检查: > 1. 目标服务器带宽是否饱和 > 2. XML解析是否存在性能瓶颈 > 3. 数据库查询是否未走索引 --- **
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值