gpt4 book ai didi

xml - 每次 Taurus 测试运行时如何更改 xml?

转载 作者:行者123 更新时间:2023-11-28 20:50:47 24 4
gpt4 key购买 nike

我有以下用于 Taurus 测试的 yaml:

- url: 'someURL'
method: POST
label: 'SomeLabel'
headers:
Content-Type: "application/xml"
Authorization: "auth"
remote_user: "someUser"
body-file: './requests/some.xml'
assert:
- contains:
- 200
subject: http-code
regexp: true
assert-xpath:
- xpath: "//response//someId[.='00001']"

因此,当我运行这些测试时,会返回 someId。根据 some.xml 中的数据返回 Id。最近我们的要求是根据是否在以前的请求中看到数据来返回 someIds,然后 someIDs 会发生变化,这是我不想要的。我想要的是,每当测试运行时,xml 中的一个字段应该以一种以前从未见过的方式发生变化,Taurus 中是否有一些东西可以满足这个要求。

最佳答案

如果您需要在运行请求之前 从文件中提取数据,您可以添加一个额外的 HTTP Request采样器和使用 file protocol为了让XPath Extractor从 XML 中获取“有趣”的值,以便您以后能够重用它,演示该方法的 Taurus 测试计划示例如下所示:

scenarios:
get-value-from-xml:
requests:
- url: file:///path/to/requests/some.xml
extract-xpath:
someid: //response//someId

execution:
- scenario: get-value-from-xml

您可以在需要时将提取的值引用为 ${someid}

参见 Taurus JMeter Executor: Requests了解更多信息。


如果您需要修改文件,可以使用JSR223 Block 来完成。 ,请查看以下示例以了解详细信息:

scenarios:
replace-value-in-xml:
requests:
- url: http://example.com
jsr223:
- language: groovy
script-text: 'new File("/path/to/requests/some.xml").text = new File("/path/to/requests/some.xml").text.replace("oldId","newId")'
execute: before
execution:
- scenario: replace-value-in-xml

关于xml - 每次 Taurus 测试运行时如何更改 xml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48056906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com