SoapUI - 负载测试 -Assertion:使用 SoapUI 向负载测试添加断言

德班扬B

我是 SoapUI 工具的新手。我使用的是 SoapUI 版本 5.3.0 我的应用程序有几个 RESTful API。我以 json 请求的形式向 WebService 发送多个请求,如下所示:

{
   "app_key":"i8gAVDwcAq40n2kAv6Ox+w==",
   "targetDB":"${#TestCase#TARGET_DB}",
   "createNew": "true"
}

来自 WebService 的响应如下:

<StartDataExtractResult xmlns="http://schemas.datacontract.org/2004/07/AriaTechCore" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
   <StatusCode>1</StatusCode>
   <StatusText>success</StatusText>
   <RequestNumber>101</RequestNumber>
</StartDataExtractResult>

我正在使用 Groovy 脚本为“targetDB”生成一个动态名称,如下所示:

def targetdb = ((context.expand('${#TestCase#TARGET_DB}') ?: 100) as Integer) + 1
log.info "Target db for current request : ${targetdb}"
context.testCase.setPropertyValue('TARGET_DB', targetdb.toString())

我以这样一种方式设计了我的测试数据,即在请求中将 'targetdb' 的名称传递为“101”将导致在响应中创建 101 标签。负载测试运行良好。

现在我想为每个负载测试响应添加一些断言,以检查 StatusCode 标记是否包含“1”,StatusText 标记包含“success”和 RequestNumber 标记包含变量“${#TestCase#TARGET_DB}”的值(在请求 json 中发送)。为了实现这一点,我编写了一个脚本断言如下:

    def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)
holder.namespaces["ns1"] = "http://schemas.datacontract.org/2004/07/AriaTechCore"

def nodeStatusCode = holder.getNodeValue("//ns1:StatusCode")
assert nodeStatusCode != null
if(nodeStatusCode=="1")
{ log.info "Pass" }
else
{ log.info "Fail"}

def nodeStatusText = holder.getNodeValue("//ns1:StatusText")
assert nodeStatusText != null
if(nodeStatusText=="success")
{ log.info "Pass" }
else
{ log.info "Fail"}

def nodeRequestNumber = holder.getNodeValue("//ns1:RequestNumber")
assert nodeRequestNumber != null
if(nodeRequestNumber=="${TARGET_DB}")
{ log.info "Pass" }
else
{ log.info "Fail"}

但我得到一个错误,因为:

No such Property: TARGET_DB for class: Script 53

有人可以帮我吗?

这是我的项目的屏幕截图: 断言

德班扬B

我从另一个论坛得到了这个问题的答案以下是问题的答案:

  1. 我们需要创建一个 Step 作为 Properties 并添加一个属性作为“databaseName”
  2. 我们需要为该属性添加另一个 Groovy 脚本,如下所示:

    字符串testString ='$ {#TestCase#TARGET_DB}'

    testRunner.testCase.setPropertyValue( "databaseName", testString )

    def getLocalPropValue = testRunner.testCase.getPropertyValue("databaseName")

    log.info(getLocalPropValue)

    testRunner.testCase.testSteps["Properties"].setPropertyValue( "databaseName", testString )

  3. Finally we can have the Script Assertion as follows:

    def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)

    def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)

    holder.namespaces["ns1"] = "http://schemas.datacontract.org/2004/07/AriaTechCore"

    def nodeStatusCode = holder.getNodeValue("//ns1:StatusCode")

    assert nodeStatusCode != null

    if(nodeStatusCode=="1")

    { log.info "Pass" }

    else { log.info "Fail"}

    def nodeStatusText = holder.getNodeValue("//ns1:StatusText")

    断言 nodeStatusText != null

    if(nodeStatusText=="success") { log.info "Pass" }

    别的

    { log.info "失败"}

    def nodeRequestNumber = holder.getNodeValue("//ns1:RequestNumber")

    断言 nodeRequestNumber != null

    if (nodeRequestNumber == context.expand('${#TestCase#TARGET_DB}'))

    { log.info“通过”}

    别的

    { log.info "失败"}

@Rao 非常感谢您的宝贵建议和意见。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SOAPUI XPATH断言并测试

来自分类Dev

如何从Java运行soapUI测试

来自分类Dev

如何使用SoapUI API创建测试套件,测试用例,测试步骤和断言

来自分类Dev

使用SOAPUI在多个测试用例中循环测试步骤

来自分类Dev

使用groovy脚本soapui逐行比较失败的测试步骤对测试步骤“断言包含”的响应

