我跟随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,然后有些ID会改变,我不想要。我想要的是每当测试在xml中运行一个字段时,应该以之前未见过的方式进行更改,金牛座中是否有某些内容可以满足此要求。
答案 0 :(得分:0)
如果您需要从文件之前中提取数据以运行请求,您可以添加额外的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