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

SoapUI Groovy Script,log.info有关运行的测试步骤的详细信息。

韩飞翮
2023-03-14

我在SoapUI中有一个Groovy脚本,它可以为每个测试步骤记录该步骤是通过了还是失败了。我还希望Groovy脚本记录出错的断言消息。

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus

def TestCase = testRunner.getTestCase()
def StepList = TestCase.getTestStepList()
StepList.each{
    // check that testStep has assertionStatus 
    // (for example groovy testSteps hasn't this property since
    // there is no asserts on its)
    if(it.metaClass.hasProperty(it,'assertionStatus')){
        if(it.assertionStatus == AssertionStatus.FAILED){
            log.info "${it.name} FAILED"    

        }else if(it.assertionStatus == AssertionStatus.VALID){
            log.info "${it.name} Passed"
        }else if(it.assertionStatus == AssertionStatus.UNKNOWN){
            log.info "${it.name} UNKNOWN (PROBABLY NOT ALREADY EXECUTED)"
        }
    }
}

此时,我得到以下输出:

Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0051 Passed
Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0052 FAILED
Thu Oct 20 11:31:06 BST 2016:INFO:TestStep_0053 Passed

我希望失败的断言以更详细的方式显示它失败的原因的消息。如果失败的TestStep本身,我就会收到消息:

assert node.toString().matches("(0|175.238|0)\\d*")       |    |          |      |    |          false           |    132.497286826667           132.497286826667

此外,当我运行这个Groovy脚本时,会弹出一个名为“Information”的窗口,它的背景是黑色的,太宽了,我似乎找不到它的右侧。有人知道这是什么吗?

共有1个答案

桑璞
2023-03-14

你可以试着修改一下你的代码,让我解释一下:

您可以使用getAssertionList()访问testStep结果的最终AssertionState,而不是通过metaClass访问testStep的所有断言,以避免testSteps出现问题不包含断言,您可以使用metaClass检查此方法是否存在。

然后,对于此列表中的每个断言,您可以检查状态,对于失败的断言,您可以使用getError()方法获取错误消息。

最后,为了避免由于默认情况下Groovy返回最后一个实例化对象(在脚本StepList中)并由SOAPUI提示而产生的提示消息,您可以添加一条return语句以不返回任何内容并避免提示效果。

import com.eviware.soapui.model.testsuite.Assertable.AssertionStatus

def TestCase = testRunner.getTestCase()
def StepList = TestCase.getTestStepList()
StepList.each{

    // check that this kind of testStep
    // can contain assertions (avoid errors with groovy testSteps)
    if(it.metaClass.respondsTo(it,"getAssertionList")){

         def assertions = it?.getAssertionList()

         assertions?.each{ assertion ->

            if(assertion?.getStatus() == AssertionStatus.FAILED){
              log.info "${it.name} FAILED"
               assertion?.getErrors()?.each{ error ->
                 log.info "Error message ${error.getMessage()}"
               }
            }else if(assertion?.getStatus() == AssertionStatus.VALID){
                log.info "${it.name} Passed"
            }else if(assertion?.getStatus() == AssertionStatus.UNKNOWN){
                log.info "${it.name} UNKNOWN (PROBABLY NOT ALREADY EXECUTED)"
            }
         }
     }
}
return
 类似资料:
  • 本文向大家介绍PHP环境搭建的详细步骤,包括了PHP环境搭建的详细步骤的使用技巧和注意事项,需要的朋友参考一下 接着上篇继续学习,谈谈IIS支持php怎么配置: 1、去php官网下载php:http://windows.php.net/download/ 。IIS7我们需要选择php 5.3 以上的VC9包,下载zip文件。如图: 2、将 zip 包解压缩到自己选择的目录,例如 C:\PHP\。解

  • 本文向大家介绍使用xampp搭建运行php虚拟主机的详细步骤,包括了使用xampp搭建运行php虚拟主机的详细步骤的使用技巧和注意事项,需要的朋友参考一下 最近,新装了xampp这么一个软件搭建自己的web开发环境,安装完毕自然要虚拟几个目录放自己的项目了,现将如何在xampp搭建的web服务器环境下新建虚拟主机的过程总结分享一下,大致过程分为三步,如下: 第一步: 用记事本打开C:/WINDOW

  • 本文向大家介绍在Mac OS X下安装Ruby运行环境的详细步骤,包括了在Mac OS X下安装Ruby运行环境的详细步骤的使用技巧和注意事项,需要的朋友参考一下 前言 Ruby是一种功能强大的面向对象的脚本语言,它综合了Perl,Python,Java等语言的特点写成,有强大的文字处理能力,简单的语法,并且完全的面向对象。同时,Ruby是解释型语言,不需编译即可快捷地编程。 对于新入门的开发者,

  • 本文向大家介绍MongoDB 3.4 安装以 Windows 服务方式运行的详细步骤,包括了MongoDB 3.4 安装以 Windows 服务方式运行的详细步骤的使用技巧和注意事项,需要的朋友参考一下 1.首先从https://www.mongodb.com/download-center#community 下载社区版,企业版也是类似。 2.双击运行安装,可自定义安装路径,这里采用默认路径(C

  • 本文向大家介绍Spring4整合Hibernate5详细步骤,包括了Spring4整合Hibernate5详细步骤的使用技巧和注意事项,需要的朋友参考一下 Spring与Hiberante整合 通过hibernate的学习,我们知道,hibernate主要在hibernate.cfg.xml配置文件中 接下来我们看一下hibernate的一个配置文件 hibernate配置文件 hibernate

  • 本文向大家介绍Centos7 Python3下安装scrapy的详细步骤,包括了Centos7 Python3下安装scrapy的详细步骤的使用技巧和注意事项,需要的朋友参考一下 苦逼的前夜 昨晚很辛苦,搞到晚上快两点,最后还是没有把python3下的scrapy框架安装起来,后面还把yum这玩意给弄坏了,一直找不到命令。今天早上又自己弄了快一上午,又求助@函兮,弄了快一个中午,最后无奈还是没有弄