分享之测试WebService小工具 STORM

2019-03-02 23:40|来源: 网路

最近的项目中,一直要使用到WebService,为了测试自己编写的WebService,就找了一个叫Storm的小工具。它帮了我很大的忙,所以我和大家分享一下。

 

Storm


是一款用于测试Web服务的免费并且开源的工具。是用F#编写的,如果感兴趣的话,你可以在codeplex上找到它的源码。


Storm特性:


  1. 可以测试.NET、Java等多种编程语言所写的Web服务;
  2. 动态调用Web服务方法,即使需要输入和复杂数据类型;
  3. 节约开发时间和花费(仅仅为测试Web服务而开发throw-away测试客户端太过浪费);
  4. 在一个UI中测试多个Web服务;
  5. 编辑、控制原始SOAP请求;
  6. 其它(自己探索,乐趣更多!)。

运行环境 : .NET 2.0及以上,F# 1.9.3.14 (可选)

 

Storm快速上手: 


  1. 添加一个WebService(如下图一所示):点击添加,输入wsdl的endpoint url,比如

    - http://www.deeptraining.com/webservices/weather.asmx
    - http://api.google.com/GoogleSearch.wsdl

  2. 选择一个Web方法:让storm分析这个web方法,然后给出调用这个方法所需的参数。
  3. 选择一个Web方法参数,并且输入必要的值。
  4. 点击GO(绿色箭头按钮):调用web方法。(结果如下图二所示)

图一: 添加WebServie

 

图二 : 调用WebServe方法返回结果

 

Storm快捷操作:


  • 加载WebService并且测试它的方法
    1. 在工具栏中点击ADD
    2. 提供Wsdl的endpoint Url
    3. 点击GO(绿色箭头按钮)
    4. 选择一个Web方法或点击右键,并在新标签页中打开它
    5. 点击SEND

 

  • 保存SOAP请求作为测试用例
    1. 打开WebService
    2. 在树视图中(闪电图标),选择一个Web方法
    3. 点击SEND
    4. 在SOAP输入框中,切换到“原始视图”或“XML视图”
    5. 编辑数据
    6. 点击SAVE。选择“Test Data”选项,填写测试用例的标签,附注等。点击OK
    7. 现在,原始的SOAP请求消息将是该项目的一部分
    8. 同样,你可以在SOAP响应输出框中用步骤4-7保存SOAP响应作为预期响应。

 

  • 保存当前会话为storm项目
    1. 假设你已经打开了一个带或不带测试用例的WebService
    2. 点击工具栏中的SAVE按钮
    3. 填写项目名称,单击OK:将创建下列文件结构

      {File} StormProject.stormproj
      - {Folder} ServiceName
      - {Folder} WebMethod
      - {Folder} TestCaseName
      - {File} TestInputLabel_testinput.xml
      - {File} WebMethod_test.config
      - {File} ServiceName_ws.config

       

  • 载入已保存的Storm项目
    1. 创建一个storm项目
    2. 在工具栏中单击OPEN,选择已创建的storm项目文件
    3. 点击OK:加载WebService和所有测试用例。

 

  • 执行已保存的测试用例
    1. 打开一个storm项目
    2. 右击一个测试用例节点。选择Run/EDIT:这将打开一个新标签页
    3. 根据需要编辑测试输入(点击Edit图标)
    4. 点击RUN来调用Web方法
    5. 如果是绿色,就意味着实际响应和预期响应一样

 

  • 发送多个数组项
    1. 加载WebService
    2. 选择一个接受数组为输入参数的Web方法
    3. 点击“树视图”,编辑
    4. 点击RUN来调用Web方法
    5. 切换到“原始视图”。根据需要编辑SOAP请求,只要你喜欢,你可以添加任意多的数组项。但是要确保,你编辑后,SOAP请求还是正确的XML格式。(可以使用XML视图确认。)

 

  • 发送多个成员数组项
    1. 加载WebService
    2. 选择一个接受类作为输入参数的Web方法(这个类含有数组成员)
    3. 点击“树视图”(闪电图标)
    4. 选择类:弹出对象编辑框
    5. 在对象编辑框中,选择数组成员
    6. 添加数组项

 

