Группы в настоящее время не возвращают свою продолжительность.
Излучать в этом контексте означает, что если вы используете облако вывода json output / influenxdb / stastsd / load для хранения метрик, чем метрика, то есть то, что длительность группы будет отправлена, и вы сможете позже ... делать все, что захотите изнутри метрическое хранилище.
Также синтаксис для check
check(variable_name_to_use, map_of_name_to_function_to_calls)
так что-то вроде
check(group.duraiton, {
"checking duration is less than 20 as normal function": function(d){ return d<20},
"checking duration is less than 20 as arrow function": (d)=>{ return d<20},
"checking duration is less than 20 as arrow function without the brackets": (d)=>d<20,
})
Вам также необходимо указать схему для URL при использовании http.*
.
Я также хотел бы отметить, что идея group
состоит в том, чтобы измерить, сколько занимает данная группа (!) Запросов или операций. Например, их можно использовать для группировки всех операций, которые включают в себя ваш «вход в систему», «добавление товара в корзину», «оформление заказа и оплата» и так далее. Они, безусловно, полезны, но группирование отдельных запросов, когда все ваши группы представляют собой один запрос, не добавляет никаких новых данных :)
Решение 1:
Вы можете сделать это самостоятельно так:
import { check, group } from "k6";
import http from 'k6/http';
export default function() {
var group_duration;
group('Home page', function(){
var start = new Date();
http.get('http://localhost:8080');
group_duration = new Date() - start;
});
check(group_duration, {
"Name of group check": function(d){return d<200}
})
group('search page', function(){
var start = new Date();
http.get('http://localhost:8080/Search?term=mysearch');
group_duration = new Date() - start;
})
console.log(group_duration);
check(group_duration, {
"Name of group check": (d)=>d<200
})
}
Конечно, вы можете переместить это в функцию и просто вернуть длительность как:
function mygroup(name, f) {
var start = new Date();
group(name, f);
return new Date() - start;
}
А потом позвоните mygroup
и получите продолжительность как
var group_duration = mygroup('Home page', function(){
http.get('http://localhost:8080');
});
Решение 2:
В вашем случае, когда вы используете только один запрос в каждой группе, вы можете использовать тот факт, что запрос действительно возвращает, сколько они взяли. Итак
resp = http.get("google.com");
check (resp.timings.duration, {
"check response time", (d) => d<200
});
Проверяет, что данный запрос занял менее 200 миллисекунд. Вы можете увидеть больше вещей, которые есть в ответе в документах
Как разработчик K6, я думаю, что то, что вы предлагаете, не является плохой идеей, и я хотел бы, чтобы вы на самом деле открыли вопрос