更新Web服务时对SoapUI Pro的担忧

时间:2012-08-28 21:37:29

标签: wsdl soapui regression

遗憾的是,这可能是一个非常开放的问题,但我的同事一直担心使用SoapUI Pro作为我们的自动回归测试工具,主要是因为看似微不足道的WSDL变化会给QA工作人员带来麻烦。我的同事特别关注的是,如果我们更新WSDL,即使更改名称,我们也需要触摸并更新使用该字段的每个现有测试。

据我了解,SoapUI Pro提供了一个重构工具来为您处理。

您使用SoapUI Pro和更新网络服务有哪些经验?我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

我有类似的担忧,这可能是一个小问题;但是。

  1. 即使它确实发生了对生产力的好处,也减轻了重量。
  2. 您可以使用Groovy脚本来重构项目本身。
  3. 应用良好的编程实践来隔离通用性。
  4. 对项目进行分层,创建极其简单的API原语。
  5. 为使用这些原则的场景创建单独的测试套件,而不是自己进行调用
  6. 使用Groovy和TestRunner,链接外部Java实用程序和帮助程序代码
  7. 不要克隆,而是打电话。
  8. 使用外部工具,我也使用XmlPad& Notepad ++重构我的SOAPUI项目。

答案 1 :(得分:0)

您可以更新项目中的wsdl定义,还可以重新创建更新的请求并备份旧请求。

这是执行此操作的代码。

import static com.eviware.soapui.impl.wsdl.actions.iface.UpdateInterfaceAction.recreateRequests
import static com.eviware.soapui.impl.wsdl.actions.iface.UpdateInterfaceAction.recreateTestRequests

project = testRunner.testCase.testSuite.project; //get the project reference
def ifaceList = project.getInterfaceList(); //get all the interfaces present in the project in a list

//start a loop for number of interfaces
for(int i = 0; i < project.getInterfaceCount() ; i++)
{

def iface = project.getInterfaceAt(i);
def url = iface.definition;
iface.updateDefinition( url, true); //updateDefinition(String url , Boolean createRequests)

//The above part updates the definition
//The part below recreates the requests based on updated wsdl definition

//syntax - 
//recreateRequests( WsdlInterface iface, boolean buildOptional, boolean createBackups, boolean keepExisting, boolean keepHeaders )

recreateRequests(iface,true,true,true,true);
recreateTestRequests(iface,true,true,true,true);
}
//End of Script//