如何为OSB 11gR1未暴露的WSDL代理服务创建模拟测试
当然可以!哪怕你的OSB 11gR1代理服务没对外暴露,完全能用Service Bus Console(SBConsole)创建模拟器来做测试。下面我给你一步步拆解操作流程,还有怎么搭建对应的模拟测试场景。
一、先确认必备前提
动手前先检查这两点:
- 你已经在OSB里建好目标代理服务,而且它关联了有效的WSDL(模拟器得靠WSDL里的操作、消息结构来生成模拟逻辑)
- 你有SBConsole的管理员或足够权限的账号(得能访问代理服务配置、创建模拟器)
二、SBConsole创建模拟器的详细步骤
- 登录控制台:打开浏览器输入你的OSB控制台地址(一般是
http://<服务器IP>:<端口>/sbconsole),用有权限的账号登录。 - 找到你的代理服务:
- 左侧点「Project Explorer」,展开你的项目文件夹,定位到那个未对外暴露的代理服务,点它的名字进入详情页。
- 启动模拟器创建流程:
- 进入代理服务详情页后,点页面上方的「Simulate」选项卡(有些版本是在「Actions」下拉菜单里选「Create Simulator」),然后点「Create Simulator」按钮。
- 填模拟器的基础信息:
- 「Name」:给模拟器起个好认的名字,比如
UserProxy_Simulator - 「Description」:可选,写点备注比如“测试用户查询接口的模拟器”
- 「Associated Service」:这里会自动关联到你的目标代理服务,直接确认就行
- 「Name」:给模拟器起个好认的名字,比如
- 配置响应规则(核心步骤):
- 模拟器创建好后进入配置页,点「Response Rules」标签。
- 点「Add Rule」加响应规则:
- 先选要模拟的操作(从WSDL定义的操作里挑,比如
getUserDetail) - 配置匹配条件:如果需要根据请求内容返回不同响应,就设XPath匹配(比如匹配请求里的
userId等于1001);要是不需要区分请求,直接选「Always Match」就行 - 设置响应内容:
- 选「Use Default Response」:会自动用WSDL里的示例消息生成默认响应,省事儿
- 选「Custom Response」:可以手动编辑XML响应,或者上传提前写好的响应文件,适合模拟异常场景
- 要是有需要,还能设置HTTP状态码(SOAP服务一般默认200就行)
- 先选要模拟的操作(从WSDL定义的操作里挑,比如
- 重复上面的步骤,给每个要测试的操作都配好响应规则
- 激活模拟器:
- 所有规则配完后,点页面顶部的「Activate」按钮,把模拟器部署到OSB环境里。这时候模拟器就可以接收测试请求了。
三、给代理服务做模拟测试的方法
模拟器建好后,有几种方式做测试:
- 用SBConsole自带的测试工具:
- 在模拟器详情页点「Test」标签,选要测试的操作,然后在「Request」区域输入或上传测试请求XML(可以从WSDL的示例请求生成)。
- 点「Execute」就能看到返回的响应,检查是不是符合预期。
- 用外部工具(比如SOAP UI):
- 虽然原代理服务没对外暴露,但模拟器有自己的访问端点。在模拟器配置页的「Configuration」标签里找到「Endpoint URI」,复制这个地址。
- 打开SOAP UI,新建SOAP项目导入目标WSDL,把请求的端点换成模拟器的URI,发送请求就能测试了。
- 建自动化测试用例(进阶操作):
- 回到代理服务详情页,点「Test Cases」标签,点「Create Test Case」。
- 填测试用例名字,选要测试的操作,关联到你刚建的模拟器作为目标服务。
- 配置测试请求、预期响应(可以直接用模拟器的响应当预期),再设置断言(比如检查响应里的特定节点值、状态码)。
- 保存后点「Run」就能执行自动化测试,直接看结果。
一些注意事项
- 模拟器和原代理服务是独立的,测试的时候不会影响原服务运行,用完可以随时停用或删掉。
- 如果原代理服务有安全配置(比如WS-Security),模拟器也要配对应的安全策略,不然接不了符合要求的测试请求。
- 尽量把所有测试场景都覆盖到,比如正常响应、异常响应(错误码、空值这些),这样测试才够全面。
内容的提问来源于stack exchange,提问作者Anil
相关产品推荐
相关产品推荐

