当前位置: 首页 > 知识库问答 >
问题:

如何使用Groovy脚本获取断言值

白越
2023-03-14

我有一个测试步骤,其中包含两个断言。

  • 非SOAP错误
  • 包含。条件是响应应包含“消息发送成功”

现在我有一个Groovy脚本,从那里我执行这个测试步骤。使用这个Groovy脚本,我需要打印断言名称、值和状态。以下是我编写的代码:

testStepSrc = testCase.getTestStepByName(testName)
Assertioncounter = testStepSrc.getAssertionList().size()
for (AssertionCount in 0..Assertioncounter-1)
{
log.info("Assertion :" + testStepSrc.getAssertionAt(AssertionCount).getName() + " :: " + testStepSrc.getAssertionAt(AssertionCount).getStatus())

error = testStepSrc.getAssertionAt(AssertionCount).getErrors()
if (error != null)
   {
    log.error(error[0].getMessage())
   }
 }

但在输出中,它显示如下:

Wed Sep 04 17:21:11 IST 2013:INFO:Assertion :Not SOAP Fault :: VALID
Wed Sep 04 17:21:11 IST 2013:INFO:Assertion :Contains :: VALID

如您所见,我可以打印断言名称和状态,但不能打印“包含”断言的值。请帮助我如何获取特定断言的值。

提前谢谢。

共有2个答案

聂和宜
2023-03-14

Abhishek的回答确实包含了你的答案,我相信,但不是你想要的格式。

我正在为定制报告寻找相同的信息,在深入研究了SoapUI表单之后,我偶然发现了这个。

我相信您正在寻找的这段代码是:

log.info e.getToken()

但是,这是一个示例,说明如何仅在发生错误时检索它,但您可以使用类似于以下内容的有效方案获取它:

def iAssertionName = assertionNameList[j]
def iAssertionStatus = testStep.getAssertionAt(j).getStatus().toString()
def tstep = testStep.getName()
def gStatus =  testStep.getAssertionAt(j).status
def expect = testStep.getAssertionAt(j).getToken()
log.info "Expected Content: " + expect

这是我代码的子集,但会产生日志消息

Fri Sep 20 11:04:09 CDT 2013:INFO:Expected Content: success

我的SoapUI脚本断言正在检查我的响应是否包含字符串“成功”。

感谢阿布舍克的回复!

陆展
2023-03-14

所以这里有一些东西要你读

  • http://www.soapui.org/forum/viewtopic.php?t=359
  • http://whathaveyoutried.com

而我所尝试的

def assertionsList = testRunner.getTestCase().getTestStepByName("Test Step Name").getAssertionList()
for( e in assertionsList){
    log.info e.getToken() //gives the value of the content to search for
    log.info e.DESCRIPTION
    log.info e.ID
    log.info e.LABEL
    log.info e.toString()
}

这给出了以下输出

Wed Sep 04 15:12:19 ADT 2013:INFO:Abhishek //the contains assertion was checking for the word "Abhishek" in the response of my test step where the assertion was applied.
Wed Sep 04 15:12:19 ADT 2013:INFO:Searches for the existence of a string token in the property value, supports regular expressions. Applicable to any property. 
Wed Sep 04 15:12:19 ADT 2013:INFO:Simple Contains
Wed Sep 04 15:12:19 ADT 2013:INFO:Contains
Wed Sep 04 15:12:19 ADT 2013:INFO:com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.SimpleContainsAssertion@c4115f0
 类似资料:
  • 问题内容: 我可以使用Groovy脚本获取响应xml。我需要获取请求XML,因为我需要在soap ui测试中添加“断言脚本”。 我正在使用以下代码来获取响应xml 但是我不确定如何获取SOAPUI的请求xml。谁能帮我获得SOPAUI的请求xml吗? 问题答案: 要以字符串形式获取请求内容,可以使用 有关SoapUI API的更多信息,请访问http://www.soapui.org/apidoc

  • 我有以下类桥联图: 我将JUnit测试用例编写为: 但我不知道该断言什么:

  • 我需要从Jenkins作业中获取脚本路径。 请查看下面的屏幕截图,以便更清楚地了解需求。 我已经登录谷歌,获取了一些Groovy控制台脚本,其中列出了每个作业的详细信息。 通过使用jenkins.model.Jenkins.getJobNames()方法,我能够得到Jenkins中的所有作业,但实际上需要的是获得Scriptpath值,在每个作业中提到。 哪个Jenkins类/方法可以提供这些细节

  • 问题内容: 我的应用程序正在使用此脚本来增强索引中的最新项目: 它是用MVEL编写的,但是从1.3开始,对于Groovy,不推荐使用MVEL。脚本现在引发此错误: 对我来说,这听起来像Groovy中获取毫秒级时间戳的功能不同。我尝试了,但是又给出了另一个错误,说它不支持导入。 那么我该如何修复该功能以与Groovy一起使用? 问题答案: 正如您已经发现的那样,您需要用Groovy而不是MVEL重写

  • 我为这个问题搜索了很多,但在任何地方都找不到可行的解决方案。有人能帮我吗?我想通过jenkins脚本控制台获取现有的环境变量值。

  • 问题内容: 寻找指针以了解如何使用java api调用Groovy脚本。 测试规则 想要用Java翻译以下查询: 问题答案: 您可以这样做: 您需要将存储文件的文件夹中的每个数据节点上,并且确保在脚本启用与