Jmeter压测webservice

该博客主要围绕Jmeter学习展开,包含JMeter4.x基础知识讲解和压测实战的视频教程。还介绍了使用vs编写webservice测试接口的步骤,如创建线程组、Http请求、添加察看结果树等,最后启动查看结果。

学习章节:

Jmeter\2018视频教程\第2章 章节二 JMeter4.x基础知识讲解和压测实战\7、使用SpringBoot 2.0快速编写API测试接口.mp4&8、创建Jmeter测试计划,快速压测一个接口.mp4

学习内容:

vs编写webservice测试接口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebServiceDemo
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            Console.WriteLine("HelloWorld");
            return "Hello World";
        }

        [WebMethod]
        public List<string> GetUsers()
        {
            List<string> list = new List<string>();
            list.Add("zhang");
            list.Add("wang");
            list.Add("li");
            list.Add("zhao");
            Console.WriteLine("GetUsers");
            return list;
        }
        [WebMethod]
        public object Login(string name, string pwd)
        {

            if (name == "admin" & pwd == "admin")
            {
                return "success";
            }
            else
            {
                return "fail";
            }

        }

    }
}

1.创建线程组(测试计划->右键添加->Threads(Users)->线程组)

2.创建Http请求(线程组->右键添加->Sampler->HTTP请求)

3.添加察看结果树(线程组->右键添加->监听器->察看结果树)

4.启动,查看结果

<think>嗯,用户询问如何使用JmeterWebservice单个接口进行,我需要结合站内引用内容梳理出系统性的操作指引。观察引用内容,发现[1][2]都提到Jmeter支持Webservice脚本试,[4]则详细说明了试的通用设置逻辑。 用户明确要求"单个接口"的方法,这意味着需要聚焦三个核心环节:Webservice请求构造、力参数配置和结果分析。引用[2]中提到的"做webservice脚本"是基础,但未展开具体操作步骤,这里需要补充: - WSDL导入方式(HTTP请求或SOAP/XML-RPC Request取样器) - 必需的SOAPAction头设置(引用[1]提到的加header操作) - XML请求体的参数化处理(引用[2]的参数化技术) 试配置部分可直接应用引用[4]的框架: - 线程组设置需明确"固定参数"(用户指定单个接口) - 阶梯式加策略(Ramp-up Period设置) - 聚合报告的关键指标解读(TPS/响应时间) 特别要注意引用[3]提示的Linux准备:若用户需要在服务器环境执行,必须提前部署JDK和Jmeter环境。考虑到用户是接口级,建议在非GUI模式运行试(bin/jmeter -n -t ...)。 最后需要强调Webservice试的特性:不同于普通HTTP接口,必须验证XML响应结构和命名空间,断言建议使用XPath提取器(引用[1][2]提到的关联技术)。可以追问用户是否涉及WS-Security等扩展协议,这对消息头构造有影响。 相关问题设计要覆盖用户可能的延伸需求:性能瓶颈定位(结合引用4的结果分析)、分布式(引用3的Linux部署)、安全认证(引用1的权限认证)等维度。 </think>以下是根据您的要求整理的 **JmeterWebservice单个接口的详细步骤**,结合站内引用内容整理: --- ### **一、前准备** 1. **环境部署** - 安装JDK(必须环境)[^2][^3] - 下载Jmeter缩包,解即可使用(支持Windows/Linux/MacOS)[^2] - Linux系统需配置环境变量或进入`bin/`目录执行命令[^3] 2. **确认目标** - 明确接口URL、请求参数(固定或随机化)[^4] - 定义并发数、TPS目标、响应时间要求[^4] --- ### **二、创建Webservice脚本** 1. **添加线程组** - 右键试计划 → 添加 → Threads → **线程组** - 设置参数: - **线程数**(虚拟用户并发数) - **Ramp-Up时间**(秒):逐步启动线程的时长(如100线程设10秒=每秒启动10个)[^4] - **循环次数**:单线程执行次数(总请求量=线程数×循环次数)[^4] 2. **添加Webservice请求** - 右键线程组 → 添加 → 取样器 → **SOAP/XML-RPC Request** - 关键配置: | 参数 | 说明 | |---------------|----------------------------------------------------------------------| | URL | Webservice接口地址(如`http://example.com/service?wsdl`) | | SOAP/XML-RPC Data | 输入完整的SOAP请求XML(可通过SoapUI获取模板) | | Send SOAPAction | 勾选并填写`Header`中的SOAPAction值(通常为接口方法名)[^1] | 3. **添加请求头管理(可选)** - 右键请求 → 添加 → 配置元件 → **HTTP信息头管理器** - 添加Header:`Content-Type: text/xml; charset=utf-8` - 权限认证:如需Token,在Header中添加`Authorization`[^1][^2] --- ### **三、增强脚本功能** 1. **参数化** - 使用**CSV Data Set Config**读取外部文件,动态替换XML中的参数(如订单ID、用户名)[^1][^2] 2. **关联提取** - 若响应需用于后续请求,添加**后置处理器** → **正则表达式提取器** 或 **JSON提取器**[^1][^2] 3. **添加断言** - 右键请求 → 添加 → 断言 → **响应断言** - 检查XML响应中是否包含成功标签(如`<result>true</result>`)[^1] --- ### **四、配置参数** 1. **调度器设置**(控制时长) - 勾选线程组中的 **"调度器"** - 设置持续时间(如1800秒=30分钟)或结束时间[^4] 2. **监听结果** - 添加监听器: - **聚合报告**(TPS、响应时间、错误率) - **察看结果树**(调试用,正式时禁用) - **图形结果**(可视化趋势)[^4] --- ### **五、执行与分析** 1. **启动方式** - 图形界面:点击工具栏 **▶** 按钮 - 命令行(推荐Linux): ```bash jmeter -n -t test.jmx -l result.jtl ``` `-n`:非GUI模式;`-t`:脚本路径;`-l`:结果文件[^3] 2. **关键指标分析** - **TPS**:每秒处理事务数(目标值需提前设定[^4]) - **响应时间**:95%请求应低于阈值(如200ms) - **错误率**:高于1%需排查接口/脚本问题 > ⚠️ **注意事项** > - 正式时**禁用监听器**(尤其察看结果树),减少资源消耗[^4] > - Linux需用命令行模式,避免GUI占用资源[^3] > - 参数化文件建议放Linux本地,避免网络延迟干扰 --- ### **六、常见问题解决** - **乱码问题**:在`jmeter.properties`中设置`sampleresult.default.encoding=UTF-8` - **连接超时**:在SOAP请求中调整 **连接超时** 和 **响应超时** 参数 - **XML解析失败**:检查SOAP请求体格式是否正确(命名空间、标签闭合) ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值