0

我正在尝试在免费版本的 SOAP UI 4.6.1 中使用我的 JEE 应用程序进行数据驱动测试。我发现了这个: http: //www.soapui.org/Data-Driven-Testing/functional-tests.html。问题是我不知道如何对我的网络请求做同样的事情。

我想做的就是输入用户/密码,然后浏览一堆页面。似乎我可以为此使用一个 groovy 脚本,但我不知道如何开始以及如何从 groovy 脚本填充为我的 Web 请求发布的属性。

4

4 回答 4

2

我在免费版本中找不到如何处理 Excel。如果您正在寻找进行数据驱动的负载测试,那么您需要某种数据源。但是,我已经在以下 URL 上找到了帮助。

http://things-i-do.co.uk/2012/06/15/data-driven-testing-with-soapui-free-edition/

在我假设的应用程序中,我必须将 EmployeeId 作为参数传递给 SOAP 请求。

我定义了一个包含员工 ID 的文本文件 data.txt。然后我定义了一个名为 DynamicEmployeeId 的属性(默认值为 0)。在测试用例请求中,我已将员工 ID 的硬编码值替换为以下表达式。

`${#TestCase#DynamicEmployeeId}`

在测试用例属性窗口中,打开“设置脚本”选项卡并定义 Groovy 脚本以随机读取文件内容并在每个请求中从文件中填充属性。

示例 Groovy 脚本:

      def inputFile = new File("C:\\Users\\JAYARAJ\\Desktop\\SOAPUIPOC\\data.txt");
       def urlList = [];
       addUrlsToList = {urlList.add(it)};
       inputFile.eachLine(addUrlsToList);
       def randomIndex = (int)Math.random()*urlList.size;
       def randomUrl = urlList.get(randomIndex);
       def tc = testRunner.testCase;
       tc.setPropertyValue("DynamicEmployeeId",randomUrl);

创建负载测试并运行它。您可以看到每个请求都填充了一个单独的输入值。

于 2015-02-01T16:12:32.540 回答
0

看起来您正在使用soapUI 的开源版本。此版本不支持从 excel、xml 等读取数据,您必须使用外部库来执行此操作。

如果您的数据源是 excel,或者其他 Ms Office 产品之一使用scriptomjxl。我在使 scriptom 与soapUI 一起工作时遇到了一些麻烦,因此您可以查看我的SO 问题

有一个非常有用的站点,您可以查看以获取有关使用 jxl 的帮助。我想我已经注意到soapUI 中的jxl jar,所以现在内部可能现在支持jxl..不确定。

如果您的数据源是 xml,您可以使用 groovy 对 xml 的内置支持从 xml 获取数据。检查此站点以获取可用选项。

如果您的数据位于数据库中,您可以简单地连接到它并从数据库中查询数据。这是“soapUI groovy db”的 Google 搜索结果

最后,如果我错了,并且您使用的是 Pro 版本,那么只需使用数据源步骤加载数据,然后使用数据循环步骤循环回...确保循环指向数据源循环之后的步骤不数据源步骤。

它实际上非常容易做到这一点。

希望这可以帮助。

于 2013-10-31T17:40:32.437 回答
0

我终于在这里找到了肥皂 UI 脚本帮助:http: //www.soapui.org/Scripting-Properties/working-with-properties.html

我更改了测试步骤以引用测试用例中的属性,如下所示:

${=testRunner.testCase.getPropertyValue( "userId")}

然后编写快速 groovy 脚本作为第一个测试步骤,将我的用户存储在一个静态数组中,并在每次运行时将下一个存储在测试用例属性中。这就像一个冠军。

我本可以使用 groovy 并从我的数据库或平面文件中读取记录,但还没有那么雄心勃勃。也许下一次。

于 2013-11-01T10:46:45.750 回答
0

发现以下帖子非常有用。而不是使用 loadTest(不是实现目标的好方法)。

http://testautomationnoob.blogspot.in/2012/10/soapui-data-looping-with-groovy-script.html

这背后的想法是使用do ... while 种结构。

首先在 TestCase 级别设置脚本中初始化您的属性。

执行你的测试用例

最后,添加一个更新属性的常规步骤(如递增一,从文件中读取新值)并使用

 testRunner.gotoStep(0)

导航回第一个测试步骤。

编辑:以下博客甚至使它更加清晰和易于管理 https://learnsoapui.wordpress.com/2012/05/19/groovy-datasource-teststep-dataloop-teststep-using-groovy-in-soapui/

于 2015-05-19T18:55:22.793 回答