测试动态 / 测试知识 / 测试RESTful API和SOAP Web Services:LoadRunner协议选择和脚本编写
测试RESTful API和SOAP Web Services:LoadRunner协议选择和脚本编写
2026-01-29 作者:cwb 浏览次数:3

LoadRunner针对SOAP和RESTful这两种Web服务进行性能测试,协议选择、脚本开发思路完全不同。


SOAP Web Services (基于XML/SOAP/WSDL):LoadRunner首选协议Web Services 协议,soap_request 或可视化Service Call,通过导入WSDL文件自动生成调用框架,自动生成结构严谨的XML SOAP报文,对XML节点值进行参数化,从结构化的XML响应中提取数据。

RESTful API (通常基于HTTP/JSON):LoadRunner首选协议Web (HTTP/HTML) 协议,web_custom_request, web_url, web_submit_data等,通过录制HTTP流量或手动编写HTTP请求,需手动或参数化构建JSON/XML/文本报文,对URL、请求头、请求体进行参数化,从JSON、XML或文本响应中提取数据。


两种服务的测试方法说明:

如何测试 SOAP Web Services

SOAP协议规范、结构严谨,LoadRunner的Web Services协议能很好地支持。


1. 协议选择和脚本创建

启动VuGen,选择New Single Protocol Script (单协议脚本),在协议列表中选择Web Services。这是专门为基于WSDL的Web服务设计的协议,能自动解析接口定义。


2. 导入服务和生成脚本

点击 Manage Services -> Import。

