我想使用 Taurus 工具测试一个简单的场景。
scenarios:
getdata:
requests:
- url: https://myurl.com/auth
method: POST
label: auth
body:
username: my_usernmae
password: my_password
extract-jsonpath:
auth_token: $.token
- url: https://myurl.com/get-data
method: GET
headers:
x-access-token: ${auth_token}
label: getdata
首先,我需要发送 /auth 请求并获取令牌。其次,我需要在第二个请求中将此令牌作为标头传递以获取数据。令牌生命周期为 5 分钟,最好每 5 分钟发送一次 /auth 请求,但不是每次获取数据时都发送一次。有没有办法实现这样的流程(5分钟发送一次第一个请求)?
我尝试使用
think-time
选项,但它也会影响第二个请求,我不需要它。
我认为唯一的选择是针对两种情况,并通过文件系统中的文件传递令牌的更新值,例如:
scenarios:
Scenario1:
requests:
- url: https://myurl.com/auth
method: POST
label: auth
body:
username: my_usernmae
password: my_password
extract-jsonpath:
auth_token: $.token
jsr223:
script-text: 'new File("myfile.txt").text = vars.get("auth-token")'
execute: after
Scenario2:
requests:
- url: https://myurl.com/get-data
headers:
x-access-token: ${auth_token}
jsr223:
execute: before
script-text: 'vars.put("auth_token", new File("myfile.txt").text)'
这样您将能够运行具有不同吞吐量的请求。
更多信息: