自动化测试Web服务[关闭]

问题描述 投票:13回答:5

我为一个Midtier团队工作,我一直在使用SOAP UI手动测试Web服务。我的任务是让回归测试用例自动化。我们现在没有任何自动化团队,因此我可以完全自由地使用我想要的任何工具,让我的经理知道哪种工具很合适。但我还没学习自动化测试。有人建议哪些是自动测试Midtier的好工具?我们有许多服务,我们使用SAP中的结果验证结果。例如,如果我正在测试Midtier中某个商品的价格,我应该检查返回的价格是否与SAP中的价格相符。我已经手动执行此操作,在我登录SAP时,转到提供的交易代码并检查该项目的价格,有人可以想到任何一个好的自动化测试工具,我可以处理这种情况吗?

web-services testing automation sap soapui
5个回答
7
投票

我正在处理类似的请求。由于客户已经使用soapUI(OS)自动化了一些服务,我的工作有点困难。

操作系统版本没有数据源,数据循环测试步骤来制作数据驱动的测试套件,但总有一个解决方法。

您甚至可以使用开源版本来实现三种流行的自动化框架。

  1. Action Driven framework - 要将此框架应用于soapUI,您必须确定服务的设置,执行和验证中的一些常见测试步骤。一旦确定,在测试套件和/或测试用例中将它们分开,然后简单地调用相应的测试套件/测试步骤。 例如:我有一个测试步骤,验证服务已在db中创建了一个订单条目,因此我将创建一个测试套件+测试用例,并在其中添加一个jdbc测试步骤,以便根据我提供的数据。查询将被参数化。在实际的脚本中,我将执行该服务并提取运行db查询所需的所有值。使用运行测试测试步骤将这些值传递给可重用的测试用例。 需要记住的一点是,如果您有大量的测试用例/参数,并认为需要修改服务,那么将参数放在excel文件中,并使用groovy从测试套件设置脚本区域加载它们。 你需要使用scriptom api来处理excel或Jxl(一个更复杂的实现)
  2. 数据驱动框架,在此框架中,您基本上可以识别要在服务上运行的不同场景,并使用相关数据填充excel,然后使用groovy和scriptom或jexcel或jxl api循环遍历excel中的所有行并执行服务具有不同的数据元素。这种方法可以根据您的喜好和您想要的一样简单。
  3. 关键字驱动框架 - 这可能是所有实现中最复杂的框架,因为它要求您进行大量的规划,开发等。我目前正在设计这样一个框架。如果没有保密协议,我会与你分享一些细节。

我也明白你是groovy的新手,你应该查看soapUI和groovy的网站,他们有很多非常好的例子,并记住总是有stackoverflow来回答你的问题。

让我知道你是如何通过这项努力来实现的。


2
投票

我们在一个大型项目中所做的是与许多连接的遗留系统(200多项服务):

  • 对于我们创建的每个服务,SoapUI项目都有适当的断言,这些断言反映了服务的优点(连接性,功能性等)
  • 我们设置Hudson来运行服务的SoapUI项目列表。记录所有已执行的服务(请求,响应)
  • 我们创建了ant作业来分析记录的响应并创建每日报告(也在Hudson上运行)

我们还通过搜索服务器日志中的模式来触及异步服务。这里有一个重要的SoupUI项目创建约定(命名,需要断言等)。


1
投票

我在类似的情况下做了什么(需要测试一个非常复杂的第三方应用程序,往往会出现反复出现的质量问题):我使用常规的JUnit 4环境编写了一些单元测试,但是我没有测试本地java类,而是执行了Web服务调用并检查响应。如果您需要针对SAP R / 3后端验证结果,那么也可以使用http://service.sap.com/connectors提供的Java Connector(JCo)。缺点是 - 你显然需要知道如何用Java编写代码。


1
投票

如果要自动执行Web服务回归测试,可以使用Soap-UI Pro。在soapui中,自动化非常简单,我正在做同样的事情。我使用soap ui自动化了我的所有航班集成Web服务。您可以在复杂场景中使用groovy脚本语言。

谢谢,Hanumant


0
投票

如果您的Web服务是REST,则首先使用Maven导出REST Client(Chrome插件)导出。创建Maven项目并添加插件exp:

<plugin>
    <groupId>com.restlet.client</groupId>
    <artifactId>maven-plugin</artifactId>    
    <version>2.3.0.1</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>test</goal>
            </goals>   
            <configuration>
                <file>API_Testing.json</file>
                <selectedEnvironment>Staging</selectedEnvironment>
                <licenseKey/>
            </configuration>
        </execution>
    </executions>
</plugin>
© www.soinside.com 2019 - 2024. All rights reserved.