在弹出窗口中,选择 URL,输入完整的WSDL地址(例如 http://zmtests.com/service?wsdl),点击 Import。

导入成功后,点击 Add Service Call,在弹出的界面中选择已导入的服务、端口和要测试的操作(Operation)。

在参数编辑界面,可以为每个输入参数设置具体的值,或选择 Auto Generate 自动生成。

点击确定,VuGen会自动生成一个包含 soap_request 函数调用的脚本。该函数会构建一个符合标准的SOAP信封(Envelope),无需手动拼接复杂的XML。


3. 脚本示例和优化

生成的脚本部分如下:


c

soap_request("StepName=MySOAPCall",

    "URL=http://zmtests.com/WebService.asmx",

    "SOAPEnvelope="

    "<?xml version=\"1.0\" encoding=\"utf-8\"?>"

    "<soap:Envelope ...>"

    "  <soap:Body>"

    "    <GetUserInfo xmlns=\"http://zmtests.com/\">"

    "      <UserId>{Parameter_UserId}</UserId>" // 参数化部分

    "    </GetUserInfo>"

    "  </soap:Body>"

    "</soap:Envelope>",

    "SOAPAction=http://zmtests.com/GetUserInfo",

    "ResponseParam=response",

    LAST);


参数化:将XML中的具体值(如 {Parameter_UserId})替换为参数,以实现不同用户使用不同数据。

关联:如果需要从响应中提取动态数据(如会话标识),可使用 web_reg_save_param_ex 等函数捕获XML响应中的特定节点值。

认证:若服务需要认证,可在请求前使用 web_set_user 设置用户名密码。


如何测试RESTful API

RESTful API基于HTTP协议,更灵活,通常使用JSON格式,因此选用通用的Web (HTTP/HTML) 协议来模拟。


1. 协议选择和脚本创建

在VuGen中创建新脚本,选择 Web (HTTP/HTML) 协议。这是最常用、最通用的协议,能够模拟所有基于HTTP的交互。


2. 脚本生成方式

推荐方式(手动编写/复制):使用web_custom_request函数。这个函数自由度极高,可以完全自定义请求方法、URL、请求头和请求体。可以直接从开发人员提供的API文档、或通过工具(如Postman)复制出原始的HTTP请求,稍加修改后嵌入这个函数。

辅助方式(录制):如果API有对应的网页前端,可以通过浏览器操作进行录制。但纯API调用通常手动编写更高效。


3. 脚本和优化

测试JSON格式REST API的脚本如下:


c

lr_start_transaction("api_post_user");

// 设置请求头,表明发送和接收JSON

web_add_header("Content-Type", "application/json");

web_add_header("Accept", "application/json");

// 发起自定义请求

web_custom_request("create_user",

    "URL=http://api.zmtests.com/users",

    "Method=POST",

    "Body={\"name\": \"{Name}\", \"job\": \"{Job}\"}", // 请求体参数化

    LAST);

lr_end_transaction("api_post_user", LR_AUTO);


参数化:对URL路径、查询参数、请求体(JSON串)中的值进行参数化。对于复杂的动态数据(如从数据库实时获取),可结合 lr_db_connect、lr_db_executeSQLStatement 等数据库函数实现。

关联:从JSON响应中提取数据,使用 web_reg_save_param_ex 并配合 "LB/UB" 或正则表达式来捕获值。

事务与集合点:使用 lr_start_transaction 和 lr_end_transaction 标记要监控的业务操作,使用 lr_rendezvous 设置集合点模拟瞬间高并发。


测试总结

无论是测试SOAP还是RESTful服务,以下原则都通用:


深入了解了系统:开始测试前必须向开发人员确认服务使用的准确协议和数据格式。

从单用户调试开始:保证单个虚拟用户的脚本能成功回放,再进行并发测试。

加入检查点:使用web_reg_find等函数验证返回结果中是否包含关键文本,保证业务逻辑正确。

模拟真实场景:通过参数化、使用不同的测试数据,避免因缓存导致的性能假象。

资源管理:像数据库连接这类资源,应在vuser_init中建立,在vuser_end中释放。


SOAP服务测试是利用Web Services协议和WSDL,实现高度自动化的脚本生成;而RESTful API测试则更依赖对HTTP协议和Web (HTTP/HTML)协议下函数的灵活运用。

文章标签: 软件测试 测试工具
热门标签 换一换
第三方软件国产化测试 第三方信创测试 CNAS软件测评报告 CMA软件测评报告 首版次软件认定 软件结题验收 软件测试报告书 软件质量检测 数据库测试 H5应用测试 软件质检机构 第三方质检机构 第三方权威质检机构 信创测评机构 信息技术应用创新测评机构 信创测试 软件信创测试 软件系统第三方测试 软件系统测试 软件测试标准 工业软件测试 软件应用性能测试 应用性能测试 可用性测试 软件可用性测试 软件可靠性测试 可靠性测试 系统应用测试 软件系统应用测试 软件应用测试 软件负载测试 API自动化测试 软件结题测试 软件结题测试报告 软件登记测试 软件登记测试报告 软件测试中心 第三方软件测试中心 应用测试 第三方应用测试 软件测试需求 软件检测报告定制 软件测试外包公司 第三方软件检测报告厂家 CMA资质 软件产品登记测试 软件产品登记 软件登记 CNAS资质 cma检测范围 cma检测报告 软件评审 软件项目评审 软件项目测试报告书 软件项目验收 软件质量测试报告书 软件项目验收测试 软件验收测试 软件测试机构 软件检验 软件检验检测 WEB应用测试 API接口测试 接口性能测试 第三方系统测试 第三方网站系统测试 数据库系统检测 第三方数据库检测 第三方数据库系统检测 第三方软件评估 课题认证 第三方课题认证 小程序测试 app测试 区块链业务逻辑 智能合约代码安全 区块链 区块链智能合约 软件数据库测试 第三方数据库测试 第三方软件数据库测试 软件第三方测试 软件第三方测试方案 软件测试报告内容 网站测试报告 网站测试总结报告 信息系统测试报告 信息系统评估报告 信息系统测评 语言模型安全 语言模型测试 软件报告书 软件测评报告书 第三方软件测评报告 检测报告厂家 软件检测报告厂家 第三方网站检测 第三方网站测评 第三方网站测试 检测报告 软件检测流程 软件检测报告 第三方软件检测 第三方软件检测机构 第三方检测机构 软件产品确认测试 软件功能性测试 功能性测试 软件崩溃 稳定性测试 API测试 API安全测试 网站测试测评 敏感数据泄露测试 敏感数据泄露 敏感数据泄露测试防护 课题软件交付 科研经费申请 软件网站系统竞赛 竞赛CMA资质补办通道 中学生软件网站系统CMA资质 大学生软件网站系统CMA资质 科研软件课题cma检测报告 科研软件课题cma检测 国家级科研软件CMA检测 科研软件课题 国家级科研软件 web测评 网站测试 网站测评 第三方软件验收公司 第三方软件验收 软件测试选题 软件测试课题是什么 软件测试课题研究报告 软件科研项目测评报告 软件科研项目测评内容 软件科研项目测评 长沙第三方软件测评中心 长沙第三方软件测评公司 长沙第三方软件测评机构 软件科研结项强制清单 软件课题验收 软件申报课题 数据脱敏 数据脱敏传输规范 远程测试实操指南 远程测试 易用性专业测试 软件易用性 政府企业软件采购验收 OA系统CMA软件测评 ERP系统CMA软件测评 CMA检测报告的法律价值 代码原创性 软件著作登记 软件著作权登记 教育APP备案 教育APP 信息化软件项目测评 信息化软件项目 校园软件项目验收标准 智慧软件项目 智慧校园软件项目 CSRF漏洞自动化测试 漏洞自动化测试 CSRF漏洞 反序列化漏洞测试 反序列化漏洞原理 反序列化漏洞 命令执行 命令注入 漏洞检测 文件上传漏洞 身份验证 出具CMA测试报告 cma资质认证 软件验收流程 软件招标文件 软件开发招标 卓码软件测评 WEB安全测试 漏洞挖掘 身份验证漏洞 测评网站并发压力 测评门户网站 Web软件测评 XSS跨站脚本 XSS跨站 C/S软件测评 B/S软件测评 渗透测试 网站安全 网络安全 WEB安全 并发压力测试 常见系统验收单 CRM系统验收 ERP系统验收 OA系统验收 软件项目招投 软件项目 软件投标 软件招标 软件验收 App兼容性测试 CNAS软件检测 CNAS软件检测资质 软件检测 软件检测排名 软件检测机构排名 Web安全测试 Web安全 Web兼容性测试 兼容性测试 web测试 黑盒测试 白盒测试 负载测试 软件易用性测试 软件测试用例 软件性能测试 科技项目验收测试 首版次软件 软件鉴定测试 软件渗透测试 软件安全测试 第三方软件测试报告 软件第三方测试报告 第三方软件测评机构 湖南软件测评公司 软件测评中心 软件第三方测试机构 软件安全测试报告 第三方软件测试公司 第三方软件测试机构 CMA软件测试 CNAS软件测试 第三方软件测试 移动app测试 软件确认测试 软件测评 第三方软件测评 软件测试公司 软件测试报告 跨浏览器测试 软件更新 行业资讯 软件测评机构 大数据测试 测试环境 网站优化 功能测试 APP测试 软件兼容测试 安全测评 第三方测试 测试工具 软件测试 验收测试 系统测试 测试外包 压力测试 测试平台 bug管理 性能测试 测试报告 测试框架 CNAS认可 CMA认证 自动化测试
专业测试,找专业团队,请联系我们!
咨询软件测试 400-607-0568