testing - SoapUI 测试 : remove quotation marks from session ID

标签 testing soapui sessionid

所以,我是 SoapUI 的新手,并且通常使用 API,但我正在尝试在 SoapUI(免费软件版本)中为 REST API 设置自动测试。

我进行的第一个调用返回一个 JSON 格式的 session ID,它被放在引号之间,例如:“ session ID 在这里”。在下一个 API 调用中需要此 key ,不带引号。我使用 SOAPUI 的“Property Transfer Teststep”,它运行良好,除了 session ID 周围的引号外,导致后续调用的错误响应。

知道如何删除引号吗?我一直在阅读/谷歌搜索 Xpath 和 JSONPath,这是我可以在屏幕上使用的一些编码语言,但我看不出如何使用它来删除所说的引号。 非常感谢您的帮助!!

完整的 RAW 响应:

HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 02 May 2017 18:31:48 GMT Content-Length: 38 "48d45ba2-4549-41be-8b31-e85b3c738a03"

最佳答案

您说消息返回为“48d45ba2-4549-41be-8b31-e85b3c738a03”。虽然消息说它是 json,但这并不意味着 SoapUI 会将其解释为有效的 json。有效的 JSON 就像另一个答案中提到的问题一样,以大括号开头和结尾。它还应该有一个键值对。像这样:

{
    "sessionId":"48d45ba2-4549-41be-8b31-e85b3c738a03"
}

在这种情况下,传输 $.sessionId 将产生 48d45ba2-4549-41be-8b31-e85b3c738a03(不带引号),而不是 "48d45ba2- 4549-41be-8b31-e85b3c738a03"(带引号)。

附件中有一个带有模拟的项目。它接到了一个电话。如果打开项目,则必须通过单击播放来启动模拟,然后才能执行测试用例。 - https://www.dropbox.com/s/rsgc9q1g45jze5z/StackOverflow_43745255_QuestionQuotationMarks.xml?dl=0 .您可以将其保存为 XML,然后您可以使用 SoapUI 打开它。

您将看到一个属性转移步骤。它有一个通过的步骤。然后是您在没有任何参数的情况下传输值的地方。它将完整地传输消息。包括引号。

第二次转账是'$'。对于有效的 json,这将呈现与不带任何参数的属性传输相同的结果,因为“$”代表根。至少我是这么理解的。

您还将在其中找到一个脚本:

response = context.testCase.getTestStepAt(0).testRequest.response.getResponseContent()
assert response == '"48d45ba2-4549-41be-8b31-e85b3c738a03"'

stripResponse = response.replace("\"", "")
assert stripResponse == '48d45ba2-4549-41be-8b31-e85b3c738a03'

stripResponse 是去掉引号的响应。然后,您可以继续将此变量分配给所选属性,或将其直接注入(inject)下一步的 header 中。

有时脚本是要走的路。

关于testing - SoapUI 测试 : remove quotation marks from session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745255/

相关文章:

reactjs - 如何使用 JEST 在 React 中测试以下组件

java - NoClassDefFoundError com/eviware/soapui/impl/wsdl/WsdlProject

rest - soapui 或 soapui pro 中的 DataGen?

ssl - SOAP UI - 错误 :Exception in request: javax.net.ssl.SSLHandshakeException:收到致命警报:handshake_failure

php - 以最优雅的方式从无效 session ID 中恢复

testing - 使用多个 `--tests`

java - Espresso onData 在 View 上执行 'load adapter data' 时出错

unit-testing - 如何测试CLI标志-当前因“标志重新定义”而失败

mysql - 从多个表中提取有关用户的所有信息

c++ - 如何处理多个 websocket++ 选项卡/窗口?