如何 运行 在 loadimpact 中按顺序测试?
How to run test in sequential order in loadimpact?
我们有 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 分组到不同的函数中有帮助吗?
您不以任何方式限制每次默认函数迭代的单个 http 请求。因此,您可以只使用上一个请求中的任何内容并执行一个新请求。
http.post documentation中有一个示例,但这里是另一个简单的示例:
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
});
我们有 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 分组到不同的函数中有帮助吗?
您不以任何方式限制每次默认函数迭代的单个 http 请求。因此,您可以只使用上一个请求中的任何内容并执行一个新请求。
http.post documentation中有一个示例,但这里是另一个简单的示例:
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
});