在 SoapUI 中使用 GroovyScript 访问和锁定外部文件
Posted
技术标签:
【中文标题】在 SoapUI 中使用 GroovyScript 访问和锁定外部文件【英文标题】:Using GroovyScript in SoapUI to access and lock an external file 【发布时间】:2013-12-22 07:56:11 【问题描述】:我希望在 SoapUI 中的一个项目中同时运行一组 60 个测试用例。每个测试用例都需要使用一个值才能工作。这些值存储在外部文件(电子表格或文本文件)中。每个测试用例都需要从这个文件中获取一个值并使用它。但是,当我运行测试套件时,多个测试会获取相同的值,但是只能将一个值用于测试(同一值不能同时用于 1 个以上的测试)。我希望在soapUI中一次由一个测试用例访问外部文件。这是否涉及锁定或某种排队系统或我可以使用什么 groovyscript?谢谢
【问题讨论】:
他们如何获取不同的值?他们也写入文件吗? 我在每个测试用例的开头都有一个 groovy 脚本,它逐行读取文件,取一个值并将其放入测试用例级别的属性中。一旦获取了一个值,我就会对其进行脚本化,以便将“USED”添加到文件中该值的末尾,这样如果另一个测试随后读取该文件,它将忽略任何末尾带有“USED”的值因为它们正在另一个测试中使用。我面临的问题是在开始所有测试时,因为它们同时访问文件,因此相同的值可能会被 2 个测试拾取,例如 你尝试过同步静态方法读取值、更新文件和返回值吗? 我对 groovy 还很陌生,所以不知道该怎么写? 实际上这可能行不通,因为我假设您的意思是您在每个步骤中都只有一些代码。 【参考方案1】:我不知道如何让它与您的外部文件一起使用,但我可以想到另一种仅使用 SoapUI 的方法。这是我的解决方案建议:
-
创建一个仅包含 DataGen TestStep 的新 TestCase。
对其进行配置,使其生成您想要的数字。
将其模式更改为“READ”,以便在每次运行测试步骤时生成一个新值。
现在,无论您需要这些值之一,而不是访问您的外部文件,添加Run TestCase TestStep 来运行您的新 DataGen 测试用例,并确保将生成的数字作为属性返回。在需要生成数字的地方使用它。
在我输入此内容时,我才意识到这仅适用于 SoapUI 的专业版。如果您没有许可证,可以从该网站获得试用版。
【讨论】:
以上是关于在 SoapUI 中使用 GroovyScript 访问和锁定外部文件的主要内容,如果未能解决你的问题,请参考以下文章
IDEA自定义类注释和方法注释(自定义groovyScript方法实现多行参数注释)
如何在 SoapUI 中测试使用 JWT 的 REST 服务?