You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java/Groovy连接Rocket Bluezone?SoapUI能否实现相关自动化测试?

嗨,结合你的Web服务自动化测试需求和已有经验,我来给你详细解答:

一、步骤2和3完全可以在SoapUI中实现

作为有SoapUI使用经验的你,应该能快速上手这些操作:

步骤2:运行Soap请求并验证200状态码

这是SoapUI的基础功能,完全不需要额外工具:

  • 先在SoapUI中导入你的Web服务WSDL,创建对应的Test Suite和Test Case;
  • 添加Soap Request测试步骤,配置好请求参数;
  • 给这个请求步骤添加HTTP Status Code断言,直接设置预期值为200即可。如果需要更灵活的验证,也可以用Groovy脚本断言,比如:
def statusCode = context.testCase.testSteps["Soap Request Step"].testRequest.response.statusCode
assert statusCode == 200 : "请求失败,状态码为${statusCode}"

步骤3:连接Mainframe并校验数据

这一步可以通过SoapUI的Groovy脚本测试步骤实现,全程在SoapUI内完成:

  1. 提取Soap响应参数:用Groovy的XmlSlurper或者SoapUI自带的context.expand方法解析响应XML,比如:
def soapResponse = context.expand('${Soap Request Step#Response}')
def xmlParser = new XmlSlurper().parseText(soapResponse)
// 假设响应里有个名为userID的参数
def responseUserID = xmlParser.Body.QueryResponse.UserID.text()
  1. 连接Mainframe并获取数据:在Groovy脚本中调用Mainframe连接库(比如针对Rocket Bluezone的Java API,后面会详细讲),执行查询命令并提取需要的字段;
  2. 数据校验:用Groovy的断言语句对比响应参数和Mainframe数据,比如:
assert responseUserID == mainframeUserID : "用户ID校验失败:预期${mainframeUserID},实际${responseUserID}"
二、无需VBScript,用Java/Groovy直接连接Rocket Bluezone的方案

Rocket Bluezone提供了官方的Bluezone Java API,可以直接在Groovy/Java代码中调用,完全不需要依赖VBScript:

1. 准备依赖

找到你本地Rocket Bluezone安装目录下的Java库文件(通常是bzjcore.jar,可能还有其他辅助jar包),把它们复制到SoapUI的bin/ext目录下,这样SoapUI的Groovy脚本就能加载这些类了。

2. Groovy脚本示例(整合到SoapUI中)

下面是一个简化的连接、查询、校验的示例代码:

import com.rocket.bluezone.core.BZSession
import com.rocket.bluezone.core.BZException

try {
    // 初始化Bluezone会话并连接Mainframe
    def session = new BZSession()
    session.connect("你的Mainframe主机地址", 23, "用户名", "密码")
    
    // 发送Mainframe查询命令(比如查询用户信息的命令)
    session.sendCommand("DISPLAY USERINFO")
    // 读取屏幕内容
    def screenContent = session.readScreen()
    
    // 从屏幕内容中提取需要的字段(这里根据你的Mainframe屏幕格式调整,比如固定位置或正则)
    // 示例:假设用户ID在屏幕第10行第20-25位
    def mainframeUserID = screenContent.substring(10*80 + 20, 10*80 +25).trim()
    
    // 从Soap响应提取参数(前面步骤的代码)
    def soapResponse = context.expand('${Soap Request Step#Response}')
    def xmlParser = new XmlSlurper().parseText(soapResponse)
    def responseUserID = xmlParser.Body.QueryResponse.UserID.text()
    
    // 校验数据
    assert responseUserID == mainframeUserID : "用户ID不匹配:预期${mainframeUserID},实际${responseUserID}"
    
    // 关闭会话
    session.disconnect()
} catch (BZException e) {
    log.error("连接或操作Mainframe失败:${e.message}")
    throw e
}

3. 注意事项

  • 确保Bluezone Java API的版本和你安装的Rocket Bluezone Emulator版本一致,避免兼容性问题;
  • Mainframe屏幕内容的解析需要根据实际的屏幕布局调整,比如固定字符位置、正则表达式匹配,或者用Bluezone API提供的字段定位方法;
  • 如果你需要批量采集数据(步骤1),也可以用同样的Groovy脚本实现,把采集到的数据写入xls文件(用Apache POI库,同样可以加到SoapUI的classpath里)。

这样一来,你就能把整个测试流程(可选的步骤1、步骤2、步骤3)完全整合到SoapUI的自动化测试套件中,不需要单独运行VBScript,全程用Groovy/Java实现。

内容的提问来源于stack exchange,提问作者ChanGan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 17:28:16