来自分类Dev

如何使用Groovy测试步骤从SoapUI响应中获取Cookie?

来自分类Dev

使用SoapUI / Groovy从“运行测试步骤”中检索响应?

来自分类Dev

如何在SoapUI中测试使用JWT的REST服务?

来自分类Dev

使用SoapUI测试REST应用程序的登录功能

来自分类Dev

使用ReadyAPI(SoapUI NG)进行自动测试

来自分类Dev

如何在soapUI中使用Groovy删除测试步骤

来自分类Dev

SOAPUI:-比较不同测试用例的两个断言

来自分类Dev

SoapUI将测试套件名称写入文件

来自分类Dev

SoapUI在多个节点上设置API测试

来自分类Dev

将SoapUI测试用例与SonarQube集成

来自分类Dev

如何在SoapUi中使用Groovy重命名测试用例或测试步骤

来自分类Dev

如何在SoapUi中使用Groovy重命名测试用例或测试步骤

来自分类Dev

从测试用例调用测试步骤时,SoapUI行为不同

来自分类Dev

SOAPUI:使用txt文件中的属性运行测试步骤,将txt中的属性设置为Property

来自分类Dev

WSO2 ESB-如何使用SoapUI测试介体

来自分类Dev

如何使用Java从SOAPUI测试用例中删除自定义属性?

来自分类Dev

在soapui免费版中使用groovy脚本从excel进行数据驱动的测试

来自分类Dev

我们可以使用SOAPUI测试到ActiveMQ的JMS消息吗?

来自分类Dev

如何在soapUI中使用测试用例拆解脚本获取REST请求数据

来自分类Dev

使用 RDBMS 数据为 SoapUI 或类似测试工具提供动力

来自分类Dev

在Java中的SoapUI 5.0.0中向WsdlTestRequestStep正确添加断言

来自分类Dev

SoapUI-增加每个测试用例的属性值

来自分类Dev

在脚本的SoapUI中为测试步骤设置抢占式AuthType

来自分类Dev

SoapUI测试执行返回错误“目录名称无效”

Related 相关文章

  1. 1

    SOAPUI XPATH断言并测试

  2. 2

    如何从Java运行soapUI测试

  3. 3

    如何使用SoapUI API创建测试套件,测试用例,测试步骤和断言

  4. 4

    使用SOAPUI在多个测试用例中循环测试步骤

  5. 5

    使用groovy脚本soapui逐行比较失败的测试步骤对测试步骤“断言包含”的响应

  6. 6

    如何使用Groovy测试步骤从SoapUI响应中获取Cookie?

  7. 7

    使用SoapUI / Groovy从“运行测试步骤”中检索响应?

  8. 8

    如何在SoapUI中测试使用JWT的REST服务?

  9. 9

    使用SoapUI测试REST应用程序的登录功能

  10. 10

    使用ReadyAPI(SoapUI NG)进行自动测试

  11. 11

    如何在soapUI中使用Groovy删除测试步骤

  12. 12

    SOAPUI:-比较不同测试用例的两个断言

  13. 13

    SoapUI将测试套件名称写入文件

  14. 14

    SoapUI在多个节点上设置API测试

  15. 15

    将SoapUI测试用例与SonarQube集成

  16. 16

    如何在SoapUi中使用Groovy重命名测试用例或测试步骤

  17. 17

    如何在SoapUi中使用Groovy重命名测试用例或测试步骤

  18. 18

    从测试用例调用测试步骤时,SoapUI行为不同

  19. 19

    SOAPUI:使用txt文件中的属性运行测试步骤,将txt中的属性设置为Property

  20. 20

    WSO2 ESB-如何使用SoapUI测试介体

  21. 21

    如何使用Java从SOAPUI测试用例中删除自定义属性?

  22. 22

    在soapui免费版中使用groovy脚本从excel进行数据驱动的测试

  23. 23

    我们可以使用SOAPUI测试到ActiveMQ的JMS消息吗?

  24. 24

    如何在soapUI中使用测试用例拆解脚本获取REST请求数据

  25. 25

    使用 RDBMS 数据为 SoapUI 或类似测试工具提供动力

  26. 26

    在Java中的SoapUI 5.0.0中向WsdlTestRequestStep正确添加断言

  27. 27

    SoapUI-增加每个测试用例的属性值

  28. 28

    在脚本的SoapUI中为测试步骤设置抢占式AuthType

  29. 29

    SoapUI测试执行返回错误“目录名称无效”

热门标签

归档