SoapUI批量发起多站点Get请求并汇总结果的实现方案咨询
SoapUI批量GET请求并统一保存结果实现方案
前期准备
- 先将存储站点链接的txt文件整理为每行仅存1个完整URL的格式,删除多余空行、首尾空格,保存备用。
SoapUI 操作步骤
步骤1:创建基础测试结构
- 打开SoapUI,点击
File > New REST Project,随便填入一个可用的站点URL完成基础项目创建 - 左侧项目树右键点击刚创建的项目,选择
New TestSuite,自定义命名后确认 - 右键点击新建的TestSuite,选择
New TestCase,自定义命名后确认
步骤2:配置数据源读取txt链接
- 进入刚才创建的TestCase,在左下角
Test Steps区域右键,选择Add Step > DataSource - 数据源类型选择
File,在File选择栏导入你整理好的站点txt文件 File Type设置为Text,勾选Trim选项自动去除每行首尾冗余空格- 点击下方
Add按钮新建1个属性,命名为site_url,分隔符设置为None(每行仅1个URL无需拆分) - 点击DataSource工具栏的运行按钮测试读取效果,确认能正常拉取所有URL后保存
步骤3:配置动态GET请求
- 在
Test Steps区域右键,选择Add Step > REST Request,自定义命名后确认 - 请求编辑页中,将原有固定Endpoint替换为
${DataSource#site_url},请求方法选择GET,其余请求头、参数配置和你平时发起单个请求的规则保持一致即可
步骤4:添加结果统一写入逻辑
- 在
Test Steps区域右键,选择Add Step > Groovy Script,粘贴以下代码,将代码中"C:/soapui_result/response.txt"替换为你自己要存储结果的本地文件路径:
// 读取当前请求的地址和返回结果 def currentSite = context.expand('${DataSource#site_url}') def responseContent = context.expand('${REST Request#Response}') // 拼接写入内容(带站点标记方便后续查看) def output = "===== 请求站点:${currentSite} =====\n${responseContent}\n\n" // 以UTF-8编码追加写入到结果文件 new File("C:/soapui_result/response.txt").append(output, "UTF-8")
注意:如果你的REST请求步骤不是默认命名REST Request,需要将代码中REST Request替换为你自己的请求步骤名称
步骤5:配置循环实现批量执行
- 在
Test Steps区域右键,选择Add Step > DataSource Loop - 配置项中
DataSource Step选择你之前创建的DataSource步骤,Target Step选择刚才配置的GET请求步骤,保存即可
步骤6:启动批量任务
- 回到TestCase主界面,点击左上角的运行按钮,SoapUI会自动依次读取所有URL发起请求,并将所有返回结果追加写入你指定的文件中
补充说明
如果部分站点响应较慢,可在REST请求的设置页面将超时时间调整为15秒以上,避免请求异常中断。如果觉得SoapUI操作繁琐,也可以使用Python、Shell等轻量脚本实现相同逻辑,执行效率更高。
内容的提问来源于stack exchange,提问作者Bums Geordi
相关产品推荐
相关产品推荐