Un ciel nappé de nuages!

 

 


转自:http://www.cnblogs.com/yhuang/archive/2012/04/04/share_storm

相关问答

更多
  • 在风暴谷歌集团找到答案。 似乎DRCP拓扑将发出一个元组,其中包含由DRCP spout作为流接收的参数,然后在处理完成时指示回(使用称为请求ID的唯一标识)。 在同一个线程中,hadoop可能最适合这些情况,除非数据不够大,并且可以一直处理。 Found the answer in the storm google group. Seems that DRCP topologies will emit a tuple with parameters that is received by DRCP spo ...
  • 经过几次测试后,我设法解决了这个问题。 使用以下测试环境运行: - Windows 7 SP1 --Apache Storm 1.0.3 - Java 1.8.0_111 - Eclipse Mars.2(4.5.2) 在本地群集上运行拓扑的方法示例: private void runTopology(final StormTopology topology, final String topologyName, final long timeout) { LocalCluster localClust ...
  • 这里的例外很清楚。 如果您只是查看了java.io.NotSerializableException的文档,您会看到正在打印的消息是不可序列化的类。 要修复,只需让您的拓扑类实现Serializable : public class ProvaTopology implements Serializable { ... } 这是必需的,以便Storm可以序列化您的拓扑并将其发送到Nimbus执行。 由于您的Bolts和Spout扩展或实现了Storm提供的类或接口,因此您不必担心将它们标记为可序列 ...
  • WIKI项目有相关说明 There are instructions for that on the project WIKI
  • 是的,这是可能的。 您可以站起来运行Storm的“单节点集群”,它可以在一台机器上运行。 这将模拟真正的集群会是什么样的,但是您将有1台机器托管整个堆栈(ZooKeeper和Storm)。 本质上,Nimbus服务器是您的工作服务器。 配置它与此指南相同: https : //github.com/nathanmarz/storm/wiki/Setting-up-a-Storm-cluster 。 基本上一切都将是您的localhost机器。 Maven是一个构建工具,用于从源代码构建软件(它也可以执行其他 ...
  • 我们只需要在生成的类文件之上编写一个抽象层,就像java客户端一样 。 您可以通过以下方式生成drpc类文件: thrift --gen php storm.thrift 你必须在你的代码中要求php-thrift库。 我把工作代码放在下面的repo中: https://github.com/mithunsatheesh/php-drpc We just need to write an abstraction layer on top of the generated class files, exac ...
  • 我从来没有听说过DSMS一词,但是看一下维基百科上的描述,我认为Storm绝对可以说是DSMS。 来自维基百科: 它类似于数据库管理系统(DBMS)[...]但是,与DBMS相比,DSMS执行连续查询,该查询不仅执行一次,而且是永久安装的。 这听起来就像Storm一样。 但请注意,在Storm的情况下,它通常与DBMS结合使用。 例如,Storm可以提供One-time queries , unlimited secondary storage等,维基百科说这与DSMS结合时缺乏DSMS。 I had ne ...
  • 我昨天得到了答案,我需要的是将localhost更改为127.0.0.1,然后我在终端上启动Redis数据库,在监视器的第二个终端上启动,我的发布方法正在运行。 I came with the answer yesterday, what I needed is to change the localhost to 127.0.0.1, then I launched the Redis database on a terminal, on a second terminal the monitor, an ...
  • 根据您的场景,我认为您需要一些中间的系统或代码,这些系统或代码将从Storm读取数据并推送到D3。 您可以尝试像WSO2 CEP [1]这样的东西,它能够连接到Storm并使用websockets将事件推送到基于d3的仪表板[2]。 在您的场景中,您可以将Storm bolt中的逻辑映射到Siddhi查询[3],然后将这些事件从Storm转移到WSO2 CEP。 然后,您可以创建一个websocket发布者,使用服务器的内置websocket功能将事件发送到D3代码。 请注意,这是基于您的要求的可能解决方案 ...
  • 很可能这是已知的节点问题: https : //github.com/joyent/node/issues/1669另请参阅mocha + webstorm - 错误消息已损坏 Most likely this is the known Node issue: https://github.com/joyent/node/issues/1669 See also mocha + webstorm - error message broken