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

空手道API测试-排序验证场景

阎星河
2023-03-14

我有一个请求,产生以下回应:

{
"totalRows": 10,
"colDefs": [
    {
        "entityAttributeId": "somestring",
        "headerName": "somestring",
        "field": "someNumber",
        "entityPath": "",
        "entityId": "somestring"
    },
    {
        "entityAttributeId": "somestring",
        "headerName": "somestring",
        "field": "someNumber",
        "entityPath": "somestring",
        "entityId": "somestring"
    },
    {
        "entityAttributeId": "somestring",
        "headerName": "somestring",
        "field": "1",
        "entityPath": "",
        "entityId": "somestring"
    },
    {
        "entityAttributeId": "somestring",
        "headerName": "somestring",
        "field": "3",
        "entityPath": "somestring",
        "entityId": "somestring"
    }
],
"rowData": [
    {
        "1": "",
        "2": "s",
        "3": "1939EX",
        "4": "",
        "rowMeta": {
            "text/inthisform": {
                "someid": "1939EX"
            },
            "somestring": {
                "somestring": ""
            }
        }
    },
    {
        "1": "",
        "2": ",
        "3": "1939A2",
        "4": "",
        "rowMeta": {
            "text/inthisform": {
                "someid": "1939A2"
            },
            "somestring": {
                "somestring": "somevalue"
            }
        }
    },
    {
        "1": "",
        "2": "",
        "3": "1939A1",
        "4": "",
        "rowMeta": {
            "text/inthisform": {
                "someid": "1939A1"
            },
            "somestring": {
                "somevalue": "value"
            }
        }
    },

    {
        "1": "",
        "2": "",
        "3": "193901",
        "4": "",
        "rowMeta": {
            "sometext/inthisform": {
                "somevalue": "193901"
            },
            "somevalue": {
                "somevalue": "value"
            }
        }
    }
]
}

现在我需要对这个字段值应用排序特性。“sometext/inthisform”:{“somevalue”:“193901”},在Java中,我可以通过将此响应存储为一个数组并对其进行排序,然后根据我的排序特性响应对其进行比较来轻松地做到这一点。

来存储arraylist值。由于空手道没有提供任何汇编或任何类型的错误信息,我不知道如何在这种情况下进行?

摘要:我希望将字段的值存储到数组中,并希望对其应用排序。应用排序后,我想将这个新的排序数组与我的特性排序数组响应进行比较。

共有1个答案

江睿
2023-03-14

我是这样找到解决办法的:

>

  • 使用JSONPath存储JSONArray值:

    def temp=$ListDataSet_Response.rowData[*].3

    * def ArrayList = Java.type('java.util.ArrayList')
    * def Collections = Java.type('java.util.Collections')
    
    And def listAsAscending = new ArrayList()
    * eval for(var i = 0; i < sometextid.length; i++) listAsAscending.add(sometextid[i])
    * eval Collections.sort(listAsAscending, java.lang.String.CASE_INSENSITIVE_ORDER)
    * print listAsAscending
    
    And def listAsDescending = new ArrayList()
    * eval for(var i = 0; i < sometextid.length; i++) listAsDescending.add(sometextid[i])
    * eval Collections.sort(listAsDescending, Collections.reverseOrder())
    * print listAsDescending
    

    为了比较列表,请稍后使用我的排序API响应:

    * match sortedTemp == listAsAscending
    * match sortedTemp == listAsDescending
    

  •  类似资料:
    • 我一直在验证下面的回答。 当我使用空手道发出获取请求时,我会得到以下响应,我想验证它。 我试过: 它说它不是字符串。你能帮我确认一下这个请求吗?

    • 现在有什么方法可以这样做,还是这是一个特性请求?

    • 我正在使用空手道缺省的arche类型,正如在空手道教程中提到的,并且使用Eclipse成功地运行了cucumber报告的测试,但是当我在Jenkins中使用相同的项目时,我会得到以下错误。我正在使用Java1.8和Cucumber-reporting工具,请帮助我解决这个问题,因为我怀疑这是项目结构的问题 POM文件 `http://maven.apache.org/xsd/maven-4.0.0

    • 我想要帮助验证API响应使用空手道框架。我有相互“独立”的应用编程接口。当我打那个特定的API得到了不同参数的响应(没有单一的匹配从请求参数和响应参数)。 现在我想验证响应参数值。 示例:请求:“方法”帖子 学校名称:“abcd”注册日期:“1:10:2010” 回复:原则名称:“pqrs”原则电子邮件idpqrs@gmail.com 现在我想验证“主名称”不应该为空 我已经像这样实现了,但它不起

    • 我试图为下面的响应编写JSON模式。响应是动态的它可以是细节或细节。如果响应中的是,那么响应将包含人对象(组织对象将不可用)。如果是,组织详细信息将包含在响应中(人对象将不可用)。下面给出了两种不同的预期反应 我试图使用下面给出的模式使上述条件有效 我目前面临的问题是,如果响应中的是,它会抛出以下错误 是否有任何方法可以在模式中指定,如果person对象可用,则organization对象将不可用

    • 我只是想知道如何进行条件模式验证。API响应是基于键的动态响应。如果是,那么,人的详细信息将被包括,如果是组织的详细信息将被包括在JSON响应中。所以响应可以是以下任何一种形式 我为验证上述2个场景而创建的架构如下 但是架构与实际响应不匹配。我应该对架构进行哪些更改才能使其工作?

    • 我无法在我的功能中运行空手道测试 不知道我错过了什么。对于api自动化世界来说是非常新的。非常感谢任何帮助。

    • 我正在尝试通过空手道关闭SSL证书验证。现在我得到了错误: javax.net.ssl.sslHandShakeException:Sun.Security.Validator.ValidatorException:PKIX路径构建失败:Sun.Security.Provider.CertPath.SunCertPathBuilderException:找不到请求目标的有效证书路径