我们有2个我们要在负载影响下进行测试的API,第二个API是所谓的动态目标,它是基于从第一个API的响应中获得的数据构建的。
因此,我们要按顺序运行此测试。我们怎样才能做到这一点?
import { check, sleep } from 'k6';
import http from 'k6/http';
export default function() {
let res, res_body, claim_url
res = http.batch([req])
check(res[0], {
"form data OK": function (res) {
console.log(res.status);
claim_url = JSON.parse(res.body)
console.log(claim_url.details.claim_uri)
return false;
}
});
在不同的功能中对不同的API进行分组是否有帮助?
答案 0 :(得分:1)
以任何方式,您都不限于每次默认函数迭代的单个http请求。因此,您可以使用上一个请求中的任何内容,然后执行一个新请求。
Wikipedia中有一个示例,但这是另一个简单的示例:
import { check, sleep } from 'k6';
import http from 'k6/http';
export default function() {
let res, res_body, claim_url
res = http.get(req);
check(res, { // check that we actually didn't get error when getting the url
"response code was 200": (res) => res.status == 200,
});
claim_url = JSON.parse(res.body) // if the body is "http://example.org" for example
res2 = http.get(claim_url); // use the returned url
check(res2, { // here it's res2 not res
"response code was 200": (res) => res.status == 200,
});
// do more requests or checks
});